单片机应用系统课程设计实例

单片机应用系统课程设计实例

ID:33123009

大小:113.00 KB

页数:10页

时间:2019-02-20

单片机应用系统课程设计实例_第1页
单片机应用系统课程设计实例_第2页
单片机应用系统课程设计实例_第3页
单片机应用系统课程设计实例_第4页
单片机应用系统课程设计实例_第5页
资源描述:

《单片机应用系统课程设计实例》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、数字温度计设计实例利用可调电阻调节电压值模拟温度的输入量,当温度低于30°C时,发出长“嘀”声和光报警,当温度高于60°C时,发出短“嘀”声和光报警,测量温度范围0-99度,用4位7段数码管显示温度,ADC0808(ADC0809)作为转换器。1、硬件设计2、软件设计LED_0EQU30HLED_1EQU31HLED_2EQU32HADCEQU35HTCNTAEQU36HTCNTBEQU37HH_TEMPEQU38H;温度上限L_TEMPEQU39H;温度下限FLAGBIT00HH_ALMBITP3.0L_ALMBITP3.1SOUNDBITP3.7CLOCKBITP2.4ST

2、BITP2.5EOCBITP2.6OEBITP2.7ORG00HSJMPSTARTORG0BHLJMPINT_T0ORG1BHLJMPINT_T1START:MOVLED_0,#00HMOVLED_1,#00HMOVLED_2,#00HMOVDPTR,#TABLEMOVH_TEMP,#153MOVL_TEMP,#77MOVTMOD,#12HMOVTH0,#245MOVTL0,#0MOVTH1,#(65536-1000)/256MOVTL1,#(65536-1000)MOD256MOVIE,#8aHCLRCSETBTR0;为ADC0808提供时钟WAIT:SETBH_ALMSET

3、BL_ALMCLRSTSETBSTCLRST;启动转换JNBEOC,$SETBOEMOVADC,P1;读取AD转换结果CLROEMOVA,ADCSUBBA,#77;判断是否低于下限JCLALMMOVA,H_TEMPMOVR0,ADCSUBBA,R0;判断是否高于上限JCHALMCLRTR1LJMPPROCLALM:;低温报警CLRL_ALMSETBTR1CLRFLAGLJMPPROCHALM:;高温报警CLRH_ALMSETBTR1SETBFLAGLJMPPROCPROC:MOVA,ADC;数值转换MOVB,#100DIVABMOVLED_2,AMOVA,BMOVB,#10DI

4、VABMOVLED_1,AMOVLED_0,BLCALLDISPSJMPWAITINT_T0:CPLCLOCK;提供ADC0808时钟RETIINT_T1:MOVTH1,#(65536-1000)/256MOVTL1,#(65536-1000)MOD256CPLSOUNDINCTCNTAMOVA,TCNTAJBFLAG,I1;判断是高温警报还是低温警报CJNEA,#30,RETUNE;低温警报声SJMPI2I1:CJNEA,#20,RETUNE;高温警报声I2:MOVTCNTA,#0INCTCNTBMOVA,TCNTBCJNEA,#25,RETUNEMOVTCNTA,#0MOV

5、TCNTB,#0LCALLDELAY2RETUNE:RETIDISP:MOVA,LED_0;数码显示子程序MOVCA,@A+DPTRCLRP2.3MOVP0,ALCALLDELAYSETBP2.3MOVA,LED_1MOVCA,@A+DPTRCLRP2.2MOVP0,ALCALLDELAYSETBP2.2MOVA,LED_2MOVCA,@A+DPTRCLRP2.1MOVP0,ALCALLDELAYSETBP2.1RETDELAY:MOVR6,#10D1:MOVR7,#250DJNZR7,$DJNZR6,D1RETDELAY2:MOVR5,#20D2:MOVR6,#20D3:MO

6、VR7,#250DJNZR7,$DJNZR6,D3DJNZR5,D2RETTABLE:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FHEND数字钟设计实例利用AT89C51的定时器和6位7段数码管,设计一个电子时钟,显示格式“XXXXXX”,从左向右分别是:时、分、秒1、硬件设计2、软件设计说明:定时器每1000us中断一次,在中断服务程序中,对中断次数计数,100us计数10000次就是1s,然后再对秒计数得到分和小时,并送入显示缓存。LEDBUFEQU30H;显示码缓存区HOUREQU40HMINUTEEQU41HSECONDEQU42H

7、C100usEQU43HTICKEQU10000;置中断次数T100usEQU256-100;置定时器初始值LJMPSTART;跳转至主程序ORG000BH;定时器0中断入口T0INT:PUSHPSW;状态保护PUSHACCMOVA,C100us+1JNZGOON;计数值是否为0DECC100usGOON:DECC100us+1MOVA,C100usORLA,C100us+1JNZEXITMOVC100us,#HIGH(TICK);重置计数值MOVC100us+1,#LOW(TICK)INC

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。