当前位置: 首页 > news >正文

用响应式做旧书网站优酷视频网站源码

用响应式做旧书网站,优酷视频网站源码,网站icp备案是什么,新网站怎样做外链一、系统方案 本设计采用STC89C5单片机作为主控制器#xff0c;从机采用DHT11传感器采集温湿度、按键设置报警阀值#xff0c;液晶1602显示#xff0c;蜂鸣器报警#xff0c;无线NRF2401模块。 二、硬件设计 原理图如下#xff1a; 三、单片机软件设计 1、首先是系统…一、系统方案 本设计采用STC89C5单片机作为主控制器从机采用DHT11传感器采集温湿度、按键设置报警阀值液晶1602显示蜂鸣器报警无线NRF2401模块。 二、硬件设计 原理图如下 三、单片机软件设计 1、首先是系统初始化 init_io(); // 初始化IO RX_Mode(); // 设置为接收模式 LCD_Initial(); //液晶初始化 2、液晶显示程序 //1602程序 //内部等待函数************************************************************* unsigned char LCD_Wait(void) { RS0; RW1; nop(); E1; nop(); E0; return DBPort; } //向LCD写入命令或数据******************************************************** #define LCD_COMMAND 0 // Command #define LCD_DATA 1 // Data #define LCD_CLEAR_SCREEN 0x01 // 清屏 #define LCD_HOMING 0x02 // 光标返回原点 void LCD_Write(bit style, unsigned char input) { E0; RSstyle; RW0; nop(); DBPortinput; nop();//注意顺序 E1; nop();//注意顺序 E0; nop(); LCD_Wait(); } //设置显示模式************************************************************ #define LCD_SHOW 0x04 //显示开 #define LCD_HIDE 0x00 //显示关 #define LCD_CURSOR 0x02 //显示光标 #define LCD_NO_CURSOR 0x00 //无光标 #define LCD_FLASH 0x01 //光标闪动 #define LCD_NO_FLASH 0x00 //光标不闪动 void LCD_SetDisplay(unsigned char DisplayMode) { LCD_Write(LCD_COMMAND, 0x08|DisplayMode); } //设置输入模式************************************************************ #define LCD_AC_UP 0x02 #define LCD_AC_DOWN 0x00 // default #define LCD_MOVE 0x01 // 画面可平移 #define LCD_NO_MOVE 0x00 //default void LCD_SetInput(unsigned char InputMode) { LCD_Write(LCD_COMMAND, 0x04|InputMode); } //初始化LCD************************************************************ void LCD_Initial() { E0; LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动 } //液晶字符输入的位置************************ void GotoXY(unsigned char x, unsigned char y) { if(y0) LCD_Write(LCD_COMMAND,0x80|x); if(y1) LCD_Write(LCD_COMMAND,0x80|(x-0x40)); } //将字符输出到液晶显示 void Print(unsigned char *str) { while(*str!‘\0’) { LCD_Write(LCD_DATA,*str); str; } } 3、按键检测程序 void key() { if (k10) //调整按键检测 { delay(10); if (k10) { presskeynum; if(presskeynum5) presskeynum0; while(k10); LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 } } if(presskeynum1)//温度上限设置 { if(k20)// 加 { delay(10); temp_high; if (temp_high99) temp_high0; if (temp_high0) temp_high99; while(k20); //加上此句必须松按键才处理 } if(k30)//减 { delay(10); temp_high–; if (temp_high99) temp_high0; if (temp_high0) temp_high99; while(k30); //加上此句必须松按键才处理 } } if(presskeynum2)//温度下限设置 { if(k20)// 加 { delay(10); temp_low; if (temp_low99) temp_low0; if (temp_low0) temp_low99; while(k20); } if(k30) { delay(10); temp_low–; if (temp_low99) temp_low0; if (temp_low0) temp_low99; while(k30); } } if(presskeynum3)//湿度上限设置 { if(k20)// 加 { delay(10); humi_high; if (humi_high99) humi_high0; if (humi_high0) humi_high99; while(k20); } if(k30) { delay(10); humi_high–; if (humi_high99) humi_high0; if (humi_high0) humi_high99; while(k30); } } if(presskeynum4)//湿度下限设置 { if(k20)//加 { delay(10); humi_low; if (humi_low99) humi_low0; if (humi_low0) humi_low99; while(k20); } if(k30)// 减 { delay(10); humi_low–; if (humi_low99) humi_low0; if (humi_low0) humi_low99; while(k30); } } if(k40)// 退出键 { delay(10); if(k40) { while(k40); presskeynum0; LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏}} } 4、核心算法程序 /**************************************************/ /************************************************** *函数名 SPI_RW *函数功能 读写一个字节 *输入 无 *输出 无 // uchar SPI_RW(uchar byte) { uchar i; for(i0; i8; i) // 循环8次 { MOSI (byte 0x80); // byte最高位输出到MOSI byte 1; // 低一位移位到最高位 SCK 1; // 拉高SCK,nRF24L01从MOSI读取1位数据,同时从MISO输出1位数据 byte | MISO; // 读MISO到byte最低位 SCK 0; // SCK置低 } return(byte); // 返回读取一个字节 } // /************************************************** *函数名 SPI_RW_Reg *函数功能 写数据到reg *输入 无 *输出 无 // uchar SPI_RW_Reg(uchar reg, uchar value) { uchar status; CSN 0; // CSN置低开始传输数据 status SPI_RW(reg); // 选择寄存器同时返回状态字 SPI_RW(value); // 写数据到寄存器 CSN 1; // CSN拉高结束数据传输 return(status); // 返回状态寄存器 } // /************************************************** *函数名 SPI_Read *函数功能 从reg寄存器读字节 *输入 无 *输出 无 /**************************************************/ uchar SPI_Read(uchar reg) { uchar reg_val;CSN 0; // CSN置低,开始传输数据SPI_RW(reg); // 选择寄存器reg_val SPI_RW(0); // 然后从该寄存器读数据CSN 1; // CSN拉高,结束数据传输return(reg_val); // 返回寄存器数据} /**************************************************/ /************************************************** *函数名 SPI_Read_Buf *函数功能 从reg寄存器读数据 *输入 无 *输出 无 // uchar SPI_Read_Buf(uchar reg, uchar * pBuf, uchar bytes) { uchar status, i; CSN 0; // CSN置低开始传输数据 status SPI_RW(reg); // 选择寄存器同时返回状态字 for(i0; ibytes; i) pBuf[i] SPI_RW(0); // 逐个字节从nRF24L01读出 CSN 1; // CSN拉高结束数据传输 return(status); // 返回状态寄存器 } // /************************************************** *函数名 SPI_Write_Buf *函数功能 把缓存的数据写入NRF *输入 无 *输出 无 // uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes) { uchar status, i; CSN 0; // CSN置低开始传输数据 status SPI_RW(reg); // 选择寄存器同时返回状态字 for(i0; ibytes; i) SPI_RW(pBuf[i]); // 逐个字节写入nRF24L01 CSN 1; // CSN拉高,结束数据传输 return(status); // 返回状态寄存器 } // /************************************************** *函数名 RX_Mode *函数功能 将nrf设置为接收模式 *输入 无 *输出 无 // void RX_Mode(void) { CE 0; SPI_Write_Buf(WRITE_REG RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 接收设备接收通道0使用和发送设备相同的发送地址 SPI_RW_Reg(WRITE_REG EN_AA, 0x01); // 使能接收通道0自动应答 SPI_RW_Reg(WRITE_REG EN_RXADDR, 0x01); // 使能接收通道0 SPI_RW_Reg(WRITE_REG RF_CH, 40); // 选择射频通道0x40 SPI_RW_Reg(WRITE_REG RX_PW_P0, TX_PLOAD_WIDTH); // 接收通道0选择和发送通道相同有效数据宽度 SPI_RW_Reg(WRITE_REG RF_SETUP, 0x07); // 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益 SPI_RW_Reg(WRITE_REG CONFIG, 0x0f); // CRC使能16位CRC校验上电接收模式 delay_ms(150); CE 1; // 拉高CE启动接收设备 } // /************************************************** *函数名 TX_Mode *函数功能 将nrf设置为发送模式 *输入 无 *输出 无 // void TX_Mode(uchar * BUF) { CE 0; SPI_Write_Buf(WRITE_REG TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // 写入发送地址 SPI_Write_Buf(WRITE_REG RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 应答接收设备接收通道0地址和发送地址相同 SPI_Write_Buf(WR_TX_PLOAD, BUF, TX_PLOAD_WIDTH); // 写数据包到TX FIFO SPI_RW_Reg(WRITE_REG EN_AA, 0x01); // 使能接收通道0自动应答 SPI_RW_Reg(WRITE_REG EN_RXADDR, 0x01); // 使能接收通道0 SPI_RW_Reg(WRITE_REG SETUP_RETR, 0x0a); // 自动重发延时等待250us86us自动重发 SPI_RW_Reg(WRITE_REG RF_CH, 40); // 选择射频通道0x40 SPI_RW_Reg(WRITE_REG RF_SETUP, 0x07); // 数据传输率1Mbps发射功率0dBm低噪声放大器增益 SPI_RW_Reg(WRITE_REG CONFIG, 0x0e); // CRC使能16位CRC校验上电 delay_ms(150); CE 1; } // /************************************************** *函数名 Check_ACK *函数功能 检查接收设备有无数据包设定没有应答信号重发 *输入 无 *输出 无 /**************************************************/ uchar Check_ACK(bit clear) { while(IRQ); sta SPI_RW(NOP); // 返回状态寄存器 if(TX_DS) { //blink(3); } //blink(5); if(MAX_RT) if(clear) // 是否清除TX FIFO没有清除在复位MAX_RT中断标志后重发 SPI_RW(FLUSH_TX); SPI_RW_Reg(WRITE_REG STATUS, sta); // 清除TX_DS或MAX_RT中断标志 IRQ 1; if(TX_DS) return(0x00); else return(0xff); }
http://www.hkea.cn/news/14454431/

