亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
這個(gè)單片機(jī)程序,如何讓按鍵切換為開與關(guān)
[打印本頁(yè)]
作者:
56464不能去啊
時(shí)間:
2018-12-2 15:03
標(biāo)題:
這個(gè)單片機(jī)程序,如何讓按鍵切換為開與關(guān)
按鍵按下后,開始key=0的循環(huán)。怎樣才能使實(shí)物中的按鍵再按一次,讓該程序回到key=1?
單片機(jī)源碼:
#include<reg52.h>
void delay(unsigned int a);
unsigned char b=0;
sbit key=P3^3;
void main()
{
while(1)
{
if(key==1)
{
delay(10);
if(key==1);
P1 = 0X08;
P2 = 0XC3;
}
if(key==0)
{
delay(10);
if(key==0);
while(1)
{
b++;
if(b==1)
{
P1 = 0X01;
P2 = 0XC3;
delay(100);
}
if(b==2)
{
P1 = 0X02;
P2 = 0XC3;
delay(100) ;
}
if(b==3)
{
P1 = 0X04;
P2 = 0XC3;
delay(100) ;
}
if(b==4)
{
P1 = 0X08;
P2 = 0XC3;
delay(100) ;
}
if(b==5)
{
P1 = 0X10;
P2 = 0XC3;
delay(100) ;
}
if(b==6)
{
P1 = 0X20;
P2 = 0XC3;
delay(100) ;
}
if(b==7)
{
P1 = 0X40;
P2 = 0XC3;
delay(100) ;
}
if(b==8)
{
P1 = 0X80;
P2 = 0XC3;
delay(100) ;
}
}
}
}
}
void delay(unsigned int a)
{
unsigned int i;
while(--a!=0)
{
for(i=0;i<600;i++);
}
}
復(fù)制代碼
作者:
ylym
時(shí)間:
2018-12-2 19:17
我的想法有兩種····
1是把while(1)的內(nèi)容放在while(key=0)里面,不用while(1)
2是用if語(yǔ)句修改key的值,然后再用break語(yǔ)句跳出循環(huán)
希望能幫到您
作者:
qqqqaq12
時(shí)間:
2018-12-2 21:32
有一個(gè)粗暴的方法,用goto語(yǔ)句,可以直接跳轉(zhuǎn)到你要去的位置。但是推薦,你把代碼改一下,但是不知道你具體要實(shí)現(xiàn)什么功能,我的想法是,添加一個(gè)變量,按鍵改變數(shù)值,按下第一次,值等于1,功能為你的第一個(gè)p1p2的賦值,再按一次,等于2,實(shí)行你while(1)的功能,由于程序在大的while(1)的里面。所以只要你不改變添加的變量的值,就會(huì)一直執(zhí)行,當(dāng)你在按一次按鍵,值跳轉(zhuǎn)回1,執(zhí)行賦值的功能
作者:
聆煙雨
時(shí)間:
2018-12-2 22:48
抱歉樓主,我把你的代碼改了一下?lián)Q行。看看這是不是你要的效果,可能需要你自己添加按鍵去抖。
#include<reg52.h>
void delay(unsigned int a);
unsigned char b=0;
sbit key=P3^3;
unsigned char last_key = 0;
void main(){
while(1){
while(last_key==0){
P1 = 0X08;P2 = 0XC3;
if(key==0){ last_key = 1; break;} // key 默認(rèn)為1 ,按下為 0
}
while(last_key==1){
b++;
if(b==1){ P1 = 0X01;P2 = 0XC3;delay(100);}
if(b==2){ P1 = 0X02;P2 = 0XC3;delay(100);}
if(b==3){ P1 = 0X04;P2 = 0XC3;delay(100);}
if(b==4){ P1 = 0X08;P2 = 0XC3;delay(100);}
if(b==5){ P1 = 0X10;P2 = 0XC3;delay(100);}
if(b==6){ P1 = 0X20;P2 = 0XC3;delay(100);}
if(b==7){ P1 = 0X40;P2 = 0XC3;delay(100);}
if(b==8){ P1 = 0X80;P2 = 0XC3;delay(100);}
if(b>8)b=0;
if(key==0){ last_key = 0; break;}
}
}
}
void delay(unsigned int a){
unsigned int i;
while(--a!=0){
for(i=0;i<600;i++);
}
}
復(fù)制代碼
作者:
hello_liu
時(shí)間:
2018-12-3 14:10
添加一個(gè)變量,按鍵改變數(shù)值,按下第一次,值等于1,功能為你的第一個(gè)p1p2的賦值,再按一次,等于2,實(shí)行你while(1)的功能,由于程序在大的while(1)的里面。所以只要你不改變添加的變量的值,就會(huì)一直執(zhí)行,當(dāng)你在按一次按鍵,值跳轉(zhuǎn)回1,執(zhí)行賦值的功能
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1