熱門: 51單片機(jī) | 24小時必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時間: 2019-11-18 11:35
正文摘要:要求是初始值1234,隨按鍵加減 第一段的陰影總是和最后一位一樣…… 求大神解答謝謝 #include<reg52.h> sbit KEY=P3^4; sbit KEY1=P3^5; sbit seg1=P2^4; sbit seg2=P2^5; sbit seg3=P2^6; sbit se ... |
807964046 發(fā)表于 2019-11-18 16:52 嗯嗯打錯了 改5功能就對了 |
延時做的不好,再改進(jìn)一下 |
消隱的是led的段數(shù)據(jù)P0,而不是位數(shù)據(jù)P2,可按下面模式修改,并調(diào)整delay時間 P2=0X10; P0=a[h/1000]; delay(2); P0=0x00 delay(); |
解決了謝謝 最后一行 P0清零后先賦值位選后段選 代碼如下#include<reg52.h> sbit KEY=P3^4; sbit KEY1=P3^5; sbit seg1=P2^4; sbit seg2=P2^5; sbit seg3=P2^6; sbit seg4=P2^7; void delay(unsigned int xms); int a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; int h; void main() { h=6152; while(1) { if(KEY==0) { delay(1); if(KEY==0) { h++; } while(!KEY); } if(KEY1==0) { delay(1); if(KEY1==0) { h--; } while(!KEY1); } P2 = 0X00; P0=a[h/1000]; P2 = 0X10; delay(500); P2 = 0X00; P0=a[h%1000/100]; P2=0X20; delay(500); P2=0X00; P0=a[h%100/10]; P2=0X40; delay(500); P2=0X00; P0=a[h%10]; P2=0x80; delay(500); P2=0X00; } } void delay(unsigned int xms) { int i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--) {;} } |
本帖最后由 bh2030693 于 2019-11-18 13:50 編輯
編輯一下原因:直接粘貼的代碼還是顯示不全,要先粘貼到text,再復(fù)制粘貼到這里才能顯示全。 |
消隱方式不當(dāng)
|
嘗試P0清零后,再給P2置位,再給P0斌值 |
您好,看程序沒啥問題,是不是硬件的問題,可以考慮換個板子試一下。 |
Powered by 單片機(jī)教程網(wǎng)