zoukankan      html  css  js  c++  java
  • C51学习 之 中断

    中断编程步骤

    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 }

  • 相关阅读:
    SQL INNER JOIN
    SQL JOIN
    SQL OUTER JOIN
    SQL CROSS JOIN
    SQL 基础:Select语句,各种join,union用法
    Morton Code
    vs 字体
    sql 语言
    sqllite3
    linux怎么区别文本文件和二进制文件
  • 原文地址:https://www.cnblogs.com/wangfeicom/p/14828536.html
Copyright © 2011-2022 走看看