ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:205.16KB ,
资源ID:3229939      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3229939.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

基于温度远程控制系统.docx

1、基于温度远程控制系统基于温度远程控制系统【实验目的】 本次实验目的如下:1、 绘制原理仿真电路图;2、 调试hex文件;3、 A机在LCD1602芯片上显示DS18B20所得到的时间,以及DS1302所获取的温度值,并且发送给B机,在B机的LCD1602上显示。4、 如果A机的温度大于30C则蜂鸣器鸣笛,步进电机正转。若A机的温度在28C到30C之间,步进电机反转,蜂鸣器鸣笛。其余温度时,无反应。5、 B机在无操作时,始终接收A机发送的时间和温度值,并且在LCD1602上显示。6、 B机按下K3按键时,可以对A机进行设置时间,并且显示所设置的时间,通过矩阵键盘设置时间,通过K3进行位操作。如果

2、按下B机的K2则显示接收到的日期,温度,电机状态,第几周;7、 把A机电机运动的状态发送给B机。8、 如果按下A机的K3则显示时间,温度,电机状态,第几周;按下A机的K4则显示日期,温度,电机状态,第几周。9、 “-”表示电机不转,“”表示电机正转,“”表示电机反转。正转和反转时蜂鸣器发出的频率不同。【实验原理】对实验四的原理图进行如下图A和B调整。【实验内容】1、 熟悉Protues绘制原理图的基本步骤。2、 学会可执行文件的加载以及程序仿真的方法。3、 验证数码管的动态显示效果。4、 验证DS1302写入和读取效果。5、 验证LCD1302显示效果。6、 验证DS18B20温度读取效果。7

3、、 验证串口通信。8、 验证蜂鸣器,矩阵键盘,验证步进电机正反转。9、 验证外部中断,验证串口中断;【实验步骤】1、 熟悉动态数码管显示的原理,LCD1602显示的原理。2、 熟悉DS1302芯片的写入和读取。3、 熟悉DS18B20芯片的读取。4、 熟悉蜂鸣器的控制;5、 熟悉步进电机的控制;6、 绘制Protues原理图。7、 在ISIS中加载可执行文件a.hex运行仿真,并调试。【实现效果】实验效果如图A2所示,完成实验目的所要求的内容。【实验小结】通过这次实验是我更加熟悉了LCD1602的显示和DS1302的写入和读取,步进电机的控制和蜂鸣器、矩阵键盘的工作原理,外部中断的使用,串口中

4、断的使用,双机通信的原理,以及keil和Protues的应用。【附录】C51源程序A机程序#include#define dj P0#define lcd P1sbit DQ=P37;sbit RST=P22;sbit SCLK=P23;sbit IO=P24;sbit fmq=P21;sbit RS=P25;sbit RW=P26;sbit EN=P27;sbit K3=P32;sbit K4=P33; unsigned char second,minute,hour,week,day,month,year;unsigned char t13027=0x15,0x11,0x20,0x47,0

5、x21,0x30,0x00; unsigned char code ggsj=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19, 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29, 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39, 0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49, 0x50,0

6、x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59;unsigned char zf05=Time:;unsigned char zf15=Temp:;unsigned char zf25=Data:;unsigned char zf35=Week:;unsigned char zf43=0;i-) for(j=10;j0;j-);void cktx() SCON=0X50; TMOD=0X20; PCON=0X80; TH1=0XF3; TL1=0XF3; ES=1; EA=1; TR1=1; void wbzd() IT0=1; EX0=1; IT1=1

7、; EX1=1; IP=0x01; EA=1;void int0() interrupt 0 if(K3=0) rq=1; void int1() interrupt 2 if(K4=0) rq=0; void send(unsigned char dat) SBUF=dat; while(TI=0); TI=0;unsigned char receive() unsigned char dat; while(RI=0); RI=0; dat=SBUF; return dat;void zd() interrupt 4 if(RI) if(m=7) m=0; gszh(); init1302(

8、); jssjm+=receive(); RI=0; void writecom(unsigned char com) lcd=com; RS=0; RW=0; EN=1; delay(10); 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);unsigned char read1302(unsigned char add) unsi

9、gned char n,dat,dat1; RST = 0; SCLK = 0; RST = 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; S

10、CLK = 0; for (n=0; n= 1; SCLK = 1; SCLK = 0; 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); sjsj0=hour/16; sjsj1=hour%16; sjsj2=10; sjsj3=minute/16; sjsj4=minute%16; s

11、jsj5=10; sjsj6=second/16; sjsj7=second%16; rqsj0=year/16; rqsj1=year%16; rqsj2=12; rqsj3=month/16; rqsj4=month%16; rqsj5=12; rqsj6=day/16; rqsj7=day%16; rqsj8=week/16; rqsj9=week%16; void init1302() write1302(0x8e,0x00); write1302(0x86,t13020); write1302(0x88,t13021); write1302(0x8c,t13022); write13

12、02(0x89,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() unsigned char dat

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1