赞
踩
四位一体的数码管,引脚逆时针编号1~12。
四位一体的数码管,有两种:共阴极连接和共阳极连接。以共阴极为例,将12,9,8,6为公共端进行位选,将1~11为公共端进行段选。若选中单个位选,选中段选,则在单个数码管显示数字。若选中多个位选,选中段选,则在多个数码管显示相同数字。要想在不同数码管位置上显示出不同的数字,只能利用人眼视觉的暂留和数码管显示的余辉来实现数码管动态显示。
代码如下:
#include <REGX52.H> unsigned char NixieTable[] ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; void NixieTube(unsigned char Location,Number) { switch(Location) { case 1 :P2_4=1;P2_3=1;P2_2=1;break; case 2 :P2_4=1;P2_3=1;P2_2=0;break; case 3 :P2_4=1;P2_3=0;P2_2=1;break; case 4 :P2_4=1;P2_3=0;P2_2=0;break; case 5 :P2_4=0;P2_3=1;P2_2=1;break; case 6 :P2_4=0;P2_3=1;P2_2=0;break; case 7 :P2_4=0;P2_3=0;P2_2=1;break; case 8 :P2_4=0;P2_3=0;P2_2=0;break; } P0=NixieTable[Number]; } void main() { /* P2_4=1;//74HC138 LED6==Y5 chioce P2_3=0; P2_2=0; P0=0x7D;//"6"'-'a~g~dp:1011 1110=>P07~P00 //P0=0111 1101=0x7D; */ NixieTube(1,2); while(1) { } }
代码如下:
#include <REGX52.H> unsigned char NixieTable[] ={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; void Delay(unsigned int xms) { unsigned char i, j; while(xms--){ i = 2; j = 239; do { while (--j); } while (--i); } } void NixieTube(unsigned char Location,Number) { switch(Location) { case 1 :P2_4=1;P2_3=1;P2_2=1;break; case 2 :P2_4=1;P2_3=1;P2_2=0;break; case 3 :P2_4=1;P2_3=0;P2_2=1;break; case 4 :P2_4=1;P2_3=0;P2_2=0;break; case 5 :P2_4=0;P2_3=1;P2_2=1;break; case 6 :P2_4=0;P2_3=1;P2_2=0;break; case 7 :P2_4=0;P2_3=0;P2_2=1;break; case 8 :P2_4=0;P2_3=0;P2_2=0;break; } P0=NixieTable[Number]; Delay(1); P0=0x00; } void main() { while(1) { NixieTube(1,1); // Delay(20); NixieTube(2,2); // Delay(20); NixieTube(3,3); // Delay(20); } }
以上就是今天要讲的内容,本文简单介绍了51单片机的数码管显示。感谢各位的阅读!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。