標題: 如何添加按鍵使單片機程序通過按鍵啟動? [打印本頁]
作者: 1102285881 時間: 2023-6-20 20:04
標題: 如何添加按鍵使單片機程序通過按鍵啟動?
現(xiàn)在是接通電源后,流水燈直接亮,那如何修改讓它接通電源后,按下按鍵P2.0后流水燈開始運行/**********************************************************
霓虹燈模擬控制主程序
**********************************************************/
#include<AT89X52.h>
unsigned char i10,i8,i6;
unsigned charmod1,mod2;
void main(void)
{
i10=10; //設(shè)置軟件計數(shù)10次,每次100ms
i8=8; //設(shè)置循環(huán)點亮階段輸出次數(shù)
i6=6; //設(shè)置間隔閃爍階段輸出次數(shù)
mod1=0x01; //設(shè)置循環(huán)點亮階段控制碼初值
mod2=0xAA; //設(shè)置間隔閃爍階段控制碼初值
F0=0; //設(shè)置循環(huán)點亮階段標志,F(xiàn)0=0為循環(huán)點亮階段
TMOD=0x10; //設(shè)置T1方式1定時
TH1=0x3C; //送100ms定時初值
TL1=0xB0;
IE=0x88; //允許T1中斷
P1_0=1 //
TR1=1; //啟動T1定時
while(1); //等待中斷
}
/**********************************************************
T1中斷服務(wù)程序
**********************************************************/
void timer0(void) interrupt 3 using 1
{
TH1=0x3C; //100ms時間到,重裝定時初值
TL1=0xB0;
i10--;
if(i10==0)
{
i10=10; //1s到重設(shè)軟件計數(shù)器
if(F0==0)
{
P1=~mod1; //循環(huán)點亮階段控制碼取反送P1口
mod1= mod1<<1; //mod1值左移一位
i8--;
if(i8==0)
{
i8=8; //完成重設(shè)循環(huán)點亮階段輸出次數(shù)
F0=1; //設(shè)置間隔閃爍階段標志
}
}
else
{
P1=mod2; //輸出間隔閃爍階段控制碼
Mod2=~mod2; //控制碼取反
i6--;
if(i6==0)
{
i6=6; //完成重設(shè)間隔閃爍階段輸出次數(shù)
F0=0; //設(shè)置循環(huán)點亮階段標志
}
}
}
}
作者: lkc8210 時間: 2023-6-21 11:06
2023-06-21_110624.png (8.59 KB, 下載次數(shù): 24)
下載附件
2023-6-21 11:06 上傳
作者: wulin 時間: 2023-6-21 11:32
如果只是簡單的做一次性啟動可以加一句while(P2_0);,如果想一鍵開關(guān)機就要用掉電喚醒模式。
void main(void)
{
i10=10; //設(shè)置軟件計數(shù)10次,每次100ms
i8=8; //設(shè)置循環(huán)點亮階段輸出次數(shù)
i6=6; //設(shè)置間隔閃爍階段輸出次數(shù)
mod1=0x01; //設(shè)置循環(huán)點亮階段控制碼初值
mod2=0xAA; //設(shè)置間隔閃爍階段控制碼初值
F0=0; //設(shè)置循環(huán)點亮階段標志,F(xiàn)0=0為循環(huán)點亮階段
TMOD=0x10; //設(shè)置T1方式1定時
TH1=0x3C; //送100ms定時初值
TL1=0xB0;
IE=0x88; //允許T1中斷
P1_0=1 //
while(P2_0);
TR1=1; //啟動T1定時
while(1); //等待中斷
}
作者: 2728999742 時間: 2023-6-21 11:57
首先在程序的開頭加入一句定義,sfr SAP = 0xe7;
SAP 是名稱,可以隨意改寫
之后在外部中斷或程序內(nèi)添加一個按鍵檢測的語句
作者: fegfds 時間: 2023-6-21 16:05
1、創(chuàng)建項目文件。
2、按鍵:S1=P3^2,點亮: led=P1^5。
3、創(chuàng)建C語言主函
5、選擇輸出的效果。
6、當(dāng)按下一個按鍵時,關(guān)閉燈,整個程序運行,再按一次,程序停止。
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |