新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機定時器0工作模式1

單片機定時器0工作模式1

作者: 時間:2012-12-01 來源:網(wǎng)絡(luò) 收藏
5101(16位模式),外中斷INT0(P3_2引腳)控制T0(P3_4引腳)的按鍵信號,按鍵(P3_4引腳)作為T0時鐘信號輸入0。若是INT0為1,則按鍵的狀態(tài)(不斷的按下然后抬起按鍵),使定時/計數(shù)器0計數(shù),溢出中斷引起P2.0引腳相連的LED燈閃爍。
//本程序出自:51hei網(wǎng)
#include "reg_c51.h"
unsigned char hex[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,
0x88,0x83,0xC6,0xA1,0x86,0x8E}; //數(shù)碼管十六進制譯碼表
void main(void)
{
TMOD = 0xF0; //定時/計數(shù)器0運行在模式1,16位模式
TMOD |= 0x0D; //GATE0=1; C/T0#=1; M1=0; M0=1;
TH0 = 0xff; //設(shè)置初值,初值=(65536-7)/256=FFH
TL0 = 0xf9; //設(shè)置初值,初值=(65536-7)%256=F9H
//初值為65529,只需要再計7個數(shù),定時/計數(shù)器就可以溢出
ET0=1; //允許定時/計數(shù)器0中斷
EA=1; //允許總中斷
TR0=1; //啟動定時/計數(shù)器
while(1); //無限循環(huán)
{
P1=hex[TL0/16]; //顯示TL0的高位
P0=hex[TL0%16]; //顯示TL0的低位
}}
void it_timer0(void) interrupt 1 //定時/計數(shù)器0中斷服務(wù)程序
{
P2_0 = ~P2_0; //每次中斷將P2_0引腳取反,就是使LED燈閃爍
TH0 = 0xff; //重置初值
TL0 = 0xf9; //重置初值
}


關(guān)鍵詞: 單片機 定時器 工作模式

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