欢迎来到天天文库
浏览记录
ID:22947237
大小:46.50 KB
页数:13页
时间:2018-11-02
《单片机的多路温度采集系统程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、ORG0000H AJMPMAIN; BUF EQU 40H;显示缓冲区 MOTATA EQU 50H;AD0809数据存放于此 WH EQU 48H;温度上限数据存放区 WL EQU 58H;温度下限数据存放区 BUFF1S EQU38H; BUFF1MS EQU 39H; BUFF5S EQU 3AH; INNAL EQU 3CH; ALARMBUF EQU33H BUFFH EQU31H;八路LED报警信号红灯 BUFFL EQU
2、32H;八路LED报警信号绿灯 BACK EQU 34H;利用与BUF地址的重复修改路数 CHANNEL EQU 35H TEMPBUF EQU 36H READ_AD BIT 30H;是否要读写AD0809的标志位 DISPIN BIT 31H; SETWARNBIT 32H SOLIDISP BIT 33H ENTER BIT P1.2 SETH BIT 35H SETL BIT 36H SETIN BIT P1.3 ABYTE
3、IN BIT p1.1 ORG0003H AJMPINT_0; ORG000BH LJMPINT_T0 ORG0100HMAIN:MOV SP, #70H ;设置堆栈位置 SETB READ_AD ;初始化标志位 SETB EA ;开总中断 CLR SETWARN ;清除温度设置标志位 SETB SETIN ;当其为0时表示要进行通道数采
4、集 LCALL INITWARN ;初始化温度上下限 LCALL INIT_2 ;初始化2#工作寄存器区 ;主循环,启动ADC0809,从第一个通道开始读取LOOP: JNB READ_AD,DIS ;若不读AD0809,则调显示,次标志位也表示1s延时结束 ;延时已完毕,则计算要显示的温度路数及温度值送缓冲区 LCALL WARN ;报警
5、 CLR READ_AD ;清楚标志位 LCALL READ ;读取一次AD0809 LCALL DLY1MS ;此处加1ms的延时,否则数码管会因中断的存在而产生闪动 LCALL ADJUST ;调整显示;在此完成键盘检测及显示任务 DIS:LCALL DISPLAY; LCALL KEYCHK ;调键盘检测子程序 CJNE A,#0FFH
6、,AKEY ;若有键按下,则跳转 LJMP LOOP ;若没有则循环AKEY: LCALL KEYFUNC; CJNE A,#0FFH,CALLRPD ;验证按下的键是否为数字键,若是则处理输入 LJMP LOOP ;不为数字键则返回循环CALLRPD:LCALL KEYRPD; SJMP LOOP; ;*********初始化2#工作寄存器区************INIT_2:PUSH PSW
7、 ;初始化2号工作寄存器区 SETB RS1; CLR RS0 ;选择2号工作寄存器区 MOV R2,#00H ;存放要显示的路数 CLR DISPIN ;初始化路显示标志位; MOV R0,#MOTATA ;R0充当指向MOTATA的指针 POP PSW; RET; ;*******调整指针******
8、***PADJUST:ONADJUST:DJNZ R2,INADJUST; RET;返回INADJUST:INC R0; SJMP ONADJUST; ;*************计算并调整显示缓存区的数据*******ADJUST:PUSH PSW;保护 SETB RS1; CLR RS0 ;选择2号工作寄存器区 CJNE R2,#08H,NE08; GE08:
此文档下载收益归作者所有