我這遲來的微控制器程式設計挑戰

2021-09-30 15:44:16 字數 1799 閱讀 2608

看了挑戰後,就想看看自己是否有60%了。但想好久都沒有寫,因c語言很久沒用了,也因思路不清就放下了,看了下大蝦們推薦的狀態機,有了點思路。但最近要找實習單位就一直沒寫,今天突然想起就試試,除錯下行了。哈哈。

還有我最近一直糾結於是選plc還是微控制器發展。不知道該走那條路呀?選擇微控制器,下學期就要實習了,已沒時間深入了。工作後··········

//----------------------------------------

//第乙個按鍵按下去時候,第乙個led以10hz頻率閃爍,

//再次按下時候,熄滅,再次按下時候,閃爍,依次迴圈。

//第二個按鍵按下去等到放開時候,第二個led以100hz頻率閃爍。

//再次按下放開,熄滅,第三次按下放開,閃爍,依次循

//第三個按鍵按下去時候,第三個led

//以50hz頻率閃爍,放開時候led熄滅。

//----------------------------------------

#include

#define uint unsignedint

#define uchar unsignedchar

uint ky1=0; //按鍵1狀態變數,初態為0

uint ky2=0; //按鍵2狀態變數

uint ky3=0; //按鍵3狀態變數

uint shi_ms=0; //計時變數

sbit led1=p3^0;//led燈

sbit led2=p3^1;

sbit led3=p3^2;

sbit key1=p1^0;//按鍵

sbit key2=p1^1;

sbit key3=p1^2;

bit ld1=0;//led1閃爍標誌,為1時led1閃爍

bit ld2=0;//led2閃爍標誌,為1時led2閃爍

bit ld3=0;//led3閃爍標誌,為1時led3閃爍

void dingshi0_csh() //定時器0初始化

void main()

//按鍵按下轉狀態1

} break;

case 1: //在狀態1中消抖

else //消抖後按鍵沒有按下

ky1=0; //返回初狀態

}break;

case 2: //在狀態2中等待按鍵釋放

}break;

case 3: //判斷按鍵是否釋放

else //按鍵沒釋放,跳狀態2等待按鍵釋放

ky1=2;

} break;

}switch(ky2)

} break;

case 1:

else

ky2=0;

} break;

case 2:

}case 3:

else

ky2=2;

} break;

}switch(ky3)

} break;

case 1:

else

ky3=0;

}case 2:

} break;

case 3:

else

ky3=2;

} break;}}

}void timer0interrupt() interrupt 1

if(0==(shi_ms%10)&&ld2==1)並來了led1標誌位ld1為1

if(0==(shi_ms%20)&&ld3==1)並來了led1標誌位ld1為1

if(200==shi_ms)

}搜狗截圖_2012-05-18_21-55-24.png

微控制器程式設計

1 data idata pdata和xdata的區別 2 微控制器中的位 bit 位元組 byte 字 word stc89c52 共有 512 位元組的 ram 是用來儲存資料的,比如我們定義的變數都是直接存在 ram 裡邊的。但是微控制器的這 512 位元組的 ram在地位上並不都是平等的,而...

我的微控制器學習

學了1年微控制器總覺的只是懂多點外圍器件的應用而已,自己本身的微控制器知識沒什麼進步。今年的廣西區電子設計大賽開始報名了,自己電路題更是沒練過,恐怕大賽入圍的目標要泡湯了。我們組雖然是大一上學期就開始學微控制器的但是學習單片的入門時期用了很長時間,那時c,電路,模電,數電沒學,進度很慢。上學期算是入...

微控制器 鍵盤程式設計

花了幾天時間整了下微控制器的鍵盤.我用的微控制器板子是用的p2的8個io埠對16個鍵達到控制的目的.那怎樣來使用8個埠控制16個鍵呢?其實很簡單,先必須要掌握她的原理圖,img upload attachment 89572 8ed2c5c8 088a 3ed2 84f2 75aa84fac52e....