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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

用单片机实现温度远程显示Word格式文档下载.docx

1、1、通讯口设置 通讯方式:RS-485标准电平 同步方式:起停同步方式 波特率:9600BPS 通讯距离:不大于1200M 通讯线:二线 数据代码:ASCII码 数据格式:每字符10位,1个起始位,8个数据位,1个停止位2、 数据传输格式 地址:2字节(高字节在前,低字节在后); 数据:按地址顺序,仪表数据传输格式为十六进制2字节定点数; 2字节定点数=低字节高4位(ASCII码)+低字节低4位(ASCII码)高字节高4位(ASCII码)+高字节低4位(ASCII码) 若数据为负数,则采用补码方式传输; 在传输实时测量值时,传输完2字节定点数后,紧接着又传输2字节定点数,其中高字节低4位为小数

2、点位数。例 :(50.0)10 表示为 46 34 30 31 30 30 30 31 低字节 高字节 小数位数3、 仪表通讯格式: DE 帧类型 帧数据 CRC CR :通讯起始符 DE :仪表设备号(地址) 帧类型 :操作命令 帧数据 :各种操作命令所对应的命令及数据 CRC :校验字节(除外CRC之前的其他几个字节的异或值) CR :结束符(回车符) 4、应用中用到的命令及数据格式: 读仪表全部动态数据命令帧 DE RD CRC CR 命令回送帧 正确 DE RD 帧数据 CRC CR 错误 DE * * CRC CR 例:读28号仪表的全部动态数据 命令:1CRD64,0D(ASCII

3、码40 31 43 52 44 36 34 0d) 错误返回码 1C*72,0D(ASCII码40 31 43 2A 2A 37 32 0D) 正确返回数据 1C RD XXXX XXXX XXXX XXXX XXXX XXXX 第0通道 第1通道 第2通道XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX第3通道 第4通道 第5通道 第6通道XXXX XXXX XX,0D第7通道 校验五、单片机选择及硬件电路设计1、 选用ATMEL公司生产的AT89S8252-24PC单片机,其主要参数及特点如下: 与MCS-51产品兼容(其引脚图见原理图) 具有8K字节可擦写的

4、FLASH内部程序存储器,可擦写1000次;2K字节EEPROM,可擦写100,000次,SPI口(用PC机的并口连接条线即可通过SPI口下载程序,下载软件可从网上下载,这样可节省购买编程器的费用;)。注:笔者现已制作成了ISP2000三合一烧写器,详情见 256字节RAM,32根可编程I/O线,可编程串行口,内置看门狗。与看门狗有关的特殊功能寄存器WMCON 地址= 96H,与看门狗有关的控制位为96h第0、1、5、6、7位,第5、6、7位用于设置看门狗定时时间(具体见第5页表格),本应用中第5、6、7位均置1,设置看门狗溢出时间为2048ms,第0位为看门狗使能控制位,该位置1将使能看门狗

5、,其第1位为复用位,向第1位写1将复位看门狗定时器,具体操作如下:a,使能看门狗,并将其溢出时间设定为2048ms:ORL 96H, #0E1H;b,看门狗定时器清0:ORL 96H, #2 2、按键设计:为方便使用,设计了三个按键,分别为巡回/定点切换键、上键、下键。切换键用于巡检与定点模式的切换,上键向上切换通道,下键向下切换通道;其中巡检/定点切换键通过外部中断1以中断方式工作,中断程序将巡回/定点标志取反后直接跳到主程序中巡回/定点标志判断程序前运行,由判断程序完成巡回/定点的切换。按键信号由单片机P3.3,P3.4,P3.5引脚输入。3、显示电路设计为方便观察,选用三个二位共阳级8段

6、数码显示管(TOD5201AE)动态显示,一位显示仪表地址(从A至F),一位显示通道号(从0至7通道),其余四位用来显示实时温度值;用单片机P1口驱动一片74HC244以吸收电流的方式控制段码,用单片机P0.0至P0.5引脚驱动六个三极管(9012)控制位选。4、电源选用5V/1A市售成品开关电源。5、 根据智能仪表通讯协议的要求,串行口定义为方式1工作,一帧10位:1个起始位、8个数据位、一个停止位;用一片75176完成数据的发送与接收,由于RS-485为半双工,故用单片机P3.2引脚控制发送与接收的切换;两个智能仪表处于RS-485总线的两个端点,为提高可靠性,在RS-485总线的两个端点

