欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于温度远程控制系统串口通信.docx

    • 资源ID:4925999       资源大小:63.77KB        全文页数:19页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于温度远程控制系统串口通信.docx

    1、基于温度远程控制系统串口通信基于温度远程控制系统之串口通信模块【实验目的】1、 熟悉单片机的基本输入输出应用;2、 掌握Protues模块原理绘图方法;3、 掌握动态数码管显示原理和LCD1602液晶屏的基本显示;4、 掌握DS1302时钟的读取;5、 在数码管上连续显示5秒钟的时间和5秒中的日期;6、 在LCD1602上显示5秒钟的时间和日期,接着显示5秒中的温度。7、 把A机采集的时间、温度数据显示在A机的数码管上,并且发送给B机。8、 如果A机采集的温度超过30度则蜂鸣器工作以示警告。【实验原理】对上个实验电路图进行了如下调整,见图A所示,图中数码管接于P0接口,通过利用AT89C51对

    2、P0接口的输出值不同去控制一个数码管显示从0F不同的数值。74LS138三八译码器接于A机的P2.0P2.2接口,利用其去控制选择8个数码管中的哪一个数码管亮,利用人眼的视觉延迟,造成8个数码管一起亮的现象。因为Protues中没有LCD1602但是有LM1602,因为两者功能完全相同,只是LM1602没有背光正负极的引脚,故用其代替。LM1602的双向数据端接于P1接口,RS寄存器、R/W读写信号线、EN使能端分别接于B机的P2.5、P2.6、P2.7。利用AT89C51对P1接口和A机的BP2.5、P2.6、P2.7接口输出不同和时序不同,使其显示规定的字符。时钟芯片DS1302的RST、

    3、SCLK、IO接口分别接在A机的P2.3、P2.4、P2.5接口。DS18B20的DQ(IO)接在P3.7接口。通过串口通信实现A机向B机发送数据。利用蜂鸣器的通断来控制其工作。【实验内容】1、 熟悉Protues绘制原理图的基本步骤。2、 学会可执行文件的加载以及程序仿真的方法。3、 验证数码管的动态显示效果。4、 验证DS1302写入和读取效果。5、 验证LCD1302显示效果。6、 验证DS18B20温度读取效果。7、 验证串口通信。8、 验证蜂鸣器。【实验步骤】1、 熟悉动态数码管显示的原理,LCD1602显示的原理。2、 熟悉DS1302芯片的写入和读取。3、 熟悉DS18B20芯片

    4、的读取。4、 绘制Protues原理图。5、 在ISIS中加载可执行文件a.hex运行仿真,并调试。【实现效果】实验效果如图A2所示,完成实验目的所要求的内容。【实验小结】通过这次实验是我更加熟悉了数码管的动态显示以及LCD1602的显示和DS1302的写入和读取,以及keil和Protues的应用。【附录】C51源程序A机程序#include#define smg P0sbit DQ=P37;sbit a=P20;sbit b=P21;sbit c=P22;sbit RST=P23;sbit SCLK=P24;sbit IO=P25;sbit fmq=P26;unsigned char se

    5、cond,minute,hour,week,day,month,year;unsigned char table=0123456789;unsigned char t1302=0x15,0x10,0x23,0x2C,0x22,0x17,0x00;unsigned char code zf21=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71, 0xC0,0x40,0xff,0x39,0x80; /n,-,+,C .unsigned char zfc=+-0123456789.C;un

    6、signed char zfcls9;unsigned char sj8;unsigned char sj18;unsigned char lssj18;unsigned char lssj28;void delay(int i) int j; for(i;i0;i-) for(j=0;j10;j+);void send(unsigned char dat) SBUF=dat; while(TI=0); TI=0;unsigned char read1302(unsigned char add) unsigned char n,dat,dat1; RST = 0; SCLK = 0; RST

    7、= 1; for(n=0; n= 1; SCLK = 1; SCLK = 0; for(n=0; n1) | (dat17); SCLK = 1; SCLK = 0; RST = 0; SCLK = 1; IO = 0; IO = 1; return dat; void write1302(unsigned char add,unsigned char dat) unsigned char n; RST = 0; SCLK = 0; RST = 1; for (n=0; n= 1; SCLK = 1; SCLK = 0; for (n=0; n= 1; SCLK = 1; SCLK = 0;

    8、RST = 0;void read1302time() second=read1302(0x81); minute=read1302(0x83); hour=read1302(0x85); day=read1302(0x8b); week =read1302(0x87); month=read1302(0x89); year=read1302(0x8d);void init1302() write1302(0x8e,0x00); write1302(0x8c,t13020); write1302(0x88,t13021); write1302(0x8a,t13022); write1302(0

    9、x86,t13023); write1302(0x84,t13024); write1302(0x82,t13025); write1302(0x80,t13026); write1302(0x8e,0x80);int init18b20() int i; DQ=0; i=70; while(i-); DQ=1; i=0; while(DQ) i+; if(i50000) return 0; return 1;void write18b20(unsigned char dat) int i,j; for(i=0;i=1; DQ=1;unsigned char read18b20() unsig

    10、ned char dat,ls; int i,j; for(i=0;i1)|(ls7); j=4; while(j-); DQ=1; return dat;void changtemp() init18b20(); delay(10); write18b20(0xcc); write18b20(0x44); delay(100);void readtemp() init18b20(); delay(10); write18b20(0xcc); write18b20(0xbe); int temp() unsigned char t1,t2; int temp=0; changtemp(); r

    11、eadtemp(); t1=read18b20(); t2=read18b20(); temp=t2; temp0) zfcls0=zfc0; sj0=zf18; sj10=11; te=t; t=te*0.0625*100+0.5; if(t0) zfcls0=zfc1; sj0=zf17; sj10=12; t=t-1; t=t; te=t; t=te*0.0625*100+0.5; sj1=zft/10000; sj11=t/10000; sj2=zft%10000/1000; sj12=t%10000/1000; sj3=zft%1000/100; sj13=t%1000/100; s

    12、j4=zf20; sj14=13; sj5=zft%100/10; sj15=t%100/10; sj6=zft%10; sj16=t%10; sj7=zf19; sj17=14; void cktx() SCON=0X50; TMOD=0X20; PCON=0X80; TH1=0XF3; TL1=0XF3; ES=1; EA=1; TR1=1;void smgxs1() int i; for(i=0;i8;i+) switch(i) case(0): lssj1i=hour/16; lssj2i=zflssj1i;break; case(1): lssj1i=hour%16; lssj2i=

    13、zflssj1i;break; case(2): lssj1i=10; lssj2i=zf17;break; case(3): lssj1i=minute/16; lssj2i=zflssj1i;break; case(4): lssj1i=minute%16; lssj2i=zflssj1i;break; case(5): lssj1i=10; lssj2i=zf17;break; case(6): lssj1i=second/16; lssj2i=zflssj1i;break; case(7): lssj1i=second%16; lssj2i=zflssj1i;break; send(l

    14、ssj1i); for(i=0;i8;i+) switch(i) case(0): c=0;b=0;a=0;break; case(1): c=0;b=0;a=1;break; case(2): c=0;b=1;a=0;break; case(3): c=0;b=1;a=1;break; case(4): c=1;b=0;a=0;break; case(5): c=1;b=0;a=1;break; case(6): c=1;b=1;a=0;break; case(7): c=1;b=1;a=1;break; smg=lssj2i; delay(10); smg=0x00; i=0;void s

    15、mgxs2() int i; for(i=0;i8;i+) send(sj1i); switch(i) case(0): c=0;b=0;a=0;break; case(1): c=0;b=0;a=1;break; case(2): c=0;b=1;a=0;break; case(3): c=0;b=1;a=1;break; case(4): c=1;b=0;a=0;break; case(5): c=1;b=0;a=1;break; case(6): c=1;b=1;a=0;break; case(7): c=1;b=1;a=1;break; smg=sji; delay(1); smg=0

    16、x00; i=0;void main() unsigned char i; i=0; cktx(); init1302(); smgxs1(); while(1) read1302time(); gettemp(); if(second%16=6) smgxs2(); if(sj122) fmq=fmq; B机#include#define lcd P1#define smg P0#define led P0sbit RS=P25;sbit RW=P26;sbit EN=P27;sbit a=P20;sbit b=P21;sbit c=P22;unsigned char table=01234

    17、56789:+-.C;unsigned char code zf21=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71, 0xC0,0x40,0xff,0x39,0x80; unsigned char sj8; unsigned char sj18;unsigned char sj28;void delay(int i) int j; for(i;i0;i-) for(j=0;j10;j+);void writecom(unsigned char com) lcd=com; RS=0

    18、; RW=0; EN=1; delay(20); EN=0;void writedat(unsigned char dat) lcd=dat; RS=1; RW=0; EN=1; delay(20); EN=0;void init() writecom(0x01); writecom(0x38); writecom(0x0c); writecom(0x06);void cktx() SCON=0X50; TMOD=0X20; PCON=0X80; TH1=0XF3; TL1=0XF3; ES=1; EA=1; TR1=1;unsigned char receive() unsigned cha

    19、r dat; while(RI=0); RI=0; dat=SBUF; return dat;void lcdxs1( ) int i; for(i=0;i8;i+) sji=receive(); /*if(sj7!=14) for(i=0;i8;i+) sj2i=sji; */ writecom(0x80); for(i=0;i8;i+) writedat(tablesji); i=0;/*void lcdxs2( ) int i; for(i=0;i8;i+) sji=receive(); if(sj2!=10) for(i=0;i8;i+) sj1i=sji; writecom(0xc0); for(i=0;i8;i+) writedat(tablesj1i); i=0;*/void main() /unsigned char i=0; init(); cktx(); while(1) lcdxs1(); / lcdxs2();


    注意事项

    本文(基于温度远程控制系统串口通信.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开