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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机课程设计温度报警器系统计数器.docx

1、单片机课程设计温度报警器系统计数器 课程名称 单片机原理与应用 设计题目 计数器及温度报警器 内容及任务进度安排 起止日期 工作内容参考文献一:设计任务1:设计一个0-255计数器,计满后自动清零,重新计数,在数码管中显示。2:设计一个0-50000计数器,计满后自动清零,重新计数,在数码管中显示。3.设计一个温度报警系统;温度显示范围为0-51度,当温度大于40度时,上限报警指示灯点亮,并驱动电机1转动;当温度小于10度时,下限报警指示灯点亮,并驱动电机2转动。二:设计源程序1:255计数器ORG 0000HAJMP STARTORG 0300HSTART:MOV DPTR,#0CFE9H

2、MOV A,#0D1H ;将8279初始化 MOVX DPTR,A NOP NOP NOP NOP ;延时 NOP NOP NOP NOP MOV TMOD,#50H ;采用工作方式一进行计数 MOV TH1,#00H ;高位清零 MOV TL1,#00H ;地位清零 SETB TR1 ;启动定时器/计数器T1进行加1计数LOOP1:MOV A,TL1 ;将低位数给累加器A MOV B,#64H ;将十进制数100给B DIV AB ;用A除以B,商保存在A中,余数保存在B MOV R1,A ;将百位给R1 MOV A,B ;将B传递给A MOV B,#0AH ;把十进制数10传给B DIV

3、AB ;用A除以B MOV R2,A ;把十位上的数字传给R2 MOV R3,B ;把个位上的数字传给R3 MOV DPTR,#0CFE9H MOV A,#80H ;选择第一个数码管 MOVX DPTR,A MOV DPTR,#TAB MOV A,R MOVC A,A+DPTR ;通过查表将百位数送入到第一个数 MOV DPTR,#0CFE8H 码管 MOVX DPTR,A CLR A ;将累加器A清零 MOV DPTR,#0CFE9H MOV A,#81H ;选择第二个数码管 MOVX DPTR,A MOV DPTR,#TAB MOV A,R2 ;通过查表将十位上的数送至第二 MOVC A,

4、A+DPTR 个数码管 MOV DPTR,#0CFE8H MOVX DPTR,A CLR A ;将累加器清零 MOV DPTR,#0CFE9H MOV A,#82H ;选择第三个数码管 MOVX DPTR,A MOV DPTR,#TAB MOV A,R3 ;通过查表将个位上的数字送 MOVC A,A+DPTR 到第三个数码管 MOV DPTR,#0CFE8H MOVX DPTR,A LJMP LOOP1TAB:DB 3FH,06H,5BH,4FH,66H ;共阴极LED数码管的段码管 DB 6DH,7DH,07H,7FH,6FHEND1:0-255计数器数码管显示仿真图2:0-50000计数器

5、ORG 0000HSJMP STARTDRG 000BHAJMP T0START : MOV TMOD ,#050H MOV P1,#0 MOVTH0,#0FFH MOV TL0,#0FFHMOV P3,#0 ;将p3口置0CLR C ;将C置0MOV DPTR ,#TAB ;指针指向TAB,SETB EA ;总中断控制设为“1”SETB ET0 ;T0允许中断控制设为“1”MOV R0,#0 ;个位值清零MOV R1,#0 ;十位值清零MOV R2,#0 ;百位值清零MOV R3,#0 ;千位值清零MOV R4,#0 ;万位值清零SETB TR0 ;打开T0开关ACALL T1 ;显示加等待

6、中断TO: MOV TH0,#0FFH MOV TL0,#0FFH ;中断将计数器初始化 INC R0 ;R0自动加1 MOV A, R0 ;将R0的值赋给A CJNE A,#10 AAA ;比较A是否等于十,若为十则进位,否则继续计数 MOV R0,#0 ; R0置零 INC R1 ;进位到十位AAA: MOVC A,A+DPTR ; 查表 MOV P2,A SETB P1.0 ;示个位 ACALL DELAY ;延时 SETB P1.0 MOV A,R1 ;R1的值赋给A中 CJNE A,#10,BBB ;比较,是否进位 MOV R1,#0 ; 进位R1置0 INC R2 ; 进位到百位

7、BBB: MOVC A,A+DPTR ;查表 MOV P2,A SETB P1.1 ;显示十位 ACALL DELAY ;延时 CLR P1.0 MOV A, R2 R2 ;赋给百位 CJNE A,#10, CCC ;比较,是否进位 MOV R2,#0 ;进位,R2置0 INC R4 ;进位到千位 CCC: MOVC A, A+DOTR ;查表 MOV R2,A SETB P1.2 ;显示百位 MOV A,R3 ;R3赋给A CJNE A,#10,DDD ;比较,是否进位 MOV R3 ,#0 ;进位置0 INC R4 ;进位到万位 DDD: MOVC A,A+ DPTR ;查表 MOV P2

