微控制器之動態數碼管的顯示數字1-8
阿新 • • 發佈:2018-12-11
C51微控制器中的三種方法解決數碼管的動態顯示,使數碼管顯示1-8數字。三種方法的程式碼如下,此時讀者需要十分注意你程式碼中引腳的先後順序,否則可能達不到預期的效果.
#include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar code seg1[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80}; //使用的是共陽極數碼管 void delayms(uint i) { uchar j; while(i--) for(j=0;j<=125;j++); } void main() { while(1) { uchar i,j; P2=0x80; for(i=0;i<8;i++) { P2=_crol_(P2,1); P0=seg1[i]; delayms(1); } } }
#include<reg51.h> #define uchar unsigned char #define uint unsigned int uchar code seg1[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80}; //使用的是共陽極數碼管 uchar code seg2[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void delayms(uint i) { uchar j; while(i--) for(j=0;j<=125;j++); } void main() { while(1) { uchar i; for(i=0;i<8;i++) { P2=seg2[i]; P0=seg1[i]; delayms(1); } }
#include<reg51.h> #define uchar unsigned char #define uint unsigned int //uchar code seg1[]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80}; //使用的是共陽極數碼管 //uchar code seg2[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void delayms(uint i) { uchar j; while(i--) for(j=0;j<=125;j++); } void main() { while(1) { P2=0x01; P0=0xf9; delayms(1); P2=0x02; P0=0xa4; delayms(1); P2=0x04; P0=0xb0; delayms(1); P2=0x08; P0=0x99; delayms(1); P2=0x10; P0=0x92; delayms(1); P2=0x20; P0=0x82; delayms(1); P2=0x40; P0=0xf8; delayms(1); P2=0x80; P0=0x80; delayms(1); } }
模擬圖如下: