?? ex4-7.c
字號:
/*
標題:范例 4-7
版本:1.0
Target:89S51
程序描述:這個范例說明如何使用按鈕輸入數據 */
/* ***************************************************** */
#include <REGX51.H>
#define TIMER0_COUNT 0XEE11/*10000h-(12,000,000/(12*200))*/
#define TRUE 1
#define FALSE 0
#define TIMES 25
code
seven_seg[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,
0X90};
int c,ups,downs;
//
// 函數 timer0_isr 檢查是否有按鍵按下
//
static void timer0_isr(void) interrupt TF0_VECTOR using 1
{
TR0=0;
TL0=(TIMER0_COUNT & 0x00FF);
TH0=(TIMER0_COUNT >> 8);
TR0=1;
if (ups !=0) { //檢查ups等于0嗎?
ups--; //如果ups不等于0,就將ups減1
if (ups==0 && P2_0==0) { //如果ups減到0,就檢查P2_0==0
c++; // 如果P2_0是0就表示上數的彈跳按鈕被按下,所以c加1
if(c==10) c=0; //如果c加到10,就將c恢復為0
}
} else if (P2_0==0) ups=TIMES; //如果ups=0且P2_0=0就將ups設
為25
if (downs !=0) { //檢查downs等于0嗎?
downs--; //如果downs不等于0,就將downs減1
if (downs==0 && P2_1==0){ //如果downs 減到0,就檢查P2_1=0
c--; // 如果P2_1是0就表示下數的彈跳按鈕被按下,所以c減1
if(c==-1) c=9; //如果c減到-1時,就將c恢復為10
}
} else if (P2_1==0) downs=TIMES; //如果downs=0且 P2_1 =0
就將downs設為25
P1=seven_seg[c];
}
static void timer0_initialize(void)
{
EA=0;
TR0=0;
TMOD &= 0XF0;
TMOD |=0x01;
TL0=(TIMER0_COUNT & 0x00FF);
TH0=(TIMER0_COUNT >> 8);
PT0=0;
ET0=1;
TR0=1;
EA=1;
}
void main (void)
{
c=0;
ups=0;
downs=0;
timer0_initialize();
P1=seven_seg[c];
while(1);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -