微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 定时器中断0~100秒

定时器中断0~100秒

时间:11-29 来源:互联网 点击:
电路很简单,我就不画图了,四位数码管 通过2个74hc595连起来,1个595负责段选,1个595负责位选,利用单片机定时器中断实现0-100数字的循环显示.程序已经通过本人测试通过
#include#define uint unsigned int#define uchar unsigned charsbit rck=P0^0;sbit sck=P0^1;sbit si=P0^2;uchar num[]={0x80,0xed,0x42,0x48,0x2c,0x18,0x10,0xcc,0x00,0x08};uint b=0,i=0,j=0,k;void write_595(uchar x)//对595芯片进行设初始化{for(k=0;k<8;k++) //移位寄存器{x>>=1;sck=0;si=CY;sck=1;}}void date_danpianji()//对单片机计时器进行初始化{EA=1;//总中断开启ET1=1;//定时器开启TMOD=0X10;//选择定时器工作模式TH1=(65536-33333)/256;//除整赋给高八位TL1=(65536-33333)%256;//除余赋给第八位TR1=1; //启动定时器 }void main()//主函数{date_danpianji();//调用定时器中断while(1)//循环{   if(b==20)//检测中断函数是否满足b==20,如果满足则执行{b=0;i++;if(i==10){i=0;j++;if(j==10)j=0;}}write_595(num[j]);write_595(num[i]);rck=0;rck=1; }} void ext() interrupt 3 using 1 //定时器中断{TH1=(65536-33333)/256;TL1=(65536-33333)%256;b++;}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top