8、,A SETB P1.3 ;显示千位 ACALL DELAY ;延时 CLR P1.3 MOV A, R4 CJNE A,#5,EEE ;比较万位是否到5 MOV R4,#0 ;万位到5时置0 MOV R3,#0EEE: MOVC A, A+DPTR ;查表 MOV P2,A SETB P1.4 ;显示万位 ACALL DELAY ;延时 CLR P1.4 RETIT1: MOV A,R0 ;等待中断时调用 MOVC A, A+DPTR MOV P2,A SETB P1.0 ACALL DELAY CLR P1.0 MOV A,R1 MOVC A,A+DPTR MOV P2,A SETB P1

9、.1 ACALL DELAY CLR P1.1 MOV A,R2 MOV A,A+DPTR MOV P2,A SETB P1.2 ACALL DELAY CLR P1.2 MOV A,R3 MOVC A,A+DPTR MOV P2,A SETB P1.3 ACALL DELAY CLR P1.3 MOV A,R4 MOVC A,A+DPTR MOV P2,A SETB P1.4 ACALL DELAY CLR P1.4 AJMP T1 DELAY: MOV R7,#10 DE1:MOV R6,#50DE2: DJNZ R6,DE2 DJNZ R7,DE1 RETTAB: DB 0C0H 0F9

10、H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90H 88H 83H 0C6H 0A1H 86H 8EH2;0-50000计数器数码管显示仿真图3:温度报警器源程序DISPLAY0 EQU 71H ;EQU赋值命令 DISPLAY1 EQU 72H DISPLAY2 EQU 73H ADC EQU 74H ST BIT P1.0 ;将P2.5地址赋值给START EOC BIT P1.1 ;将P2.6地址赋值给EOC OE BIT P1.2 ;将P2.7地址赋值给OE ORG 00H SJMP START START: CLR P3 ;P3清零,为报警电路做准备 MOV P

11、1.2,#1 ;P2.7 给高电平,OE高电平有效 MOV DISPLAY0,#0FFH ;给数码管赋初值 MOV DISPLAY1,#0FFH MOV DISPLAY2,#0FFH MOV DPTR,#TABLE ;跳转至表格 MOV TMOD,#02H ;工作方式二 8-bit定时/计数(自动重装初值) MOV TH0,#0F5H ;定时计数器高八位付初值 MOV TL0,#00H MOV IE,#82H ;EA=1,ET0=1 溢出中断位允许中断 SETB TR0 ;启动定时器TR0 开始运行 WAIT:CLR ST ;转换启动信号STARK清零 SETB ST ;启动转换信号 CLR

12、ST JNB EOC,$ ;EOC为转换结束线,高电平为转换结束 ;当EOC=0时 转移到本指令首地址 SETB OE ;输出转换得到的数据 MOV ADC,P1 ;OE=1时 将AD信号存入ADC中 CLR OE ;输出数据线呈高阻态 给第一个数码管的值 MOV A,ADC MOV B,#51 ;DOUT=VIN*51为AD转换得出数据 DIV AB ;DOUT/51为 DISPLAY2值 MOV DISPLAY2,A ;给第一个数码管的值 报警程序 MOV R0,#2 SUBB A,R0 JC LOOP1 ;如果A大于R0(大于2)则转移至LOOP1 MOV P3,00H ;否则 给第二,

13、第三个数码管的值LOOP2:MOV A,B MOV B,#5 DIV AB MOV DISPLAY1,A ;分别得到DISPLAY1 DISPLAY0的值 MOV A,B MOV DISPLAY0,A LCALL DISP SJMP WAIT ;等待再次得到ADC RETI 数码管点亮程序 DISP:MOV A,DISPLAY0 MOVC A,A+DPTR CLR P1.6 ;位选第一个数码管 低电平有效 MOV P0,A ;点亮第一个数码管 NOP NOP NOP NOP NOP NOP SETB P1.6 ;重新置一(动态扫描) MOV A,DISPLAY1 MOVC A,A+DPTR CLR P1.5 MOV P0,A ;点亮第二个数码管 NOP NOP NOP NOP NOP NOP SETB P1.5 MOV A,DISPLAY2 MOVC A,A+DPTR CLR P1.4 ORL A,#80H ;或指令点亮数码管点号 MOV P0,A ;点亮第三个数管 NOP NOP NOP NOP NOP NOP SETB P1.4 RET 表格 TABLE:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH 点亮报警电路数码管LOOP1:MOV P3.1,#1 LJMP LOOP2 END温度报警器仿真图

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

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