新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 定时器中断使用+数码管动态显示

定时器中断使用+数码管动态显示

作者:时间:2016-11-30来源:网络收藏
先上图


主要用到
EA:中断总控制 1 开启 0关闭
ET0 :定时器0溢出中断 1开启 0关闭

要点:中断号计算


公式:中断向量=8×中断号+3
timer0为例 中断向量=0x0b (11十进制) 中断号=(11-3)/8=1
中断函数:
void timer0_interrupt() interrupt1 //中断号为1
中断优先级可以查书。
数码管动态显示就是用一组io口 显示多个led数码管 扫描频率1~10ms
代码如下:
#include typedef unsigned char uint8;typedef unsigned int uint16;uint8 flag=0;uint16 i=0;sbit led1=P1^6;sbit led2=P1^7;sbit bee=P1^5;code uint8 ledcode[]={0xC0,	// 00xF9,	// 10xA4,	// 20xB0,	// 30x99,	// 40x92,	// 50x82,	// 60xF8,	// 70x80,	// 80x90,	// 90x88,	// A0x83,	// B0xC6,	// C0xA1,	// D0x86,	// E0x8E	// F};uint8 table[]={0,0};void timer0_init(){TMOD|=0x01;	 //工作模式1TMOD&=0xfd;TH0=0xdc;	 //初始值  10ms ×100=1sTL0=0x00;TR0=1;}void intr_init(){ET0=1;	    //timer0中断开启EA=1;	//总中断开启}
				
            	
                
				
								
上一页 1 2 下一页

评论


技术专区

关闭