单片机课程设计——00-59秒计时器(利用软件延时).doc下载

weixin_39821260 2021-09-25 09:59:26
单片机课程设计,包含电路图,汇编和C语言 , 相关下载链接:https://download.csdn.net/download/dwf1354046363/23785019?utm_source=bbsseo
...全文
12 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
电子计时器 理学院 物理021班 客建红 学号:020032 一、总体设计 1 实现功能: 本试验设计的是一个计时器,计时数值最大为99分5999。按下按钮启动,开 始计时;再次按下按钮后停止计时。按下另一个按钮时,表清零。 2 解决方案: 用LED数码管显示计时的时间,显示的时间应有百分之一位、十分之一 位、个位、十位、分个位、分十位;利用单片机的外中断,某键为低时产生中段开 始计时,再一次为低时产生中断停止计时;另一键为低时产生中断使时间清零。 二、硬件系统设计 1 所需设备: DICE-5013S实验系统一个,并行接口8155一个,PC微机(P4)一台。 2 接线方式: 将P1.2接到按钮开关1上,作为一个停止或开始计时的中断; 外部中断0的引脚INT0接按钮开关2,作为清零中断。 3 资源分配: 用定时器0产生一个百分之一的计时中断。 3. 硬件系统设计 1 功能模块: 显示模块用来显示表计时时间,循环模块用来判断是否百分位已到100位已 到60,分位已到100,来控制进位。设置初值模块来设置计时器初值。清零模块将计时器 清零。 2 (1)主程序流程图: N Y (2)计时中断程序流程图: N Y N Y N Y N Y 四、程序清单 ORG 0000H AJMP MAIN ORG 0003H AJMP CLEAR ;清零中断 ORG 000BH AJMP JISHI ;计时中断 ORG 0013H AJMP STOP ;停止中断 MAIN: MOV TMOD,#01H ;T/C0工作方式为方式1 MOV IE, #87H MOV TL0, #78H ;置T/C0初值(216- 10000/2=0EC78H) MOV TH0, #0ECH SETB TR0 ;开启各个中断 SETB IT0 SETB IT1 MOV R4, #00H ;1/100置初值 MOV R3, #00H ;置初值 MOV R2, #00H ;分置初值 MOV 79H, #00H ;1/100位置初值 MOV 7AH, #00H ;1/10位置初值 MOV 7BH, #00H ;个位置初值 MOV 7CH, #00H ;十位置初值 MOV 7DH, #00H ;分个位置初值 MOV 7EH, #00H ;十分位置初值 SETB P1.2 DISP: MOV SP,#5FH ;显示 MOV A,#03H ;对8155初始化,A口、B口输出,C口输入 MOV DPTR,#0FF20H MOVX @DPTR,A DISP4: MOV R5,#01H ;置字位码初值 MOV R0,#79H ;显示缓冲区指针初值 MOV A,R5 LD0: MOV DPTR,#0FF21H ;字位码送8155A口 MOVX @DPTR,A MOV DPTR,#0FF22H MOV A,@R0 ADD A,#0EH MOVC A,@A+PC ;查字型码 MOVX @DPTR,A ;字型码送8155B口 ACALL DLAY ;延时1MS INC R0 MOV A,R5 JB ACC.5,LD1 RL A MOV R5,A AJMP LD0 LD1: SJMP DISP4 DB 0C0H,0F9H,0A4H,0B0H,99H,92H ;字型码表 DB 82H,0F8H,80H,90H,88H,83H,0C6H DB 0A1H,86H,8EH,0FFH,0CH,89H DB 0C8H,0C1H,7FH,0BFH DLAY: MOV R7,#02H ;延时子程序 DL1: MOV R6,#0FFH DL2: DJNZ R6,DL2 DJNZ R7,DL1 RET JISHI: MOV TL0, #78H MOV TH0, #0ECH PUSH ACC JNB P1.2,NEXT ;P1.2为0则返回不计时 INC R2 MOV A, R2 MOV B, #10 DIV AB MOV 79H, B ;存1/100位 MOV 7AH, A ;存1/10位 CJNE R2, #100, NEXT ;1/100到100加一 MOV R2, #00H MOV 79H, #00H MOV 7AH, #00H INC R3 MOV A, R3 MOV B, #10 DIV AB MOV 7BH, B ;存位 MOV 7CH, A ;存十位 CJNE R3, #60, NEXT ;到60则分加一 MOV R3, #00H MOV 7BH, #00H MOV 7CH, #00H INC R4 MOV A, R4 MOV B, #10 DIV AB MOV 7DH, B ;存分位 MOV 7EH, A ;存十分位 CJNE R4, #100,

13,103

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