自個摸索,沒人教。
不太會用仿真軟體。
//發送到74HS595
void SendByte(unsigned char dat) //發送到74HS595
{
unsigned char m;
for(m=0;m<8;m++)
{
SRCLK=0;
SER=dat&0x80;
dat<<=1;
SRCLK=1;
_nop_();
_nop_();
SRCLK=0;
}
RCLK=1;
_nop_();
_nop_();
RCLK=0;
}
a為設備作業狀態接P1.0口,外接上拉電阻,低電平為已開機。開關接74HS595輸出Q0,低電平開機,高電平關機。
目標:在Q0設備開機前,一直回圈,直到P1.0低電平跳出回圈。執行后續程式
void System_booting_k (unsigned char a, unsigned char Y) //開機控制
{
unsigned char X;
while(a)
{
if(a==1)
{
X=P2;
Y=0X80; //1000 000
SendByte(X^Y); //異或 P2第1位為0,其他位不變。
delay10ms();
}
}
}
void System_booting_k (unsigned char a, unsigned char Y) //開機控制
{
unsigned char X;
while(~a)
{
if(a==0)
{
X=~P2; //P2口值取反
Y=0X80; //1000 000
Y=(X^Y); //異或 P2第1位為0,其他位不變。
SendByte(~Y); //Y取反輸出
delay10ms();
}
}
}
uj5u.com熱心網友回復:
后面那個是關機子函式,子函式名寫成一樣了。
請忽略
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258256.html
標籤:單片機/工控
上一篇:酒店網路需要支持500個終端接入
下一篇:求助一個關于影片的問題
