2個定時中斷,2個按鈕中斷
*******************/#include
#define seg p2 //數碼管 斷碼口
#define scanp p1 //數碼管 com掃瞄口sbit oc= p0^0; //定義573鎖存器使能口,我是用的573驅動7段數碼管
sbit pb0=p3^2; //按鈕0
sbit pb1=p3^3; //按鈕1
第乙個定時器
#define count_m1 50000 mode 1 乙個機器週期1us 這裡12mhz 機器週期=1/(12/12) 定時時間=定時個數*機器週期=50000*1us =0.05s
#define th_m1 (65536-count_m1)/256 //mode 1 高4位
#define tl_m1 (65536-count_m1)%256 //mode 1 低4位
int count_t0=0; /***定義中斷次數,第乙個中斷***/
第2個定時器
#define count_m2 250 //mode 2 250*1us = 0.25s
#define th_m2 (256-count_m2) //方式2 高4位
#define tl_m2 (256-count_m2) //方式1 低4位
char count_t1=0; /***定義中斷次數 ,第2個中斷***/
char code tab[10]=; //共陰極
char disp[2]=; //數碼管開始顯示 0 0
char seconds=0;char scan=0;void delay(void);
main()
oc= 0; //鎖存置0 ,點亮數碼管
ie=0x8f; //1000 1111 1000開啟總中斷 1111開啟4個中斷
tcon=0x00; //低電平0觸發
tmod=0x21; //0010 0001 timer1採用方式2 timer0採用方式1
th0=th_m1; //t0高4位 mode 1
tl0=tl_m1; //t0低4位 mode 1
tr0=0; //不啟動 t0
th1=th_m2; //設定t1自動載入值,計數值 mode2
tl1=tl_m2; //t1 mode2
tr1=1; //啟動t1
p3 =0xff; //設定按鈕輸入
while(1);
中斷0 計算並顯示秒數
void t0_1s(void) interrupt 1void delay(void) //延時去抖動
{inti;for(i=0;i<2400;i++); //2400 * 8 = 19200us = 20ms
微控制器定時器雙擊 關於51微控制器定時器的靈活使用
前段時間,做乙個專案,有串列埠收發指令判斷,按鍵型別判斷,長短按之類,power的定時關電,事件的輪詢掃瞄更新和display的定時掃瞄。這些要求就對定時器提出了要求,但是我的51微控制器只有兩個定時器,其中乙個又有debug口的波特率產生之用。於是乎我可以用的定時器就只剩下了乙個。怎麼辦?可能大家...
微控制器實現60s定時器
微控制器573 數碼管 按鈕 實現60秒的定時器 知識 ie暫存器 tcon暫存器 tmod 暫存器 2個定時中斷,2個按鈕中斷 include define seg p2 數碼管 斷碼口 define scanp p1 數碼管 com掃瞄口 sbit oc p0 0 定義573鎖存器使能口,我是用...
51微控制器 定時器
定時 計數器的結構和工作原理 定時 計數器的實質是加1計數器 16位 由高8位和低8位兩個暫存器組成。80c51 微控制器定時 計數器的工作是由兩個特殊功能暫存器控制的。tmod是定時 計數器的工 作方式暫存器,確定工作方式和功能,低四位用於t0,高四位用於t1。t con是控制寄 存器,控制t0和...