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

网站建设预期周期wordpress 调试环境

网站建设预期周期,wordpress 调试环境,免费广告设计app,wordpress修改生效目录 1、资料内容 2、整体架构流程 3、主控单元设计 4、LCD液晶显示 5、仿真图 6、程序 资料下载地址#xff1a;基于51单片机的智能晾衣架设计资料(论文源码仿真) 1、资料内容 2、整体架构流程 为了实现晾衣自身能够完成对外界数据的采集与分析#xff0c;集成控制环节我们采… 目录 1、资料内容 2、整体架构流程 3、主控单元设计 4、LCD液晶显示 5、仿真图 6、程序 资料下载地址基于51单片机的智能晾衣架设计资料(论文源码仿真) 1、资料内容 2、整体架构流程 为了实现晾衣自身能够完成对外界数据的采集与分析集成控制环节我们采用了ATMEL公司生产的AT89C52单片机与市面上的其他嵌入式控制单元相比较在体积与功耗方面都相当出色。此次设计主要突破在于设计合理的控制电路单元同时结合采用的主控编写高质量的源码并使系统在实际与应用中能够发挥出色的稳定性和参考价值。本次将围绕主控单元设计合理的电路结合SHT11温湿度采集单元、感光原件单元、LCD显示单元、模式控制单元使晾衣架能够得到外界的实时数据并作出相应的调整。在设定合适的温湿度及感光度的条件下能够自动控制电机驱动滑杆实现自动量晒与回收衣物结合光线角度进行上下左右调整。主要框架如下图所示 3、主控单元设计 为了使智能晾衣架在使用时满足嵌入式系统功耗、抗干扰、适用空间等要求设计之初除了上述因素也考虑到成本因素。通过比较我们选择了51系列中的AT89C52芯片作为主控制单元。无论是功耗还是处理速度上都有着不错的表现与CONTEX-M3系列单片机相比较处理上稍微慢点但本次设计对分时处理的要求不是特别高同时52系列具有简单高效的指令集和大大减少设计难度结合SHT11与ADC0804精准的完成数采集与电机控制。        我们常见的主控封装形式有40脚的DIP直插的也有PQFP类型的贴片封装在proteus中仿真的时候选择DIP类型方便自主设计与搭建外围电路单元。从产品角度和制版工艺上面来讲贴片能够节省空间。这次采用的主控制芯片是8位CMOS工艺的单片机内部有八位CPU和FlASH在工控领域有着广泛的用途脱机运行性能稳定相比较51有着更大的存储和定时器资源其主要内部参数与引脚分布见下图 指令集和 兼容MCS-51产品 FLASH 8个字节重复擦写 擦写周期 1000次重复擦写 静态操作 0HZ –- 24MHZ 编程I/O 32个可编程I/O 功耗模式 低功耗和掉电模式 中断源个数 8个中断控制单元 定时器个数 3个16位定时/计数器 4、LCD液晶显示 主控单元在上电之后会对液晶屏幕进行初始化直观的显示出各项参数结合独立按键显示控制模式给用户提供良好的人机交互。常见的显示屏幕有很多尺寸市面上的电容、电阻屏也数不胜数这里我们选用户LCD1602作为液晶显示同样的考虑到功耗与显示区间等因素。1602有着八个数据端口体积很小亮度饱和能够直观简单的显示ASCII码与字符与单片机的接口连接简单控制屏幕上的液晶分子显示出字符不同的电压控制不同区域上下两行能够分别显示16个字符不具备汉字现实的能力这点上不如12864但完成设计的时候能够带来更稳定的显示较强的抗干扰能力。实际硬件分为有无背光源带背光的厚度稍微大点会有更好的显示效果且调节背光源之间的滑变能够显示效果。常用的有16个管脚分为电源区、指令控制区、数据区、背光区。实际外观尺寸见下图         可以看到上图中有两行显示区域左上角有1-16个外围引脚可以用用来驱动屏幕显示想要的数据与字符先简单说下管脚分布和功能1管脚与2管脚用来接工作电源3管脚通过VCC与分压电阻控制屏幕的对比度且会随着电压的变化而增加减少对比度过高会出现阴影不清晰等现象因此需要条调节合适的对比度以满足正常显示可以外接10K电阻进行调整4管脚RS控制端用来告诉模块当前是发送/读写数据还是指令在实际现实过程中参与控制时序高的电平信号控制数据控制寄存器、低电平信号控制指令寄存器5管脚为W/R读写控制端与4管脚结合起来可以实现数据/命令读/写功能6管脚作为EN使能控制端用来控制液晶的工作状态7管脚到14管脚为数据线用来读写数据15与16管脚控制背光根据实际情况考虑是否需要接入电路中。       对控制端口有一定的了解后还需要掌握读写时序图从而根据时序去设计软件驱动这里以写数据时序图为例子说下原理过程         上图中RS决定当前是要启用命令寄存器还是数据寄存器写数据的过程中RS要保持高电平信号写命令的过程要保持低电平信号。当往液晶上写字符的时候首先要将RS拉低R/W保持低电频信号随后有个上升沿将RS拉成高电位也就是上图RS对应的第二条信号线。图中tsp_x、tR、tHD_x等间距在设计过程中都可以采用延时实现时序同步。我们可以看到valid data是有效地数据段只有当RS 1、R/W 0、DB0-DB7发送数据、EN使能等状态都满足的时候才能实现数据从I/O写入到液晶。这种时序图在液晶操作与与不同工控领域的传感器数据采集中经常会用到因此软件设计过程中要严格遵守时序从而获得准确有效地数据值。关于读写命令及读写数据的操作时序就不一一说明了在下表中根据逻辑时序已经归出控制区域I/O的工作状态方便开发使用。 读状态 输入 RSLR/WHEH 输出 D0—D7状态字 写指令 输入 RSLR/WLD0—D7指令码E高脉冲 输出 无 读数据 输入 RSHR/WHEH 输出 D0—D7数据 写数据 输入 RSHR/WLD0—D7数据E高脉冲 输出 无         上面也有提到16个显示区域它们也是有对应的基带地址要在固定的地址上显示字符就需要发送对应的地址指令第一行地址起始地址为0x00,第二行起始地址为0x40后续的地址参考图3.2.3。设计时如果没有用到屏幕滚动的话可以不考虑虚拟地址。也就是说从0x10以后到0x27以及0x50到0x67需要开启其滚动显示才能显示出该地址空间上的数据。 关于常见的操作指令可以参考手册中的指令集部分。 详细内容请下载资料。 5、仿真图 6、程序 #includereg52.h #include intrins.h #include math.h #include stdio.h #include 1602.h #include sht11.h #include 24c02.h #define uchar unsigned char #define uint unsigned int #define W_cmd 0xa0 //24c02写指令 #define R_cmd 0xa1 uint temp,humi; value humi_val,temp_val; //定义两个共同体一个用于湿度一个用于温度 uchar error; //用于检验是否出现错误 uchar checksum; //CRCuchar TEMP_data[7]; //用于记录实测的温度 uchar HUMI_data[6]; //用于记录实测的湿度 uchar LIGH_data[4]; //用于记录实测光感度uchar show_temp[5]; //显示设定的温度 uchar show_humi[4]; //显示设定的湿度uchar data temp_humi_cache[4]; //温湿度设置缓存 uchar temp_set; //保存温度变量 uchar humi_set; //保存湿度变量 uchar presskeynum; //按键次数变量 uchar nn; //用于蜂鸣器 uchar code word1[]{ a product of }; uchar code word2[]{UNITED ELECTRONS}; uchar code word3[]{ Welcome........}; sbit k1P2^0; //选择按键 sbit k2P2^1; //增加按键 sbit k3P2^2; //减小按键 sbit k4P2^3;// 确认按键 sbit led1P1^4; //温度过低指示灯 sbit led2P1^5; //温度过高 sbit led3P1^6; //湿度低于下限值报警加湿。 sbit led4P1^7; //湿度过高报警不调湿 sbit motor1P3^4; sbit motor2P3^5; sbit motor3P3^6; sbit motor4P3^7; sbit P2_6P2^6;//********延时函数********* void delay(uint z) //z为毫秒数{int a,b;for(az;a0;a--)for(b120;b0;b--); } void key() {uchar m;if (k10) //调整按键检测{delay(5);if (k10){presskeynum;if(presskeynum3)presskeynum0;while(k10); //若一直按下循环LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏}}if(presskeynum1)//温度设置{if(k20) // 加{delay(300);temp_set;if (temp_set30)temp_set30;while(k20); //加上此句必须松按键才处理}if(k30)//减{delay(300);temp_set--;if (temp_set18)temp_set18;while(k30); //加上此句必须松按键才处理}}if(presskeynum2)//湿度设置{if(k20)// 加{delay(300);humi_set;if (humi_set99)humi_set99;while(k20);}if(k30)//减{delay(300);humi_set--;if (humi_set1)humi_set1; // while(k30); //这句是调试加入的}}if(k40)// 退出键 //设置完初始值以后通过IIC写入24c02并清屏 {delay(10);if(k40){while(k40);presskeynum0;temp_humi_cache[0]temp_set/10;temp_humi_cache[1]temp_set%10;temp_humi_cache[2]humi_set/10;temp_humi_cache[3]humi_set%10;for(m0;m4;m){ WriteIIC(W_cmd,0x00m,temp_humi_cache[m]); //设定值写入24c02}LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏}} }//主函数void main() { uchar t;uchar temp_adc;k1k2k3k41;motor1motor2motor3motor40;P2_60;for (t0;t4;t)temp_humi_cache[t]ReadIIC(W_cmd,0x00t,R_cmd); //读入24c02设定的值temp_settemp_humi_cache[0]*10temp_humi_cache[1]; //设置温度humi_settemp_humi_cache[2]*10temp_humi_cache[3]; //设置湿度LCD_Initial(); //液晶初始化GotoXY(0,0);Print_slow(word1);GotoXY(0,1);Print_slow(word2);LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏GotoXY(0,0);Print_slow(word3);LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏 //完成系统初始化 while(1){key();P1 0xff; //P1口初始化temp_adc P1; //读取光敏值8位精度最大256if(presskeynum0) //测量温湿度{ s_connectionreset(); //启动连接复位error0; //初始化error0即没有错误errors_measure((unsigned char*)temp_val.i,checksum,TEMP); //温度测量值返回到temp.val.ierrors_measure((unsigned char*)humi_val.i,checksum,HUMI); //湿度测量值返回到humi_val.iif(error!0)s_connectionreset(); //如果发生错误系统复位else{ humi_val.f(float)humi_val.i; //转换为浮点数temp_val.f(float)temp_val.i; //转换为浮点数calc_sth10(humi_val.f,temp_val.f); //修正相对湿度及温度误差弥补temptemp_val.f*10;humihumi_val.f*10;GotoXY(0,0); //选择温度显示位置Print(Temp: C --- ); //5格空格GotoXY(0,1); //选择湿度显示位置Print(Humi: % ); //5格空格 GotoXY(5,0); //设置温度显示位置TEMP_data[0]temp/10000; //温度百位 if (TEMP_data[0]0x30) //ASCLL 0TEMP_data[0]0x20; //对应的ASCLL位空格TEMP_data[1]temp%1000/1000; //温度十位 if (TEMP_data[1]0x30 TEMP_data[0]!0x30) TEMP_data[1]0x20;TEMP_data[2]temp%100/100; //温度个位TEMP_data[3]0x2e; //小数点TEMP_data[4]temp%100; //温度小数点后第一位 TEMP_data[5]0xdf; //显示温度符号℃书上是第248TEMP_data[6]\0; //实际上0xdf对应的是小圆圈Print(TEMP_data); //输出温度 GotoXY(5,1); HUMI_data[0]humi/10000; //湿度百位 if (HUMI_data[0]0x30)HUMI_data[0]0x20;HUMI_data[1]humi%1000/1000; //湿度十位 HUMI_data[2]humi%100/100; //湿度个位HUMI_data[3]. ; //小数点HUMI_data[4]humi%100; //湿度小数点后第一位 HUMI_data[5]\0;Print(HUMI_data); //输出湿度GotoXY(13,1);LIGH_data[0] temp_adc%1000/1000; // if(LIGH_data[0] 0x30) // LIGH_data[0] 0x20;LIGH_data[1] temp_adc%100/100;LIGH_data[2] temp_adc%100;LIGH_data[3] \0;Print(LIGH_data); if ((temp/10)temp_set) {motor11;motor20; }else if ((temp/10)temp_set){motor21;motor10;}if ((humi/10)humi_set){motor31;motor40;}else if ((humi/10)humi_set){ motor41;motor30;}} //else} //ifif(presskeynum1) //设定温度时显示的内容{show_temp[0]temp_set/100x30;show_temp[1]temp_set%100x30;show_temp[2]0xdf;show_temp[3]C;show_temp[4]\0;GotoXY (0,0);Print(SET TEMP:);GotoXY (0,1);Print(show_temp);} if(presskeynum2) //设定湿度时显示的内容{show_humi[0]humi_set/100x30;show_humi[1]humi_set%100x30;show_humi[2]%;show_humi[3]\0;GotoXY (0,0);Print(SET HUMI:);GotoXY (0,1);Print(show_humi);}}//while } //mian
http://www.zqtcl.cn/news/967807/

