新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 定時(shí)器中斷使用+數(shù)碼管動(dòng)態(tài)顯示

定時(shí)器中斷使用+數(shù)碼管動(dòng)態(tài)顯示

作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
先上圖


主要用到
EA:中斷總控制 1 開(kāi)啟 0關(guān)閉
ET0 :定時(shí)器0溢出中斷 1開(kāi)啟 0關(guān)閉

要點(diǎn):中斷號(hào)計(jì)算


公式:中斷向量=8×中斷號(hào)+3
timer0為例 中斷向量=0x0b (11十進(jìn)制) 中斷號(hào)=(11-3)/8=1
中斷函數(shù):
void timer0_interrupt() interrupt1 //中斷號(hào)為1
中斷優(yōu)先級(jí)可以查書(shū)。
數(shù)碼管動(dòng)態(tài)顯示就是用一組io口 顯示多個(gè)led數(shù)碼管 掃描頻率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中斷開(kāi)啟EA=1;	//總中斷開(kāi)啟}
				
            
                
			
							
上一頁(yè) 1 2 下一頁(yè)

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