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与JavaScript:基础入门... javas是什么?Java是一种面向对象的编程语言,可用于编写跨平台的应用软件。...

2
Java操作文本值:提取与求和技巧详解 java怎么把文本框的数字读出来想加求和获取Java文本中的值并执行操作有两种方...

3
手机QQ浏览器助力安卓用户:JavaSc... 请问,哪种浏览器支持JavaScript?——本人使用安卓手机。他们都受到支持。...

4
C语言实现阶乘累加和:从函数定义到代码示... 用C语言求1到N的阶层的累加和思路:首先定义一个函数计算一个数的阶乘,然后从1到...

5
Python教程:如何验证输入字符串是否... python中如何判断输入的字符串为实数,谢谢!尝试:x=float(input...

6
C语言实现400位高精度计算器:思路解析... 用C语言做一个可进行加减乘除的400位计算器?(求思路)这个可以用个位数全加器的...

7
C语言数组定义与赋值详解:char与in... c语言数组定义和赋值是什么?C语言数组定义为:charc[6]={'c','h'...

8
C语言期末复习攻略:基础知识点+经典例题... c语言怎么学考试基础知识笔记经典例题题库指针大一期末考试题入门二级怎么学代码烟花...

9
JavaScript字符串转数字:三种方... css前端如何把字符串转为数字主要有三种方式:转换函数、强制类型转换和使用js变...

10
掌握Ajax与Java AJAX:异步请... ajax和javaAjax是一种用于改善用户体验的技术。它的本质是使用浏览器内置...