相关文章:

  • 网站建设开发报价单苏州网上注册公司流程
  • 网站开发包含河南洛阳网络公司
  • 个人网站建设方案书使用几号纸网站出租目录做菠菜 有什么坏处
  • 烟台做网站案例产品设计欣赏
  • 长安网站建设多少钱室内设计学校培训的
  • 驻马店北京网站建设怎么用网站做转换服务器
  • 成都网站建设cdxwcx百度搜索关键词排名优化推广
  • 框架网站怎么做o2o是什么意思的
  • 山东响应式网站网页设计素材电影
  • 新都区网站建设网站设计公司排行榜
  • 网站建设需求分析调研表建筑品牌网站
  • html5商城网站如何查询网站建设者
  • 做重视频网站教育网站改版方案
  • 小网站谁有网站上线后做什么
  • 松江网站建设培训手机网站你们
  • 荆州网站建设 众火网北京小客车指标调控管理信息系统
  • 域名和网站一样吗自己开发小程序要多少钱
  • 咨询公司网站源码手机优化软件哪个好用
  • 行业网站模板小型影视网站源码
  • 湖北网站建站系统哪家好微信小程序怎么注销账号
  • 温州网站推广公司沈阳网站建设服务电话
  • 2019年的阜南县建设修路网站洛阳哪里有做网站的
  • 家里电脑可以做网站服务器吗佛山网络公司哪家最好
  • 做网站属于无形资产还是费用网站制作二维码
  • ps为什么做不了视频网站最近做网站开发有前途没
  • 平面设计师参考网站做网站建设推广好做吗
  • 网站被别的域名绑定泰安做网站网络公司
  • 建设部网站业绩如何录入免费素材图片下载
  • 佛山美容网站建设如何有效的推广宣传
  • 网站全屏轮播怎么做nginx 代理 wordpress