zoukankan      html  css  js  c++  java
  • 定时器的应用---中断方式---让8个LED灯,左右各4个来回亮

    定时器的应用---中断方式---让8个LED灯,左右各4个来回亮

    /***************************
     中断方式 是主程序专注于其他的事情,
     待定时器中断时才执行中断子程序。
     
    *****************************/
    
    #include<reg51.h>
    
    #define LED P1
    #define count 50000  // 50000 * 1us = 0.05s 机器周期1us 12MH晶振
    #define TH_M1 (65536-count)/256   //TMOD 寄存器 方式 1 , 2^8 = 256 THX跟TLX都是8位 除以256取商赋值高4位  
    #define TL_M1 (65536-count)%256   //将余数赋值低4位   
    int  Count=0;          //计算TO中断次数
    main()
    {
                IE   = 0x82;   // EA=1, 1000 0010      1000开启总中断    0010 T0中断
                TMOD = 0x01;   // 方式1
                TH0  = TH_M1;  // 设置T0计数值高8位,  
                TL0  = TL_M1;  // 低8位
                TR0  = 1;       // 启动 T0
                LED  = 0xf0;   // 1111 ,0000 右边亮  共阳极 
                while(1);       // 无穷循环
    }
    void timer0(void)interrupt 1     //定时器Timer0 中断 1 
        {
                TH0 = TH_M1;         //设置TO 高4位    
                TL0 = TH_M1;         //低4位
                if(++ Count==5)         //已经中断5次
            {
                Count=0;              //中断次数归0
                LED^=0xff;              // LED = LED ^ 0XFF  ^ 异或 1111 0000 ^ 1111 1111 = 0000 1111 LED取反
            }
        }


    IE寄存器

  • 相关阅读:
    Xpath提取一个标签里的所有文本
    Mac Sublime Text 3
    激活pycharm
    Mac 终端命令大全
    操作dict时避免出现KeyError的几种方法
    JQ 选择器大全
    调用百度编辑器
    模拟 Ajax 上传
    图片上传
    PHP 字符串去掉空格
  • 原文地址:https://www.cnblogs.com/zhaocundang/p/4968602.html
Copyright © 2011-2022 走看看