7、上分别并联一个120、1/4W终端电阻。 系统方框图如右示: 单片机装置电原理图见下页:六、单片机软件设计说明及程序流程图为方便调试,采用模块化编程,共分1个主模块及5个子模块,各模块功能说明及流程图如下(源程序见附录):1、 主模块(rand_main.a51)上电后程序显示初始化标志并等待3秒,然后进入巡回模式,自动检测地址为A(10)至F(15)的智能仪表,对在线的仪表及已使用通道以3秒为周期自动巡回读取实时温度并送数码管显示,仪表未在线或未用通道则自动跳过;定点模式时根据上、下按键情况自动向前或向后移动一个通道后等待下一次按键(向上至最高通道号时跳到上一个仪表的最低在用通道,向下至最低

8、通道号时跳到下一个仪表的最高在用通道);等待期间以3秒为周期读取当前仪表当前通道实时温度并送数码管显示,另外,为了区分巡回、定点工作模式,定点工作模式时最低位数码管以约0.5Hz的频率闪烁显示。当检测到巡回/定点切换键按下时自动在巡回及定点模式间转换,当检测到温度值低于199.9度时显示-199.9度。 主模块流程图见下页:2、数据转换子模块(rand_data.a51)功能: 本模块先将ASCII码转换成BIN码,然后将BIN码转换成BCD码并将数据转换成可直接显示的格式入口: a=通道号出口: r1=个位,r2=十位,r3=百位,r4=千位(显示数据)a=非0表示该通道未用本子模块中直接将

9、小数点信息加到相应位数据上,如需在某位显示小数点,则将该位数据加10H,显示子模块根据此信息显示小数点。各子程序功能介绍: bcd2_bcd1:将r3,r4中的4位bcd码由低至高分别存入r1,r2,r3,r4中; ascii4_bcd3:将(r0)为首地址的字节ascii码转换成bcd码并将bcd码由低至高依次存放在r3,r4,r5中,r3,r4中各存放2位bcd码,r5中存放一位bcd码; bin_bcd:将r1,r2中的bin码转换成bcd码并将bcd码由低至高依次存放在r3,r4,r5中,r3,r4中各存放2位bcd码,r5中存放一位bcd码; ascii4_bin2:将(r0)为首地

10、址的字节ascii码转换成2位bin码存放在r1(低字节),r2(高字节)中;(r0)指r0中内容 ascii_bin:将(r0)为地址的一位ascii码转换成bin码存中。(高级子程序调用低级子程序以实现更强的功能,源程序中对各子程序有较详细的注释,故此处仅画出主流程图)3、显示、软件看门狗、20ms定时器子程序(rand_disp.a51) 通过定时器0以1MS为周期动态显示缓冲区中的内容;同时完成20ms定时器及软件看门狗计数;当软件看门狗定时器溢出时自动复位。入口: 以disp_buf为首地址依次存放从个位至十万位待显示数据,以disp_wc为首地址(位地址)依次存放个位至千位闪烁控制

11、位信息,为0常亮,为1闪烁.Disp_s:闪烁控制计数器Disp_s_c:闪烁控制标志Disp_c:显示控制计数器 wdt中存放软件看门狗计数值,time_20ms中存放20ms的计数值。Wdt溢出时跳至程序存储器0000单元 将定时器0设定为模式1定时工作,每ms产生一次中断,即显示一位,每10ms 6位数据轮流显示1ms;为进一步提高可靠性,在该模块中设计了软件看门狗,实现方法见源程序。模块流程图如本页所示: 、命令发送及接收控制子模块(rand_send.a51) 发送命令缓冲区中命令并等待接收完毕,然后检查接收到的数据,接收错误则重发命令,达到设定的次数仍错则存入错误码后退出. A=仪

12、表地址 A=0 表示接收正确 1 表示校验错 *表示命令错 N表示无回应模块流程图如下:、串行接收子模块(rand_rec.a51) 串行接收模块通过中断自动执行,程序检测到时置ri_f标志并开始接收,检测到回车符时清ri_f后退出,接收到的数据存放在以rec_buf为首地址的缓冲区中。串行中断(rand_rec.a51)流程图 巡回/定点键中断(rand_key.a51)流程图、巡回定点转换检测模块(rand_key.a51) 模块通过外部中断自动执行,检测到巡回定点按键后先延时去抖动,并等待按键释放后将巡回定点标志位取反,然后自动跳至主模块中start处,并不返回原中断点。模块流程图如见本

13、页:七、调测及运行情况介绍1、 调试步骤: 硬件连接:将各芯片插在面包板上并用导线按原理图连接 软件开发环境:Keil uVision2 for Windows ,该软件的模拟调试器支持C语言及汇编语言源代码调试,其汇编程序支持宏汇编及模块化编程,使用方便。 首先在模拟调试器中调试各子模块,各子模块调试正常后再将各子模块及主模块全部汇编连接成目标文件,最后将目标代码下载到单片机中并连接智能仪表进行统调。2、 该系统软件部分除报警子模块外已全部开发完成并实际测试通过,测试时用一对长度约1100M的0.5mm2 普通电话线作为单片机装置与两个智能仪表的通讯线,经过一个多星期的连续运行观察,运行可靠

