|
單片機(jī)程序需要實(shí)現(xiàn)的功能:
按鍵K1按下之后,STC8H1K28的P1和P2口需要分別從低至高輸出低電平后然后全部返回高電平。
代碼如下:
#include"stc8h.h"
#include"intrins.h"
typedef unsigned char u8;
typedef unsigned int u16;
#define KEY_PORT P1 //宏定義P1端口為KEY_PORT
#define key1_PORT P2
sbit key = P0^0;
void delay_10us(u16 us) //延時(shí)10us的函數(shù)
{
while(us--);
}
u8 key_scan()
{
if(key==0);
{
delay_10us(1000);
if(key==0)
{
KEY_PORT=~0x01;
delay_10us(50000);
key1_PORT=~0x01;
delay_10us(50000);
while(key==0);
}
}
}
void main()
{
u8 i=0;
P0M0=0X00;
P0M1=0X00; //設(shè)置PO端口為準(zhǔn)雙向模式
P1M0=0xff;
P1M1=0x00; //設(shè)置P1端口為強(qiáng)推挽模式
P2M0=0xff;
P2M1=0x00; //設(shè)置P2端口為強(qiáng)推挽模式
while(1)
{
key_scan();
for(i=0;i<7;i++)
{
KEY_PORT=_crol_(KEY_PORT,1);
delay_10us(50000);
}
for(i=0;i<7;i++)
{
key1_PORT=_crol_(key1_PORT,1);
delay_10us(50000);
}
}
}
菜鳥一枚,以上程序也是根據(jù)網(wǎng)上教材及視頻東拼西湊的,
歡迎大神幫忙指正。謝謝!
|
|