编辑: 鱼饵虫 | 2019-07-07 |
一、实验目的和要求(必填)
二、实验内容和原理(必填)
三、主要仪器设备(必填)
四、操作方法和实验步骤
五、实验数据记录和处理
六、实验结果与分析(必填)
七、讨论、心得
一、实验目的和要求
1、学习89C51内部定时/计数器的使用和编程方法
2、学习计数器各种工作方式的用法
3、掌握外部中断技术的基本使用方法
4、进一步掌握中断处理程序的编写方法
二、实验内容和原理
1、编程使第1~4和5~8发光二极管循环点亮的时间分别为0.
25s、0.5s、0.75s、1s.
2、累计按键次数,保存到内部RAM的30H单元.
3、采用外部中断的电平触发方式,编写并运行程序,观察运行结果.记录一次按键动作,进入中断的次数.
三、主要仪器设备
1、 ZDGDTH-1型-80C51/C8051/嵌入式(ARM9)/CPLD/实验开发系统
2、 THKL-C51仿真器
3、 个人计算机(PC)
四、操作方法与实验步骤
1、B:用来存放发光二极管前一个状态 R0:控制当前需定时几个0.25s 硬件连接:用8P数据线连接80C51MCU模块的JD1(P1口)与8位逻辑电平显示模块的JD1A5. 程序如下: ORG 0000H BEGIN:MOV 50H, #0 ;
控制定时器定时次数,使其每次定时0.25s MOV 51H, #0 ;
控制定时器当前应定时几个0.25s,对应发光二极管点亮时间 MOV A, #0F0H ;
设置初始状态 MOV B, A MOV P1, A MOV TMOD, #10H ;
T1方式1 实验名称: 硬件实验二 姓名: 詹文博 学号:
3061101341 MOV TH1, #3CH MOV TL1, #0B0H SETB TR1 L3: INC 51H MOV R0, 51H ;
控制当前定时为几个0.25s L1: JBC TF1, L2 SJMP L1 L2: MOV TH1, #3CH MOV TL1, #0B0H ;
重新装初值 INC 50H MOV A, 50H CJNE A, #5, L1 ;
是否到0.25s MOV 50H, #0 DJNZ R0, L1 ;
是否到当前应定时时间 MOV A, B CPL A ;
改变发光二极管状态 MOV P1, A MOV B, A MOV A, 51H CJNE A, #4, L3 LJMP BEGIN END
2、硬件连接:用8P数据线将80C51/C8051F020MCU模块的JD1(P1口)与8位逻辑电平显示模块的JD1A5相连;
用二号导线将80C51/C8051F020MCU模块的P3.4与单次脉冲模块的任一输出端相连. 程序如下: ORG 0000H LJMP START ORG 0030H START:MOV TMOD, #05H ;
T0方式1,计数器 MOV TH0, #0 MOV TL0, #0 SETB TR0 ;
开始计数 LOOP: MOV P1, TL0 ;
显示计数 MOV 30H, P1 ;
将计数存入30H SJMP LOOP END
3、硬件连接:用二号导线将80C51/C8051F020MCU模块的P1.0与8位逻辑电平显示模块的任一发光二极管相连;
用二号导线将80C51/C8051F020MCU模块的P3.2与单次脉冲模块的低电平输出端相连. 实验名称: 硬件实验二 姓名: 詹文博 学号:
3061101341 程序如下: LED BIT P1.0 LEDBUF BIT
0 ORG 0000H LJMP START ORG 0003H LJMP INTERTT ORG 0030H INTERTT: PUSH PSW ;
保护现场 INC 30H ;
30H内容加1,记录进入中断的次数 CPL LEDBUF ;
取反LED MOV C, LEDBUF MOV LED, C POP PSW ;
恢复现场 RETI START: MOV 30H, #0 CLR LEDBUF CLR LED MOV TCON, #00H ;
外部中断0低电平触发 MOV IE, #81H ;
打开外部中断0允许位(EX0)及总中断允许位(EA) OK: SJMP OK END
五、实验数据记录和处理
1、程序1的调试: 打开KEILUVISION2仿真软件,添加编写好的程序,编译无误. 运行程序,
1、
2、
3、4管亮,
5、
6、
7、8管暗;
0.25s后,
1、
2、
3、4管暗,
5、
6、
7、8管亮;
0. 5s后,
1、