14、稳定,完全满足使用要求。注:报警子模块的开发及硬件制版工作正在进行中。八、结束语用单片机+智能仪表构成的温度远程显示系统总造价约人民币7000元(两块智能仪表+温度传感器约3500元,通讯电缆约2000元,单片机装置及施工费用约1500元),与采用其它方案的系统比较造价较低,其硬件及软件的设计、制作都较简单,有一定的电子及单片机知识便可完成。同时对该装置软件稍加修改即可与其他带有RS-485通讯端口的仪器仪表通讯(如变频器、电路传感器等),实现远程测量、监视及控制。与发达国家相比,我国单片机应用的普及程度较低。通过该实例说明,我们完全可以把我们学到的单片机知识应用到实际工作中,直接创造经济效益

15、。九、参考资料 电子工业出版社 徐爱钧 彭秀华 编著 电子工业出版社 余永权 主编标准集成电路数据手册高速CMOS电路ATMEL AT89S8252数据手册 ATMEL公司 重庆川仪十八厂工业控制计算机组成原理 清华大学出版社 孙廷才 王杰 孙中健 编著电子技术2001年11期十、附录(源程序)、主模块(rand_main.a51);-1-rand_main.a51-name rand_mainEXTRN CODE(I_T0,send_order,rec_si,ascii_bcd,key)extrn data (DISP_buf,disp_wc,time_20ms,wdt)extrn idat

16、a (rec_buf)public TH0_H,TL0_L,START,ri_f,wdt_time,key_work,key_fprog SEGMENT CODE ;定义代码段byte_buff segment data ;定义字节数据段1byte_buffI segment idata ;定义字节数据段2bit_buff segment data bitaddressable ;定义位数据段bit_flag segment bitstack segment idata ;定义堆栈数据段 rseg stack ;为堆栈保留20个字节 ds 20 CSEG AT 00H ;定义绝对代码段 USI

17、NG 0 ;选择工作寄存器组第0组 lJMP rand ;复位时程序执行执行点 CSEG AT 03H ;外部中断0 RETI CSEG AT 0BH ;定时器0中断 lJMP I_T0 CSEG AT 13H ;外部中断1 ljmp key CSEG AT 1BH ;定时器1中断 CSEG AT 23H ;串行中断 ljmp rec_si RSEG BYTE_BUFF td_temp: ds 1 TD_n: DS 1 ;通道号 YD_n100: ds 1 ;仪表地址- rseg bit_flag key_work:dbit 1 ri_f: dbit 1 ;串行口正在接收标志-主程序 RSEG

18、 prog-符号定义 key_f equ p3.3 key_up equ p3.4 key_down equ p3.5 wdt_time equ 100 ;软件看门狗定时器计数值 scon_c equ 01010000b ;串行口设置为10位UART,允许接收 th1_h equ 0fdh ;晶振为11.0592M,波特率为9600时初值 tmod_n equ 21h ;设置定时器(T1作为波特率发生器工作在模式2,T0为模式1) ie_n equ 82h ;设置串行,定时器0中断 ip_n equ 12h ;设置串行,定时器0中断为高级中断 TH0_H EQU 0FCH TL0_L EQU

19、06BH ;设定定时器0为1MS中断初值-初始化代码clear_wdt macro ;清硬看门狗宏定义 orl 96h,#2 ENDM rand: ORL 96H,#0E1H ;启动硬件看门狗 mov p0,#0ffh mov r0,#20h mov a,#0start_300:mov r0,a inc r0 cjne r0,#128,start_300 setb key_work ;置巡回定点标志 mov p3,#0ffh mov p2,#0ffh mov disp_wc,#0 ;初始化闪烁控制位 mov ip,#ip_n ; mov scon,#scon_c MOV TMOD,#tmod_

20、n MOV TH0,#TH0_H ;设定定时器初值 MOV TL0,#TL0_L mov th1,#th1_h mov tl1,#th1_h mov ie,#ie_n mov pcon,#0 SETB tr1 SETB TR0-显示初始化提示 acall chuhao CLEAR_WDT start: clr ea mov sp,#stack-1 setb ea clr ri_f ;清接收中标志 clr p3.2 ;置75176为接收状态 jnb key_work,db_work- setb ex1 mov yd_n100,#0ah mov td_n,#0s_0: anl disp_wc,#0

21、f0h mov wdt,#0 ;清看门狗定时器 clear_wdt mov a,yd_n100 lcall send_order JNZ s_1 mov disp_buf+5,yd_n100 mov a,td_n lcall ascii_bcd jnz s_2 mov disp_buf+4,td_n acall mov_to_disp mov wdt,#0 mov a,#75 add a,time_20ms cjne a,time_20ms,$s_2: inc td_n cjne a,#8,s_0s_1: inc yd_n100 MOV A,YD_N100 cjne a,#10h,s_0 ajmp s_0-db_work:setb ex1 orl disp_wc,#01hd_3: jb key_up,d_4 mov a,#2d_5: jnb key_up,d_5 ;等待向上键松开-d_53: cjne a,#7,d_50d_52: cjne a,#10h,d_51 ajmp d_51d_50:d_51: JNZ d_52 jnz d_53 mov a,#100 ;2秒钟定时设定 ajmp d_3d_4: jb key_down,d_10 add a,

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

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