C51单片机教程:实现0-999数字显示,附C语言程序与原理图

创始人
2024-12-17 02:15:30
0 次浏览
0 评论

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口输出数据分别相连,均为低电平#includesbitshi=P0^3;//十位的公共极点sbitge=P0^2;//一位的公共极#defineOutP1//数据输出端unsignedchartab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳//实际显示0123456789//延迟---------------------------Delay(unsignedintt){while(t--);}//主程序---------------------------main(){unsignedchari=j=0;while(1)//循环显示{for(i=0;i
热门文章
1
Java代码实现:判断三角形类型及绘制倒... JAVA编程:根据用户输入的三角形的三个边长,判断三角形是不是直角三角形?pac...

2
Python编程:三种方法比较并输出三个... python比较三个数大小Python比较了以下三个数字的伟大:如果不同的写作,...

3
JavaScript字符串截取方法汇总与... JS截取指定字符串到指定字符串之间的内容结论:JavaScript中的对应方法可...

4
C语言位运算符详解: >>=... C语言中“>>=,<<=,&=,^=,|=”分别...

5
揭秘前端与后端:技术差异与协作关系 前端开发与后端开发的关系是怎样的简而言之,前端的前端是您看的所有东西,这是前端。...

6
Python模块实战:随机列表生成、排序... python中编写一个模块,模块中包含随机生成N个元素的列表、排序列表、求最大以...

7
SQL查询中WHERE与HAVING的区... sql语句中where和having的区别在SQL查询中,有两个关键字用于过滤数...

8
C语言实现正整数各位数字逆序输出及整数大... c语言:&#65532; 输入一个正整数,按从低到高顺序依次输出其各位数...

9
JavaScript ES6模板字符串详... js中模板字符串的使用模板字符串已添加到ES6 中,从而使文本操作更加灵活并解决...

10
C语言while循环深入解析及用法详解 c语言while用法 c语言while用法是什么1 在C中使用语言的使用分析如下...