free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標簽廣場
我要提問

單片機

初學單片機

#include

sbit LED=P1^7;

sbit KEY=P3^7;

void delay(unsigned int a);

main(){

int b=0;

while(1){

if(KEY==0){

switch(b){

case 0:{

delay(20);

while(KEY==0){

LED=~LED;

b=1;

while(KEY==0);}}

break;

case 1:{

delay(20);

while(1){

LED=~LED;

delay(20);

if(KEY==0)

break;}

b=2;

while(KEY==0);}

break;

case 2:{

delay(20);

LED=0;

b=0;

while(KEY==0);}

break;}}}}

void delay(unsigned int a){

unsigned int i;

while(--a!=0)

for(i=600;i>0;i--);}

這個程序,我的設想是第一次按微動開關,LED常亮,第二次按開關,LED閃爍,第三次按開關,LED再次常亮,第四次按開關,LED滅。但是不知道為什么,LED的切換狀態(tài)很亂,沒有達到預想效果。請高人指點,謝謝

提問者:周小舟1 地點:- 瀏覽次數(shù):7880 提問時間:10-22 18:06
我有更好的答案
提 交
3條回答
sdvywye 02-12 14:44
#include
sbit LED=P1^7;
sbit KEY=P3^7;
void delay(unsigned int a);
main()
{
? ? ? ? int b=0;
? ? ? ? while(1)
? ? ? ? {
? ? ? ? ? ? ? ? if(KEY==0)
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? switch(b)
? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 0:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? delay(20);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? while(KEY==0)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? LED=~LED;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b=1;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? while(KEY==0);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? delay(20);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? while(1)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? LED=~LED;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? delay(20);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(KEY==0)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b=2;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? while(KEY==0);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? delay(20);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? LED=0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? b=0;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? while(KEY==0);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? }
? ? ? ? }
}
void delay(unsigned int a)
{
? ? ? ? unsigned int i;
? ? ? ? while(--a!=0)
? ? ? ? for(i=600;i>0;i--);
}
這樣呢?
blnocyyp2002 02-18 02:20


邏輯混亂了 慢慢來
你自己分析一遍就知道了
比如你的那個 case0 里面 while(key==0){.....} 如果一直按著 那燈的就一直改變狀態(tài)了
宋小輝1 02-11 08:16
用狀態(tài)機做,很容易的
撰寫答案
提 交
1 / 3
1 / 3
相關單片機
具有音調(diào)控制的單片機立體聲前置放大器
用于單片機與電子裝置中的開關電源
單片機軟硬件復位的條件都有啥
電動機的單片機控制
單片機應用系統(tǒng)開發(fā)實例導航