我们这学期开了单片机的课,不知道为什么我们要用汇编语言写程序,感觉汇编程序真的挺难写的,所以把实验记录下来把。
如果没有学过汇编的小伙伴建议先去熟悉一下简单的汇编指令,之前简单的实验我就不记录了,我们从定时计数器实验开始吧。
首先来回顾一下和中断,定时有关的知识
51单片机中断级别
中断源 |
默认中断级别 |
序号(C语言用) |
INT0---外部中断0 |
最高 |
0 |
T0---定时器/计数器0中断 |
第2 |
1 |
INT1---外部中断1 |
第3 |
2 |
T1----定时器/计数器1中断 |
第4 |
3 |
TX/RX---串行口中断 |
第5 |
4 |
T2---定时器/计数器2中断 |
最低 |
5 |
中断允许寄存器IE
位序号 |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
符号位 |
EA |
------- |
ET2 |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
EA---全局中允许位。
EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭。
EA=0,关闭全部中断。
-------,无效位。
ET2---定时器/计数器2中断允许位。 EA总中断开关,置1为开;
ET2=1,打开T2中断。 EX0为外部中断0(INT0)开关,……
ET2=0,关闭T2中断。 ET0为定时器/计数器0(T0)开关,……
ES---串行口中断允许位。 EX1为外部中断1(INT1)开关,……
ES=1,打开串行口中断。 ET1为定时器/计数器1(T1)开关,……
ES=0,关闭串行口中断。 ES为串行口(TX/RX)中断开关,……
ET1---定时器/计数器1中断允许位。 ET2为定时器/计数器2(T2)