单片机中断(定时器)实践

来源:互联网 发布:fifa online数据库 编辑:程序博客网 时间:2024/05/29 01:53
#include<reg52.h>/*    原理:通过每单位中断50毫秒,每次中断20单位实现定时显示    为方便我只是点亮了LED,还可以操作位选与段选点亮指定数码管显示指定数字*/unsigned char count=0;sbit led=P2^1;void main(){    //GATE=0,C/T=0,M1M0=01,结果TMOD为0x01    TMOD=0x01;    //装入数据    TH0=(65536-50000)/256;    TL0=(65536-50000)%256;    //总中断    EA=1;    //定时器中断请求标志位    ET0=1;    //开启定时器0    TR0=1;    //点亮LED    while(1)   //之前少了while循环导致无法正常显示    {        if(count==20)        {            led=0;        }        if(count==40)        {            led=1;            count=0;        }    }}void inter() interrupt 1{    //再一次重新装入数据方便进行下一次中断    TH0=(65536-50000)/256;    TL0=(65536-50000)%256;    count++;}
原创粉丝点击