导航:首页 > 操作系统 > 51单片机数码管程序

51单片机数码管程序

发布时间:2023-09-04 20:58:09

A. 51单片机的共阴数码管怎么显示数字(c语言)

要让51单片机共阴数码管显示数字,只需要将单片机的P2端口输出数字对应的段码即可。

以显示数字“0”为例,c语言程序如下:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

//数码管的段码编码

Uchar table[10] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void main(){//主函数

P0 = table[0];//显示0,大家可以修改里面的数据。

while(1);//程序不再执行其他步骤;

}

(1)51单片机数码管程序扩展阅读:

数字0-9的对应段码:

数字0 0x3f

数字1 0x06

数字2 0x5b

数字3 0x4f

数字4 0x66

数字5 0x6d

数字6 0x7d

数字7 0x07

数字8 0x7f

数字9 0x6f

B. 51单片机 让数码管自动显示0至9的C程序。有没有比这个更简单的

可以通过代码优化的方式来简化代码。

一、设置延时函数

延时函数在单片机中有着让现实延时的能力,本程序中可以通过采用for循环方式进行延时,具体代码如下:

void delay()

uinti,j;

for(i=100;i>0;i--)

for(j=1000;j>0;j--);

二、设置数码管显示数组

数组定义简单,而且访问很方便。所有元素类型相同,在数码管显示程序中可以让程序代码减少。数组代码如下:

chara[10]={0xff,0x3,0x9f,0x25,0xd,0x99,0x49,0x41,0x1f,0x1,0x9};

三、设置数码管显示循环

数码管显示循环可以不用编写一次又一次的数码管显示代码,既方便又简洁。具体代码如下:

for(inti=0;i<10;i++)

P0=a[i];

delay();

(2)51单片机数码管程序扩展阅读

单片机程序进行简化可以查看是否有反复出现的代码序列,整合成循环进行更改。同一类型且用法相同的变量可以整合成数组,方便对各个内容进行访问。有特定功能的代码段可以定义一个函数进行访问。

注意:用C51语言编辑的单片机程序与普通C语言不同,C51语言中的数据类型和标准c中的数据类型不同。

C. 51单片机怎么让数码管显示学号用汇编语言

数码管连接电路如图1所示,P0口输出码型,P2口输出位选。锁存器74HC573起驱动作用,提供驱动电流供数码管发光。译码器74HC138将位选地址转换成位选信号,例如当前是第5个数码管显示,那么P2口输出位选地址05H,译码器输入CBA=110,输出位选信号Y7-Y0=11101111,其中Y5=0,第5个数码管选通并显示,其它数码管不显示。实验时将J6的左边两个引脚针(1和2)用跳冒连接,锁存器11脚接VCC,关闭锁存功能。

数码管显示方式为动态扫描方式,当P0口送绝搏第一个数0的码型到锁存器时,P2送位选地址01H,即Y0=0,只有第一个数码管亮,宏宏枯显示0,其他数码管不显示。当P0口送第二个数1的码型到锁存器时,P2送位选地址02H,即Y1=0,只有第二个数码管亮,显示1,其他数码管不显示。即每次只有一个数码管点亮,8个数码管是轮流被点亮的,轮流点亮的间隔时间很短(一般用延时程序延时几个毫秒),由于视觉蔽洞的暂留现象,看到的却好象全都点亮着,这就是动态扫描。

数码管显示数字的码型由数码管的数据脚a~dp决定,图2为数码管的笔段分布图,由于是共阴极的,所以当a~dp为高电平时相应的笔段会亮,电路中P1.0~P1.7分别接数码管的a.b.c.d.e.f.g.dp,得到0~9这10个数字的码型如表1所示。

图2数码管的笔段分布图

引脚 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1P0.0数字码型

笔段 dp g f e d c ba

0 0 1 1 1 1 11 03FH

0 0 0 0 0 1 10 106H

0 1 0 1 1 0 11 25BH

0 1 0 0 1 1 11 34FH

0 1 1 0 0 1 10 466H

0 1 1 0 1 1 01 56DH

0 1 1 1 1 1 01 67DH

0 0 0 0 0 1 11 707H

0 1 1 1 1 1 11 87FH

0 1 1 0 1 1 11 96FH

1 0 0 0 0 0 00 小数点80H

只要把上面的相关数,改成学好就可以了。

D. 51单片机怎么用按键控制一个数码管,按一下显示一个数字,顺序显示

1、首先,要把代码写好,点亮数码管。

E. 51单片机怎样用键盘控制数码管显示

51单片机怎样用键盘控制数码管显示的方法。

如下参考:

1.首先,编写代码并点亮数码管。

F. 51单片机数码管显示的程序是什么

#include //52系列单片机头文件x0dx0a#define uchar unsigned char //宏定义x0dx0a#define uint unsigned intx0dx0asbit la=P2^6; //申明u1锁存器的锁存端x0dx0asbit wela=P2^7; // u2x0dx0auchar num1,num2;x0dx0auchar code table[]={ //数组定义x0dx0a 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,x0dx0a 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};x0dx0auchar code aable[]={ //位选数组定义x0dx0a 0xfe,0xfd,0xfb,0xf7,0xef,0xdf};x0dx0a void delays(uint); //子函数申明x0dx0ax0dx0a void main() x0dx0a{x0dx0a while(1)x0dx0a {x0dx0a for(num1=0;num1<48;num1++)//6个数循环显示x0dx0a {x0dx0a wela=1;//打开u2锁存端x0dx0a P0=aable[num1%6];//送入位选信号x0dx0a wela=0;//关闭u2锁存端x0dx0a //delays(1);x0dx0a la=1;//打开u1锁存端x0dx0a P0=table[num1%16];//送入段选信号x0dx0a la=0;//关闭u1锁存端x0dx0a delays(1);x0dx0a }x0dx0a }x0dx0a}x0dx0a/*---------主函数-----------------------------------------------*/x0dx0ax0dx0avoid delays(uint xs)x0dx0a{x0dx0a uint i,j,k;x0dx0a for(i=xs;i>0;i--)x0dx0a for(j=1000;j>0;j--)x0dx0a for(k=110;k>0;k--);x0dx0a}x0dx0a/*----------------延时程序-----------------------------------------------*/

G. 51单片机用4个按键,每个按键被按下都会使数码管显示一个数值

5. [问答题] [技能题画10配线图写出程序]按下按钮S1,数码管显示1;按下按钮S2,数码管显示2;按下按钮S3,数码管显示3;按下按钮S4,数码管显示4;能互相直接切换。按下停止按钮后,数码管熄灭。。

阅读全文

与51单片机数码管程序相关的资料

热点内容
广联达加密锁怎么看到期 浏览:168
cad轨迹命令 浏览:975
同事刷到女程序员自媒体视频 浏览:569
校验算法的缺点是什么 浏览:717
PHP商品分类功能实现 浏览:330
php取字符串中间 浏览:430
程序员经常用工具 浏览:835
降服主力指标源码主图 浏览:500
python实用库 浏览:692
电脑默认7个文件夹 浏览:11
新唐单片机安装c51后编译错误 浏览:530
红包源码引流神器 浏览:235
学生初中毕业撕书解压 浏览:747
命令方块刷铜点教学 浏览:690
php邮件订阅系统 浏览:997
柱梁底加密箍间距 浏览:30
pythonjavascript对比 浏览:741
什么动漫app是大陆字幕 浏览:286
android查看activity栈 浏览:918
x86固件编译 浏览:166