微控制器實現60s定時器

2022-07-05 01:03:09 字數 2384 閱讀 6177

微控制器573+數碼管+按鈕 實現60秒的定時器

知識:ie暫存器

tcon暫存器

tmod 暫存器

2個定時中斷,2個按鈕中斷

******************

*/#include

#define seg p2 //

數碼管 斷碼口

#define scanp p1 //

數碼管 com掃瞄口

sbit oc = p0^0; //

定義573鎖存器使能口,我是用的573驅動7段數碼管

sbit pb0=p3^2; //

按鈕0sbit pb1=p3^3; //

按鈕1

/********************

第乙個定時器

*******************

*/#define count_m1 50000 //

0.05s 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()

/**************

中斷0 計算並顯示秒數

**************

*/void t0_1s(void) interrupt 1

disp[

1]=tab[seconds/10]; //

十位 disp[0]=tab[seconds%10]; //

個位}

/***********************

中斷1 掃瞄

***********************

*/void t1_8ms(void) interrupt 3

} /*

***********************

按鈕 0 中斷 碼表開始/暫停

************************

*/void int0_sw(void) interrupt 0

/************************

中斷1 按鈕 1 復位

***********************

*/void int1_rst(void) interrupt 2

void delay(void) //

延時去抖動

微控制器定時器雙擊 微控制器實現60s定時器

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 第乙個定...

51微控制器 定時器

定時 計數器的結構和工作原理 定時 計數器的實質是加1計數器 16位 由高8位和低8位兩個暫存器組成。80c51 微控制器定時 計數器的工作是由兩個特殊功能暫存器控制的。tmod是定時 計數器的工 作方式暫存器,確定工作方式和功能,低四位用於t0,高四位用於t1。t con是控制寄 存器,控制t0和...

51微控制器 定時器

標準的51微控制器內部有t0和t1兩個定時器。定時器的計數值儲存在暫存器中。th0 tl0用於t0,th1 tl1用於t1.定時器儲存暫存器 名稱描述 sfr位址 復位值th0 t0高位元組 0x8c 0x00 tl0t0低位元組 0x8a 0x00 th1t1高位元組 0x8d 0x00 tl1t...