當前位置:編程學習大全網 - 編程語言 - 引腳編程

引腳編程

# include & ltreg 51 . h & gt;

# include & ltINTRINS.h & gt

#定義?u16?未簽名?(同Internationalorganizations)國際組織

#定義?u8?未簽名?茶

#定義?Pin0?0x01

#定義?Pin1?0x02

#定義?Pin2?0x04

#定義?Pin3?0x08

#定義?Pin4?0x10

#定義?Pin5?0x20

#定義?Pin6?0x40

#定義?Pin7?0x80

sbit?led1=p1^1;

sbit?led2=p1^2;

sbit?led3=p1^3;

sbit?led4=p1^4;

sbit?led5=p1^5;

sbit?kg1=p3^1;

sbit?key2=p3^2;

sbit?key3=p3^3;

/****************************************/

作廢?init()//初始化函數

{?TMOD = 0x 01;

TH0 =(65536-1000)/256;

TL0 =(65536-1000)% 256;

EA = 1;

ET0 = 1;

}

/////////////////////////

u8?S(){//掃描按鈕

靜電?u8?ms;

u8?t = 0;

//if(key 1 = = 0)t | = pin 1;

if(key 2 = = 0)t | = pin 2;

if(key 3 = = 0)t | = pin 3;

如果(t!=0x00){

如果(ms & lt100)ms++;

if(ms==5){

回歸?t;

}

}別的?ms = 0;

回歸?0x00

}

///////////////////////

typedef?結構{

u16?時間;//n毫秒後

u8?l;//明亮的燈光

u8?m;//關燈

} ledcmd

#定義?LED_CMD_SIZE?10

代碼?ledcmd?lcmd[]={

{0,Pin2,0}之後,//0s?Led2打開

{500,pin4,0}後,//0.5s?Led4打開

{1000,0,Pin4},//1s之後?Led4關閉

{300,Pin3,0,},

{300,Pin4,0,},

{1000,0,Pin4,},

{300,0,Pin2,},

{200,Pin5,0,},

{40,0,Pin5|Pin3},

{500,0,Pin1},

};

作廢?led_l(u8?V){//照明程序

P1=P1。(~ v);

}

作廢?led_m(u8?V){//熄燈程序

p 1 = p 1 |(v);

}

u8?ledzt = 0xff//led任務zt?0xff表示待機。

u16?ledjs//倒計時

作廢?led_start(){?//啟動程序

ledzt = 0;

ledjs=lcmd[ledzt]。時間;

}

作廢?ledcx(){?//led流量程序

if(led ZT & lt;LED_CMD_SIZE){

if((led js = = 0)& amp;& amp(ledzt & ltLED_CMD_SIZE)){//定時為0

ledzt++;

如果(ledzt!=LED_CMD_SIZE){

ledjs=lcmd[ledzt]。時間;

}

}

if(ledzt & gt;1){//

led_l(lcmd[ledzt-1]。l);

led_m(lcmd[ledzt-1]。m);

}

}

}

/***********************************/

作廢?Main()//主函數

{

u8?k;

init();//系統初始化

TR0 = 1;?//計時器開始計數。

while(1){

if(ledzt = = 0x ff){ led 1 =(kg 1!=0);};//當LED不運行時,根據開關改變led1。

k = s();//讀取鍵值

如果((k & ampPin2)!=0){//key2

if(led 1 = = 0 & amp;& ampledzt==0xff){

led _ start();

}

}

如果((k & ampPin3)!=0){//key3

ledzt = 0xff

led _ m(pin 2 | pin 4);

}

ledx();

}

}

/****************************/

作廢?定時器0()?打斷?1//1毫秒定時器

{?

TH0 =(65536-1000)/256;//重載初始值

TL0 =(65536-1000)% 256;

if(led js & gt;0)led js-;

}

  • 上一篇:市場分析所需的程序設計
  • 下一篇:南陽理工學院都有哪些專業?
  • copyright 2024編程學習大全網