熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2020-2-3 15:59
正文摘要:看了普中的教學(xué)視頻,想顯示20.20.720.6 改了一下LSA的值,但是顯示變成了如圖 以下是代碼 小白求答! #include "REG52.H" typedef unsigned char u8; typedef unsigned int u16; sbit LSA=P2^2; sbit ... |
wulin 發(fā)表于 2020-2-3 17:29 0加點(diǎn)真是經(jīng)典,站在初學(xué)者的角度,別太搞好了,給他啟發(fā)就可以了. |
我?guī)湍闩昧?#include "REG52.H" typedef unsigned char u8; typedef unsigned int u16; sbit LSA=P2^2; sbit LSB=P2^3; sbit LSC=P2^4; u8 a=0,b=1,c=2,d=3,e=4,f=5,g=6,h=7;//使用八個(gè)數(shù)進(jìn)行位置確定 u8 code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(u16 i) { while(i--); } void DigDisplay() { u8 i; for(i=0;i<8;i++) { switch(i) { case(0): LSA=0;LSB=1;LSC=0;break; case(1): LSA=0;LSB=0;LSC=0;break; case(2): LSA=0;LSB=1;LSC=0;break; case(3): LSA=0;LSB=0;LSC=0;break; case(4): LSA=1;LSB=1;LSC=1;break; case(5): LSA=0;LSB=1;LSC=0;break; case(6): LSA=0;LSB=0;LSC=0;break; case(7): LSA=0;LSB=1;LSC=1;break; } P0=smgduan[i]; delay(100); P0=0x00; } } void display() { u8 j; for(j=0;j<8;j++) { switch(j) //位選,選擇點(diǎn)亮的數(shù)碼管, { case(0): LSA=0;LSB=0;LSC=0;P0=smgduan[a] ;break;// case(1): LSA=1;LSB=0;LSC=0; P0=smgduan[b];break;// case(2): LSA=0;LSB=1;LSC=0; P0=smgduan[c];break; case(3): LSA=1;LSB=1;LSC=0; P0=smgduan[d];break;// case(4): LSA=0;LSB=0;LSC=1; P0=smgduan[e];break;// case(5): LSA=1;LSB=0;LSC=1; P0=smgduan[f];break;// case(6): LSA=0;LSB=1;LSC=1; P0=smgduan[g];break;// case(7): LSA=1;LSB=1;LSC=1; P0=smgduan[h];break;// } delay(100); P0=0x00; } } void main() { while(1) { display(); // DigDisplay(); } } |
問(wèn)題顯示.JPG (34.48 KB, 下載次數(shù): 128)
你開發(fā)板上的結(jié)果
正確的顯示.JPG (45.17 KB, 下載次數(shù): 132)
改好后的效果
把20.20.720.6對(duì)應(yīng)的段碼:0x5b,0xbf,0x5b,0xbf,0x07,0x5b,0xbf,0x7d作為數(shù)組, case(0): LSA=0;LSB=0;LSC=0;break; case(1): LSA=1;LSB=0;LSC=0;break; case(2): LSA=0;LSB=1;LSC=0;break; case(3): LSA=1;LSB=1;LSC=0;break; case(4): LSA=0;LSB=0;LSC=1;break; case(5): LSA=1;LSB=0;LSC=1;break; case(6): LSA=0;LSB=1;LSC=1;break; case(7): LSA=1;LSB=1;LSC=1;break; } 這樣改了就可實(shí)現(xiàn) |
switch的case幾種狀態(tài)都重復(fù)了,顯示不亂才怪 |
位碼不可以隨意改動(dòng),想改變顯示字符只能改段碼。
![]()
|
Powered by 單片機(jī)教程網(wǎng)