欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2721|回復: 4
收起左側

各位各位大佬,單片機獨立按鍵控制數碼管為什么按下的時候也要加一呢?

[復制鏈接]
ID:696335 發表于 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;
}
}
}
回復

使用道具 舉報

ID:701852 發表于 2020-8-15 19:33 | 顯示全部樓層
你是什么意思?我不太懂
回復

使用道具 舉報

ID:696335 發表于 2020-8-15 19:41 | 顯示全部樓層
這個是代碼是獨立按鍵控制數碼管加減的
回復

使用道具 舉報

ID:695930 發表于 2020-8-15 21:06 | 顯示全部樓層
因為你按下的時候key_counts++自加,數碼管顯示是把key_counts這個數字分別顯示如這個num_buff[2]=key_counts%10;然后接著P0=dula[num_buff[ i]];所以按下的時候顯示也會+1。再說了你顯示的不就是按下的次數嗎,按下不加一怎么檢驗你按下單片機是否收到,加1是為了給你現象,知道單片機收到了你的按鍵信息。
回復

使用道具 舉報

ID:578842 發表于 2020-8-16 09:05 | 顯示全部樓層
初學者請教,上個程序中 allint();是什么意思呢?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表