C51单片机教程:实现0-999数字显示,附C语言程序与原理图
C51单片机:用数码管显示0到999的值。求c语言程序和原理图
#include
#defineucharunsignedchar
uchartemp;
intkey1,key,disbuf;//此表为LED字体0123456789abcdef
unsignedcharcodeLED7Code[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
取消签名nedcharledx[8];
位s0,s1;
voidlay(ucharz)
{
uchari,j;
for(i=0;i<120>
for(j=0;j } voidscan()//如果有按键按下则扫描键盘编码值 { P1=0xF0; delay(1); 温度=P1; 开关(温度) { case0xe0:key1=0; 中断; case0xd0:key1=1; 中断; case0xb0:key1=2; 中断; case0x70:key1=3; 中断; } P1=0x0f; 延迟(1); temp=P1; 开关(temp) { case0x0E:key=key1+0; break; case0x0D:key=key1+4; 中断; case0x0B:key=key1+8; b泄漏; case0x07:key=key1+12; break; 默认:key=-1; } if((key1;+1)&&(key+1))disbuf=key; } voidejjc()//判断某个键是否被按下 { P1=0xF0; if(P1!=0xF0){scan();s0=1;} else{s0=0;s1=1;} } voidmain() { ukari; while(1) { ejjc(); if(s0==1&&s1==1) { s0=0;s1=0; for(i=0;i<8> {ledx[i]=ledx[i+1];ledx[8]=disbuf;} } P0=0xff; P2=LED7Code[ledx[0]]; P0=0xfe; 晚了(5); P0=0xff; P2=LED7Code[ledx[1]]; P0=0xfd; 延迟(5); P0=0xff; P2=LED7Code[ledx[2]]; P0=0xfb; 延迟(5); P0=0xff; P2=LED7Code[ledx[3]]; P0=0xf7; 延迟(5); P0=0xff; P2=LED7Code[ledx[4]]; P0=0xef; 延迟(5); P0=0xff; P2=LED7Code[ledx[5]]; P0=0xdf; 延迟(5); P0=0xff; P2=LED7Code[ledx[6]]; P0=0xbf; 延迟(5); P0=0xff; P2=LED7Code[ledx[7]]; P0=0x7f; 延迟(5); } }单片机利用7个led显示0-99的二进制c语言
当使用单片机控制LED显示0到99的二进制数时,首先要确定你的LED是共阴极还是共阳极。
两种类型在代码实现上都会有所不同。
在共阴极LED中,0对应的二进制值为0x7F,而在共阳极LED中,0对应的二进制值为0x00。
底线是你可以定义一个包含从0到9的二进制值的数组,例如0x7F、0x30、0x60等。
这样,在显示数字时,只需将LED设置为相应的值即可。
对于共阴LED,可以定义如下数组:unsigneddigital[10]={0x7F,0x00,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}对于共阴LED普通阳极,取值字符串中必须为否定:数字eunsigned[10]={0x00,0x7F,0xC1,0xF9,0xA4,0xB0,0x99,0x07,0x7F,0x6F}显示0到99时,可以将数字转换为二进制,然后选择数字的适当表示形式组索引数字。
例如,要显示数字25,可以先将其转换为二进制形式11001,然后显示每个数字对应的LED状态。
在实际编程中,可以使用循环和按位运算来实现此功能。
例如,假设您使用的是8位微控制器,您可以通过位移操作来访问数组中的值。
首先将数字转换为两个8位二进制数,然后显示这两个数字对应的LED状态。
具体代码示例如下:unsignedintnumber=25;//要显示的数字for(inti=0;i<2 i++){intdigitIndex=number;//获取最低位unsignedcharledValue>希望这些信息对您有用。单片机中二位数码管的显示,怎样用c语言写一段从0到99的程序啊?
公羊,P0.2,P0.3是通过PNP管的数字;数码管的公共门与P1口输出数据分别相连,均为低电平#include