欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
各位各位大佬,單片機獨立按鍵控制數碼管為什么按下的時候也要加一呢?
[打印本頁]
作者:
x51hei666
時間:
2020-8-15 16:14
標題:
各位各位大佬,單片機獨立按鍵控制數碼管為什么按下的時候也要加一呢?
#include "main.h"
sbit S7=P3^0;//加
sbit S6=P3^1;//減
sbit S5=P3^2;//清0
uchar key_code,key_counts;//按鍵代碼,按鍵計數
uchar num_buff[3]={0,0,0};//數碼管顯示內容
uchar dula[12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
void main()
{
allint();
while(1)
{
key_contrul_smg_display();
key_contrul_smg_display_buff();
}
}
void delay(uchar i)
{
while(i--);
}
void allint()
{
P2=0X80;P0=0XFF;P2=0X00;
P2=0XA0;P0=0X00;P2=0X00;
P2=0XC0;P0=0XFF;P2=0X00;
P2=0XE0;P0=0XFF;P2=0X00;
}
void key_contrul_smg_display()
{
uchar i,j=0x80;
num_buff[0]=key_counts/100;
num_buff[1]=key_counts%100/10;
num_buff[2]=key_counts%10;
for(i=0;i<3;i++)
{
j=_crol_(j,1);
P2=0XE0;P0=dula[num_buff[ i]];P2=0X00;
P0=0XFF;
P2=0XC0;P0=j;P2=0X00;
P0=0X00;
delay(1000);
}
}
void key_contrul_smg_display_buff()
{
uchar i;
P30=1;P31=1;P32=1;
key_code=P3;
if(key_code!=0xff)
{
for(i=0;i<30;i++)
{
key_contrul_smg_display();
switch(key_code)
{
case 0xfe:if(key_counts<9)key_counts++;break;
case 0xfd:if(key_counts>0)key_counts--;break;
case 0xfb:key_counts=0;break;
}
key_code=0xff;
}
}
}
作者:
13487086265
時間:
2020-8-15 19:33
你是什么意思?我不太懂
作者:
x51hei666
時間:
2020-8-15 19:41
這個是代碼是獨立按鍵控制數碼管加減的
作者:
你速度發生的
時間:
2020-8-15 21:06
因為你按下的時候key_counts++自加,數碼管顯示是把key_counts這個數字分別顯示如這個num_buff[2]=key_counts%10;然后接著P0=dula[num_buff[ i]];所以按下的時候顯示也會+1。再說了你顯示的不就是按下的次數嗎,按下不加一怎么檢驗你按下單片機是否收到,加1是為了給你現象,知道單片機收到了你的按鍵信息。
作者:
wps10025
時間:
2020-8-16 09:05
初學者請教,上個程序中 allint();是什么意思呢?
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1