本帖最后由 zht2004ww 于 2017-4-28 10:47 編輯
51單片機做的2個按鍵控制2位數碼管現在只能0~9加減,目前數碼管還是同步顯示的就是同時顯示11,22,33,44~99
怎么改成0~99的加減,各位大神幫忙看看,不會做位處理..
QQ圖片20170427111553.png (12.25 KB, 下載次數: 58)
下載附件
2017-4-27 11:16 上傳
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
sbit K1=P3^5;
sbit K2=P3^7;
void delay(uint x);
uchar num;
void main(){
#pragma ASM
P1M1 EQU 91H
P1M0 EQU 92H
MOV P1M0,#11111111B
MOV P1M1,#00000000B
#pragma ENDASM
P1=0x3F;
num=1;
while(1)
{
if(K1==0)
{
P1=table[num];
delay(1000);
num++;
if(num==10)
{
num=0;
}
else
{
num=num;
}
}
else if(K2==0){
num--;
if(num==-1){
num=9;
}
P1=table[num];
delay(1000);
}
}
}
void delay(uint x){
uchar t;
while(x--)
for(t=120;t>0;t--);
}
|