首页 > 代码库 > 定时器与数码管

定时器与数码管

---恢复内容开始---


1
#include <reg52.h> 2 #define uchar unsigned char 3 int num=0,i=0; 4 uchar duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; 5 void delay()//定义延时函数方便调用 6 { 7 int a=50000; 8 while(a--); 9 } 10 void intertime() //定时器启动初始化 11 { 12 ET0=1; //打开定时器0分开关 13 EA=1; // 打开总开关 14 TMOD=0x01; //工作方式1 15 TH0=(65535-50000)/256; //赋值即从什么数值开始定时 16 TL0=(65535-50000)%256; //将一万的整数赋值给高八位 余数的部分赋值给第八位 17 TR0=1; //达到溢出值 就会触发中断 跳到中断服务函数执行 18 } 19 void main() 20 { 21 intertime();//定时器初始化 22 while(1); //让程序不执行下去 响应定时器初始化 执行中断 23 } 24 void cgh() interrupt 1 25 { 26 TH0=(65535-50000)/256;//工作方式1要手动装载初值 27 TL0=(65535-50000)%256; 28 num++; //每50ms num 就自动加一 29 30 if(num==10)//如果num达到10就是 每0.5s就会执行if后的内容 31 { 32 33 num=0;//清0 方便下一次从0开始计算到10 34 i++; 35 if(i==10) //让数码管显示0到9 36 i=0; 37 P2=~duan[i];//往P2口送数据 38 delay(); 39 } 40 }

技术分享

---恢复内容结束---

定时器与数码管