標(biāo)題:
單片機(jī)定時(shí)器實(shí)驗(yàn)程序
[打印本頁(yè)]
作者:
lx80072
時(shí)間:
2019-7-3 22:20
標(biāo)題:
單片機(jī)定時(shí)器實(shí)驗(yàn)程序
定時(shí)器計(jì)數(shù)器綜合實(shí)驗(yàn)
P1接8個(gè)LED燈,P3.7接1個(gè)LED燈,點(diǎn)動(dòng)開關(guān)接P3.2 (INT0),負(fù)跳變產(chǎn)生中斷,P3.3 (INT1)用低電平觸發(fā)中斷。系統(tǒng)時(shí)鐘6M。
編寫程序?qū)崿F(xiàn)如下功能:
① 主程序9只LED燈上電全滅。
② INT0中斷程序?qū)崿F(xiàn):按一次啟動(dòng)定時(shí)器T0,再按一次停止。停止后恢復(fù)到上電狀態(tài)。
③ INT1中斷程序?qū)崿F(xiàn):按一次啟動(dòng)定時(shí)器T1,再按一次停止。停止后恢復(fù)到上電狀態(tài)。
④ 定時(shí)器T0實(shí)現(xiàn):P3.7所接1個(gè)LED燈亮滅閃爍,亮滅時(shí)間各為1S。
⑤ 計(jì)數(shù)器T1實(shí)現(xiàn):記錄由T1口所輸入脈沖個(gè)數(shù),以二進(jìn)制形式在P1口連接的8只LED燈上顯示出來(lái)。
(提示:低電平觸發(fā)及時(shí)恢復(fù)高電平,以免中斷重入)
程序如下:
#include<reg51.h>
#include<intrins.h>
sbit p3_7=P3^7;
char t;
char k=0;
void main()
{
TMOD=0x51;
EA=1;
EX0=1;
EX1=1;
ET0=1;
ET1=1;
IT0=1;
IT1=1;
TR0=0;
TR1=0;
TL0=(65536-15536)%256;
TH0=(65536-15536)/256;
TL1=0;
TH1=0;
p3_7=0;
P1=0;
while(1);
}
void key0()interrupt 0
{
TR0=!TR0;
if(TR0==0)
{
TR1=0;
k=0;
P1=0;
p3_7=0;
}
}
void time0()interrupt 1
{
TL0=(65536-15536)%256;
TH0=(65536-15536)/256;
t++;
if(t==10)
{
p3_7=!p3_7;
t=0;
}
}
void key1()interrupt 2
{
TR1=!TR1;
TH1=0xff;
TL1=0xff;
if(TR1==0)
{
TR0=0;
k=0;
P1=0;
p3_7=0;
}
}
void time1()interrupt 3
{
TH1=0xff;
TL1=0xff;
k++;
P1=k;
}
復(fù)制代碼
作者:
admin
時(shí)間:
2019-7-4 23:10
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1