相关文章:

  • 鸣蝉建站平台网上推广平台
  • 做外贸的网站如何选择服务器网站无后台添加后台
  • 怎么用阿里云服务器做淘客网站公司商标标志设计
  • 网站运营目的网站怎么做文件下载
  • 宜兴建设局 网站网站开发是打代码吗
  • 照片网站源码模板建站
  • pc网站怎么建设流程网站建设培训东莞市
  • 怎么做网页 网站制作中国镇江网站
  • 哈尔滨网站托管可视化网页制作
  • 做网站做网站洛阳有建社网站的吗
  • 企业建设网站目的是什么seo教育培训机构
  • 广州网站制作服务做yy头像的网站
  • 公司网站 seo上海网站建设v芯ee8888e
  • 山西大同网站建设射阳建设网站哪家好
  • 氧气瓶网站建设wordpress优秀移动站点
  • 网站建设小西门高端网页设计培训
  • 网站页面布局模板中山智能设备网站建设
  • 双语版网站怎么做joomla网站如何加入会话功能
  • 区域销售网站什么做推广平台的方法
  • 学而思编程网站网站模块在线制作
  • 建设旅游网站的功能定位网站单页面制作
  • 无备案网站广告如何做电商平台投诉电话
  • 电子商务网站建设程序应用题移动商城官网 积分兑换
  • 网站专题策划方案我的世界有什么做的视频网站
  • 企业网站怎么做html诸城网络营销
  • 自建外贸网站多少钱软件之家
  • 龙岗网站 建设深圳信科上市公司网站建设
  • 企业网站的设计怎么做做网站平台的营业执照
  • 招聘销售员网站建设网络推广个人网站写什么好
  • 石家庄市市政建设总公司网站最权威的做网站设计哪家好