首页 > 其他 > 详细

C51学习 之 中断

时间:2021-05-30 20:28:09      阅读:18      评论:0      收藏:0      [点我收藏+]

中断编程步骤

  1. TMOD设置工作方式 和 定时器/计时器 ,TMOD见下图;
  2. 设置TH0 TH1的初值,定时器计算公式: 定时时间/(12/主频);
  3. 设置EA,设置某个中断(EX0, ET0, EX1, ET1, ES, ET2)(IE寄存器);
  4. 设置中断优先级(1和0两个等级,1的优先级高)(IP寄存器);(省略则默认)
  5. TR0 开启定时器。

代码

 1 #include <reg52.h>
 2 
 3 sbit led = P1^0;
 4 
 5 void init()
 6 {
 7     TMOD = 0x01;   //定时器0
 8     TH0 = (65535 - 50000 * 12 / 12) / 256; //12MHz主频  定时1s  此处50ms
 9     TL0 = (65535 - 50000 * 12 / 12)% 256;
10     EA = 1;
11     ET0 = 1;
12     TR0 = 1;
13 }
14 
15 void on_T0Timer() interrupt 1
16 {
17     static unsigned int num = 0;
18     TH0 = (65535 - 50000 * 12 / 12) / 256;
19     TL0 = (65535 - 50000 * 12 / 12)% 256;
20   num++;
21     if (num == 20) {
22         num = 0;
23         led = ~led;
24     }
25 }
26 
27 int main()
28 {
29     init();
30     while(1);
31 }

 

 

技术分享图片

 

 

 

技术分享图片

 

C51学习 之 中断

原文:https://www.cnblogs.com/wangfeicom/p/14828536.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!