资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
南昌航空大学南昌航空大学信息工程学院信息工程学院实验报告实验报告课程名称:课程名称:单片微型机原理单片微型机原理学学号:号:姓姓名:名:指导教师:指导教师:_成成绩:绩:_南昌航空大学实验报告南昌航空大学实验报告2014 年年 3 月月 14 日日课程名称:课程名称:单片微型机原理单片微型机原理实验名称:实验名称:清零、电脑时钟清零、电脑时钟班级:班级:姓名:姓名:学号:学号:指导老师评定:指导老师评定:签名:签名:一、实验目的一、实验目的1、掌握汇编语言设计和调试方法,熟悉键盘操作;2、熟悉 MCS51 定时器、串行口和中断初始化编程方法,了解定时器应用在实时控制中程序的 设计技巧。二、实验二、实验内容内容1、把 7000H 70FFH 的内容清零。2、编写程序,从 DVCC 系列单片机实验仪键盘上输入时间初值,用定时器产生 01S 定时中断, 对时钟计数器计数,并将数值实时地送数码管显示。三、实验三、实验步骤步骤清零程序清零程序 1、实验程序框图NY开始R0 =0,DPTR=7000H00 送到(DPTR)DPTR+1,R0+1R0 = FF?结束2、当 DVCC 单片机仿真实验系统独立工作时 (1)将固化区 EPROM 中实验程序目标码传送到仿真 RAM 区, 操作如下: 输入 0 后按 F1 键, 再输入 0FFF 后按 F2 键,再输入 0 后按 EPMOV 稍等,系统返回初始状态,显示“P。 (2)按 F2 键进入仿真 1 态,仿真实验系统显示闪动“P ”时,根据表一所示,通过键 盘输入实验程序的起始地址 0030H,再按执行键 EXEC,表示连续运行该程序,稍后,按 RESET 键退出运行;如果以单步运行程序,则输入 0300 后,按 STEP 键,按一次执行一条 语句, 直到执行到 003CH 为止, 按 MON 键退出运行; 如果以断点运行程序, 则先输入 003C (断点地址) ,再按 F1 键,再输入 0030(起始地址) ,然后按 EXEC 键执行程序,当执行 到 003CH 时自动停下来,此时按 MON 键退出。 (3)用存储器读写方法检查 7000H70FFH 中的内容应全是 00H。 3、 当 DVCC 单片机仿真实验系统联 PC 机工作时 (1)在闪动“P ”状态,按 PCDBG 键。 (2)在 PC 机处于 WIN95/98 软件平台下,单击 DVCC 图标。 (3)在系统设置选项中设定仿真模式为内程序、内数据。 (4)根据屏幕提示进入 51/96 动态调试菜单。 (5)联接 DVCC 实验系统(Ctrl + H) 。 (6)装载目标文件(Ctrl + L) 。 (7)设置 PC 起始地址。 (8)从起始地址开始连续运行程序(F9)或单步(F8)或断点运行程序。 (9)单步、断点运行完后,在存储器窗口内检查 7000H70FFH 中的内容是否全为 00H。 4、清零程序 ORG 0030H CLEAR:MOV R0,#00H MOV DPTR,#7000H;设数据指针 DPTR=7000H CLEAR1: CLR A MOVX DPTR,A;清第一个数据单元 INC DPTR;指针加一 INC R0;字节数加一 CJNE R0,#00H,CLEAR1;判字节数满 256 个否,不满继续 CLEAR2: SJMP CLEAR2;满结束程序 END电脑时钟电脑时钟 1、实验程序框图2、实验操作 (1)用连续方式从起始地址 0340H 开始执行程序(输入 0340 后按 EXEC 键) 。 (2)连续运行程序,在键盘上输入时间初值。如果输入时分秒初值超范围,则显示 000000 后 要求重新设置初值,初值的默认值为 000000。 (3)再次按 EXEC 键时钟开始工作,数码管上实时显示时间值。 3、电脑时钟程序 ORG 000BH LJMP TINTRUP ORG 0340h CLOCK0: MOV SP,#50H MOV R0,#7EH ;清显示缓冲区 MOV R4,#06H CLR A CLOCK1:MOV R0,A DEC R0 DJNZ R4,CLOCK1 MOVA,#7EH MOV DPTR,#1FFFH MOVX DPTR,A MOV 76H,#00H ;初始化定时/计数器 MOV 77H,#00H LCALL KEYDISP0 ;调显示键扫子程序LCALL DISDA0 ;调显示缓冲区放数程序 MOV TMOD,#01H ORL IE,#82H MOV TL0,#0B7H MOV TH0,#3CH MOV 23H,#00H SETB TR0;开定时中断 CLOCK2:LCALL DISP ;调显示子程序 LCALL DISDA0 ;调显示缓冲区放数子程序 SJMP CLOCK2;循环 DISDA0:MOV R0,#79H ;显示缓冲区放数子程序 MOVA,22H ACALL DISDA MOVA,21H ACALL DISDA恢复初值,保护现场定时中断YYYNNNNY1 秒到吗?0.1 秒单元清零,60 秒到吗?秒单元清零,60 秒到吗?分单元清零,24 小时到吗?时单元清零堆栈返回0.1 秒加 1秒加 1分加 1时加 1NY清显示缓冲区初始化定时计数器显示初值 000000从键盘设时钟初值判时钟初值合乎规定否?开始开定时器显示器显示当前时钟值MOVA,20H ACALL DISDA RET DISDA:MOV R1,A ACALL DISDA1 MOVA,R1 SWAPA DISDA1:ANLA,#0FH MOV R0,A INC R0 RET TINTRUP: MOV TL0,#0B7H ;定时器中断服务程序 MOV TH0,#3CH ;重新置初值 PUSH PSW PUSH ACC ;保护当前值 SETB 0D3H INC 23H ;01 秒单元加 1 MOVA,23H CJNE A,#0AH,TINTRUP1 ;判 1 秒到否,未到继续 MOV 23H,#00H ;清 01 秒单元 MOVA,22H INC A ;秒单元加 1 DAA MOV 22H,A CJNE A,#60H,TINTRUP1 ;判 60 秒到否,未到继续 MOV 22H,#00H ;清秒计数单元 MOVA,21H INC A ;分单元加 1 DAA MOV 21H,A CJNE A,#60H,TINTRUP1 ;判 60 分到否,未到继续 MOV 21H,#00H ;清分计数单元 MOVA,20H INC A;时单元加 1 DAA MOV 20H,A CJNE A,#24H,TINTRUP1 ;判 24 小时到否,未到继续 MOV 20H,#00H ;清时计数单元 TINTRUP1:POPACC POP PSW RETI ;返回主程序 KEYDISP0:LCALL KEY ;调显示键扫子程序 JNC FANCKEY ;转功能键处理 DATAKEY:LCALL DATAKEY1 ;数值键处理 DB 79H,7EH SJMP KEYDISP0 FANCKEY:CJNE A,#16H,KEYDISP0 ;是执行键,判输入的秒初值是否超限 MOVA,7AH SWAPA ORLA,79H MOV 22H,A CJNE A,#60H,FANCKEY1 FANCKEY1: JNC FANCKEY4 ;判输入的分初值是否超限 MOVA,7CH SWAPA ORLA,7BH MOV 21H,A CJNE A,#60H,FANCKEY2 FANCKEY2: JNC FANCKEY4 ;判输入的时初值是否超限 MOVA,7EH SWAPA ORLA,7DH MOV 20H,A CJNE A,#24H,FANCKEY3 FANCKEY3:JNC FANCKEY4 RET FANCKEY4:CLR TR0 LJMP CLOCK0 DATAKEY1:MOV R4,A ;数字键处理子程序MOV DPTR,#1FFFH MOVXA,DPTR MOV R1,A MOVA,R4 MOV R1,A CLR A POP 83H POP 82H MOVC A,A+DPTR INC DPTR CJNE A,01H,DATAKEY3 DEC R1 CLR A MOVC A,A+DPTR DATAKEY2: PUSH 82H PUSH 83H MOV DPTR,#1FFFH MOVX DPTR,A POP 83H POP 82H INC DPTR PUSH 82H PUSH 83H RET DATAKEY3: DEC R1 MOVA,R1 SJMP DATAKEY2 KEY0: MOV R6,#20H ;数字键闪动程序 MOV DPTR,#1FFFH MOVXA,DPTR MOV R0,A MOVA,R0 MOV R7,A MOVA,#10H MOV R0,A KEY3: LCALL KEYDISP JNB 0E5H,KEY2 DJNZ R6,KEY3 MOV DPTR,#1FFFH MOVXA,DPTR MOV R0,A MOVA,R7 MOV R0,A KEY:MOV R6,#50H KEY1: LCALL KEYDISPJNB 0E5H,KEY2 DJNZ R6,KEY1 SJMP KEY0 K MOVA,R1 MOV R3,A XRLA,R4 MOV R3,04H MOV R4,02H JZ KEYDISP1 MOV R2,#88H MOV R4,#88H KEYDISP1:DEC R4 MOVA,R4 XRLA,#82H JZ KEYDISP2 MOVA,R4 XRLA,#0EH JZ KEYDISP2 MOVA,R4 ORLA,R4 JZ KEYDISP3 MOV R4,#20H DEC R2 LJMP KEYDISP5 KEYDISP3:MOV R4,#0FH KEYDISP2:MOV R2,04H MOV R4,03H KEYDISP5:MOV R1,#76H MOVA,R2 MOV R1,A INC R1 MOVA,R3 MOV R1,A MOVA,R4 CJNE R3,#10H,KEYDISP4 KEYDISP4:RET DISP:SETB 0D4H;显示子程序 MOV R1,#7EH MOV R2,#20H MOV R3,#00H DISP1:MOV DPTR,#0FF21H MOVA,R2 MOVX DPTR,A MOV DPTR,#DATACO MOVA,R1MOVC A,A+DPTR MOV DPTR,#0FF22H MOVX DPTR,A DISP2: DJNZ R3,DISP2 DEC R1 CLR C MOVA,R2 RRC A MOV R2,A JNZ DISP1 MOVA,#0FFH MOV DPTR,#0FF22H MOVX DPTR,A CLR 0D4H RETDATACO:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,8 0H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H, 0DEH键扫子程序 KEYSM:SETB 0D4H MOVA,#0FFH MOV DPTR,#0FF22H MOVX DPTR,A KEYSM0: MOV R2,#0FEH MOV R3,#08H MOV R0,#00H KEYSM1: MOVA,R2 MOV DPTR,#0FF21H MOVX DPTR,A ;键矩阵中第 1 列置 0 NOP RLA MOV R2,A MOV DPTR,#0FF23H ;读键的行值 MOVXA,DPTR CPLA NOP NOP NOP ANLA
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号