編寫LED控制程序,完成LED奇數號燈和偶數號燈的交替顯示。
要求:
一、P0口外接8個LED、P1.0~P1.2外接三個按鍵。
二、T0做延時,溢出定為10ms。
三、按鍵0~2分別控制閃爍間隔時間分別為,0.5s,1s,2s。
四、開機后,LED全部點亮,3s后以0.5s交替。
單片機高手幫下忙,最好用C寫。
=======================================================
#include
#define uchar unsigned char
#define uint unsigned int
sbit K0 = P3^2;
sbit K1 = P3^3;
sbit K2 = P3^4;
uchar t1 = 0, t2 = 0, t3 = 0, aaa = 0x55, delay_time = 0;
//-------------------------------
void TIME0()interrupt 1
{
TH0 = 0xD8; //初值
TL0 = 0xF0; //10ms @ 12MHz
t1++;
if(t1 == 50) { //每到500ms
t1 = 0;
t2++;
if(t2 == 6) { //到了3s
t2 = 5;
t3++;
if (t3 》= delay_time) {
t3 = 0;
aaa = 255 - aaa;
P0 = aaa;
} } }
}
//-------------------------------
void main() //主函數
{
TMOD = 0x01; //T0定時
TH0 = 0xD8; //初值
TL0 = 0xF0; //10ms @ 12MHz
TR0 = 1;
ET0 = 1;
EA = 1;
P0 = 0x00;
delay_time = 1;
while (1) {
if (K0 == 0) delay_time = 1;
if (K1 == 0) delay_time = 2;
if (K2 == 0) delay_time = 4;
}
}
用 PROTEUS 仿真截圖如下:
-
led
+關注
關注
240文章
22907瀏覽量
650157 -
led燈
+關注
關注
22文章
1588瀏覽量
107405
發布評論請先 登錄
相關推薦
評論