?? main.c
字號:
/********************************************************************
* 文件名 : main.c
* 描述 : 定時器0工作方式1,在外部晶振11.0592MHZ下,精確定時5ms,
每隔一秒數碼管上的數值加1。
* 創建人 : 符芳壯,2012年6月13日
* 版本號 : 1.0
***********************************************************************/
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
//數碼管的段碼編碼
uchar code table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//下一行的數組可以顯示數值外,還可以顯示數碼管的點
uchar code table_d[16] = {0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};
//定義全局變量
uint count;
/**********************************************************
*函數名稱:void time0_init(void)
*函數功能:定時器0初始化
*輸入 :無
*輸出 :無
**********************************************************/
void time0_init(void)
{
TMOD = 0x01; //定時器0工作方式1
TH0 = 0xEE;
TL0 = 0x00; //定時5ms
EA =1; //開啟總中斷
ET0 =1; //開啟定時器0中斷
TR0 =1; //啟動定時器0
}
/**********************************************************
*函數名稱:void time0_int(void)
*函數功能:定時器0中斷實現count自加
*輸入 :無
*輸出 :無
**********************************************************/
void time0_int(void) interrupt 1 using 0
{
TH0 = 0xEE; //重新裝載初值
TL0 = 0x00; //定時5ms
count++;
}
void main(void)
{
uint i = 0;
time0_init();
P2 = 0x00;
while(1){
P0 = table[i%16];
if(count==200){
i++;
count=0;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -