从定时器开始说中断
Keil Software –Cx51 编译器用户手册 中文完整版,(名字太长了,以后叫KEIL手册)的第125页。 中断号 中断地址 0 0003H 1 000BH 2 0013H 3 001BH 4 0023H 5 002BH 6 0033H 7 003BH 8 0043H 9 004BH 10 0053H 11 005BH 12 0063H 13 006BH 14 0073H 15 007BH 16 0083H 17 008BH 18 0093H 19 009BH 20 00A3H 21 00ABH 22 00B3H 23 00BBH 24 00C3H 25 00CBH 26 00D3H 27 00DBH 28 00E3H 29 00EBH 30 00F3H 31 00FBH 看到了吧,中断号就是对应中断进入地址的,至于什么是中断进入地址?那就是发生某个中断的时候单片机自动跳进的一个地址段了. 对于定时器0来说,就是000BH,所以对应中断号1。其他中断地址看看书就知道了。由上面的表可以看出,KEILC支持32个中断,不过到现在为止,我还没看到过有51单片机有32个中断的:) 好了,进入调试实践中了,把上面的代码敲进去吧,又或者直接下载我这个编译好的工程: timer0 进入工程后,你需要设置点东西: Debug Information是调试信息,你选择这个东西,才可以在C语言上进行仿真(不管是软还是硬仿真),否则你的仿真环境是汇编的! 软仿真设置: Go till main()就是在仿真的时候直接跳到MAIN函数上。如果没有选,那就由0地址开始运行。这里说个概念,在C51中,mian()函数并不代表0地址的,要知道,keilc在一开始的时候是需要经过比较多的初始化,例如清空RAM内容,设置堆栈等东西,这些都是不需要你做的,你的用户程序也不包括这些,做完这些初始化后,KEIL才自动跳到你的mian进行处理. 软件仿真是可以选晶振的,我们选的12M。下面的这些东西你就按图中的来选吧,具体内容以后再说。 如果编译成功的话,那么我们就开始第一次的软件仿真咯: 上面的是已经进入仿真状态的了,因为我们选择了Debug Information所以可以在C下面调试,也因为选择了Go till main()我们可以看到一开始就有个箭头指着main()的第一句话。而程序旁深色的东东,也就是我圈着的东西,就是有效代码段,程序只会在那里跑,也就是那个黄色箭头只会在那个区域跑。现在你已经可以仿真的了,可以选单步,全速来运行了。关于KEIL的具体仿真,将在下一章为大家解说。
- VxWorks下的多重定时器设计(02-16)
- μC/OS-II软件定时器管理算法分析及改进(11-15)
- μC/OSII中软件定时器的优缺点与改进(03-21)
- 基于ARM7 PWM定时器的图像传感器时序信号设计(08-28)
- VxWorks共享看门狗定时机制的设计与实现(10-05)
- 学习单片机不可欠缺的八大步骤(12-01)