单片机控制数码管显示数字25578

合集下载

c语言数码管显示多位数字的程序

c语言数码管显示多位数字的程序

标题:C语言实现数码管显示多位数字的程序一、引言在嵌入式系统中,数码管是一种常见的数字显示设备,常用于显示温度、湿度、时间等信息。

本文将介绍如何使用C语言编写程序,实现数码管显示多位数字的功能。

二、基本原理数码管是由许多LED灯组成的,每一个LED代表一个数字或者一个字母。

常见的数码管有共阴极数码管和共阳极数码管两种。

在本文中,我们以共阴极数码管为例进行讲解。

1. 共阴极数码管共阴极数码管的基本构造是共阴极和若干个LED管组成的显示器。

共阴极数码管的特点是:所有LED管的阴极是公用的,阳极分别接到每一位数字的引脚上。

通过控制每个数字管的阳极输入信号,可以实现控制数码管显示不同的数字和字符。

2. 显示多位数字要实现显示多位数字,首先需要确定每一个数码管的数据输入引脚,根据接线原理将对应的引脚连接到单片机的IO口。

然后通过C语言编写程序,控制每个数码管显示对应的数字。

三、C语言实现多位数字显示程序示例下面以8051单片机为例,展示一个简单的C语言程序,实现数码管显示多位数字的功能。

```c#include <reg52.h>// 定义控制数码管的引脚sbit DIG1 = P1^0;sbit DIG2 = P1^1;sbit DIG3 = P1^2;sbit DIG4 = P1^3;// 定义数码管显示的数字unsigned char code smgduan[16]={0x3f, //00x06, //10x5b, //20x4f, //30x66, //40x6d, //50x7d, //60x07, //70x7f, //80x6f, //90x77, //A0x7c, //B0x39, //C0x5e, //D0x79, //E0x71 //F};// 数码管扫描函数void display(unsigned char *dat) {DIG1 = 0;P0 = dat[0];DIG1 = 1;DIG2 = 0;P0 = dat[1];DIG2 = 1;DIG3 = 0;P0 = dat[2];DIG3 = 1;DIG4 = 0;P0 = dat[3];DIG4 = 1;}void main(){while(1){unsigned char num[4] = {0, 1, 2, 3}; // 要显示的数字数组 display(smgduan[num[3]]);delay(1);display(smgduan[num[2]]);delay(1);display(smgduan[num[1]]);delay(1);display(smgduan[num[0]]);delay(1);}}```在上述示例中,我们先定义了数码管的引脚和显示的数字所对应的编码。

数码管流动显示12345678

数码管流动显示12345678

学号天津城建大学嵌入式系统及应用课程设计设计说明书数码管流动显示12345678起止日期:2015 年11月15日至2015 年11月27 日学生姓名班级成绩指导教师(签字)计算机与信息工程学院2015年11 月27 日课程设计报告书题目: 数码管流动显示12345678学生姓名:学生学号:院名:专业:任课教师:目录摘要 ......................................................................................................................................................1.内容:利用动态扫描让八位数码管稳定的显示1、2、3、4、5、6、7、8 .........................................2.目标: .......................................................................................................................................................(1)掌握单片机控制八位数码管的动态扫描技术,包括程序设计和电 .............................................3.知识点链接 ...............................................................................................................................................2.2数码管7SEG-COM-AN-BLUE介绍(7段数码管) (2)主程序 (5)摘要1.内容:利用动态扫描让八位数码管稳定的显示1、2、3、4、5、6、7、82.目标:(1)掌握单片机控制八位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让八位数码管稳定的显示12345678。

单片机8位数码管动态显示数据

单片机8位数码管动态显示数据
{
j=0;
num++;
if(num==9)
num=0;
}
}
}
/*------------------------------------------------
延时函数,含有输入参数unsigned int t,无返回值
unsigned int是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/
void Delay(unsigned int t)
{
while(--t);
}
主函数
------------------------------------------------*/
main()
{
unsigned char i=来自,num;unsigned int j;
while(1)
{
DataPort=WeiMa[i]; //取位码
LATCH2=1; //位锁存
LATCH2=0;
#define DataPort P0 //定义数据端口程序中遇到DataPort则用P0替换
sbit LATCH1=P2^6;//定义锁存使能端口段锁存
sbit LATCH2=P2^7;//位锁存
unsigned char code DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示段码值0~F
单片机8位数码管动态显示数据
编写:szjcdz
日期:2010.9

用51单片机8255138373等实现数码管显示按键数值的程序DOC

用51单片机8255138373等实现数码管显示按键数值的程序DOC

姓名专业学号2013年10月28日随着单片机技术的飞速发展,在其推动下,现代的电子产品几乎渗透到了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高。

单片机具有体积小、功能强、应用面广等优点,目前正以前所未见的速度取代着传统电子线路构成的经典系统,蚕食着传统数字电路与模拟电路固有的领地。

它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

同时,学习使用单片机了解计算机原理与结构的最佳选择。

现在,这种单片机的使用领域已十分广泛。

彩电、冰箱、空调、录像机、VCD、遥控器、游戏机、电饭煲等无处不见单片机的影子,单片机早已深深地融入我们每个人的生活之中。

单片机能大大地提高这些产品的智能性,易用性及节能性等主要性能指标,给我们的生活带来舒适和方便的同时,在工农业生产上也极大地提高了生产效率和产品质量。

单片机按用途大体上可分为两类,一种是通用型单片机,另一种是专用型单片机。

课题要求:用51单片机、8255、138、373等实现数码管显示按键数值的程序各芯片资料:1.8255芯片资料如下用8255A可编程器件扩展并行接口8255: 有三个八位的并行口:PA、PB、PC。

有三种工作方式:方式0,方式1,方式2。

逻辑结构图:包含四个部分:●三个并行数据输入输出端口●两个工作方式控制电路●一个读写逻辑控制电路●八位总线缓冲器⑴.三个并行数据输入输出端口:A口;B口;C口一般,A口,B口作为数据输入输出端口,C口作为控制/状态信息口,可以分为两个部分,分别与A口和B口配合使用,作为控制信息输出或状态信息输入。

⑵.工作方式控制电路工作方式控制电路有两个:A组控制和B组控制电路,A组控制用来控制A口和C口的上半部分PC7——PC4;B组控制用来控制B口和C口的下半部分PC3——PC0;两组控制电路具有一个控制命令寄存器,用来接收来自CPU的数据(控制字),以决定芯片的工作方式,或对C口按位进行清“0”或者置“1”。

单片机8位数码管动态显示数据

单片机8位数码管动态显示数据
i++;j++;
if(8==i) //检测8位扫描完全结束?如扫描完成则从第一个开始再次扫描8位
i=0;
if(j==500) //检测当前数值显示了一小段时间后,需要显示的数值加1,实现数据显示的变化
{
j=0;
num++;
if(num==9)
num=0;
}
}
}
/*------------------------------------------------
}
单片机8位数码管动态显示数据单片机数码管动态显示单片机数码管显示程序单片机数码管显示0到9单片机数码管显示单片机数码管静态显示单片机数码管显示原理单片机数码管显示电路单片机数码管移位显示单片机数码管显示时间
单片机8位数码管动态显示数据
编写:szjcdz
日期:2010.9
内容:8位数码管分别显示不同数字,这种扫描显示方式成为动态扫描,并不停变化赋值
unsigned int j;
while(1)
{
DataPort=WeiMa[i]; //取位码
LATCH2=1; //位锁存
LATCH2=0;
DataPort=DuanMa[num+i]; //取显示数据,段码
LATCH1=1; //段锁存
LATCH1=0;
Delay(200); //扫描间隙延时,时间太长会闪烁,太短会造成重影
延时函数,含有输入参数unsigned int t,无返回值
unsigned int是定义无符号整形变量,其值的范围是
0~65535
------------------------------------------------*/

51单片机控制数码管

51单片机控制数码管
while(1)
{
for(j=0;j<len;j++)//循环向后查表
{
while(times<30)
{
times++;
for(i=0;i<8;i++)
{
P0=duan[i+j+k];
latchduan=1;
latchduan=0;
P0=wei[i];
latchwei=1;
latchwei=0;
delay(4);
51单片机控制数码管控制数码管控制51单片机控制数码管数码管单片机控制51数码管数码管字体共阴数码管
硬件电路为两个8位锁存器驱动8个数码管
P0为数据输出
P2.2和P2.3为锁存控制
程序实现123456789abcdef从右到左字幕般显示。两次显示之间间隔两个数码管。第一次显示要求8个数码管依次点亮,无数据的应熄灭
}
}
times=0;
}
k=6; //跳跃过前面六个空
len=18;
}
}
*/
void delay(int x)
{
int i;
while(x--)
for(i=0;i<50;i++);
}
void display(unsigned char FirstBit,unsigned char Num)
{
unsigned char i;
for(i=0;i<Num;i++)
{
P0=0; //清空数据,防止有交替重影
//循环赋值法
unsigned char duan[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71,0x00,0x00};

数码管显示数字

数码管显示数字

在第6课里,我们讲到数码管的静态显示,利用静态显示法,通过控制位选和段选,可以让数任意几位数码管显示任意字符,但由于所有位数码管的相同的段选全部接在一起,所以只能同时显示相同的数字,例如8位同时显示8字,1、3、5位同时显示3字。

但大家想一下,如果我们要让数码管同一时刻显示不同的数字,如图1所示的现象,用静态显示的方法就不能够实现,这里就只能用到动态显示的方法,今天这一节我们主要讲解数码管动态显示的原理的程序实现的方法。

图1 数码管同时显示123456在讲解动态显示方法之前,我们先介绍在种数码管及单片机程序开发过程常用的方法-数组编码法。

1、数组编码在跟数码管相关的程序中,可以对位进行编码,也可对段进行编码,这里我们以段编码进行讲解。

通过第8课的程序我们知道,在位选确定后,要显示数字8时,P0=0x80,显示数字3时P0=0xb0,也就是0xb0,0x80分别可以表示数字3和8,按此方法,我们把在数码管上显示0-f,16个数字全部用16制度表示出来,这16个16进制数就称为数码管可显示0-f的相应的编码,如图2所示(注意共阳和共阴极数码管相应的编码有所不同,这里以实验板上共阳极的为例)。

图2 共阳极数码管编码在编程中,编码的表示方法如下:unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e };这里编码表示的方法与C语言中数组定义的方法基本一样。

table是数组名,后面需加[],中括号中需加上数组中元素的个数,也可以不写。

等号的右边用一个大括号将所有元素包含起来,里面的元素之间用“,”隔开,在大括号外用“;”结束。

等号左边的unsigned char 是数据元素的数据类型,这里定义为无符号字符型,也就是元素的值范围只能是0-255之间。

数码管流动显示12345678

数码管流动显示12345678

学号天津城建大学嵌入式系统及应用课程设计设计说明书数码管流动显示12345678起止日期:2015 年11月15日至2015 年11月27 日学生姓名班级成绩指导教师(签字)计算机与信息工程学院2015年11 月27 日课程设计报告书题目: 数码管流动显示12345678学生姓名:学生学号:院名:专业:任课教师:目录摘要 (II)第一章课设总述 (1)1.1单片机概述 (1)1.3课题研究的目的和意义 (1)1.4课题的主要研究工作 (1)第二章系统硬件介绍及设计 (2)2.1AT89C51简介 (2)1.2数码管7SEG-COM-AN-BLUE介绍(7段数码管) (3)2.2硬件电路图 (4)2.3元件清单 (4)第三章系统软件设计 (5)3.1程序描述 (6)3.2程序流程图 (6)第四章系统调试 (7)4.1在PROTEUS中仿真 (7)参考文献 (7)摘要1.内容:利用动态扫描让八位数码管稳定的显示1、2、3、4、5、6、7、82.目标:(1)掌握单片机控制八位数码管的动态扫描技术,包括程序设计和电路设计,本任务的效果是让八位数码管稳定的显示12345678。

(2)用PROTEUS进行电路设计和实时仿真3.知识点链接(1)数码管动态扫描(动态扫描的定义以及与静态显示的区别)动态显示的特点是将所有位数码管的段选线s一位数码管有效。

选亮数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

(2)总线的应用元器件与总线的连线P0口的接线采用总线方式,详细如电路图1所示。

①选择总线按钮②绘制总线:与普通电线的绘制方法一样,选择合适的起点、终点单击。

如果终点在空白处,左键双击结束连线。

画总线的时候为了和一般的导线区分,我们一般喜欢画斜线来表示分支线。

此时我们需要自己决定走线路径,只需在想要拐点处单击鼠标左键即可。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

f
ed
c
0
00
0
1
11
0
1
00
1
1
10
0
0
11
0
0
10
1
0
00
0
1
11
0
0
00
0
0
10
0
P2.1 P2.0 二进制 十六进制
b
a
0
0 11000000 C0H
0
1 11111001 F9H
0
0 10100100 A4H
0
0 10110000 B0H
0
1 10011001 99H
1
0 10010110 92H
6
a
b
c
d
e
f
g
dp
b
b
CO M
(c) 共阴极LE D数码管
c
dp
a
b
c
d
e
f
g
dp
示意图
CO M
(d) 共阳极LE D数码管
根据数码管内 的连接方式, 可将数码管分为 共阴极与共阳极两大类。 如图所示, 将8个发光二极管的阴极(负 极)连在一起 即为共阴极数码管, 而将8个发光二极管的阳极 (正极)连在一起 即为共阳极数码管。 共阴极输入高电平有效,共阳 极输入低电平有效。
c
d
dp
a
一个小数点dp。当 某个发光二极管 导通时,相应的CO一M 个发笔光画。(c)或共小阴极数L点E D就数码管 a 数b 码管c 共有d10 根e 管 f g dp 脚,包含8根笔段
cd p
(a) 数码管外形实物图
e
d
com
1
2
3
4 5
管脚,另外两根管 脚(3、8管脚)为
数码管的公共端,
谢谢!
1
0 10000010 82H
0
0 11111000 F8H
0
0 10000000 80H
0
0 10010000 90H
系统原理图
程序语句:
要让数码管显示数字0,只需将单片机的P2口输 出数字0对应的段码0xC0H即可,程序语句为 P2=0xC0H;
同理,显示数字1,程序语句P2=0xF9H 同理,显示数字5,程序语句P2=0x92H
山西省农业机械化学校
单片机控制数码管显示数字 静态显示
赵兴
2018.9.14
内部结构 数码管的分类
显示原理 硬件连接 程序编写
仿真
最常见的LED数码管为7段数码管,其内部结构实际上由8个发光
二极管组合而成。
a
b
c
d
e
f
g
dp
包括7个笔段(a、b、
10
6
7
8
9
c、d、e、f、g)与
g
f
b
com
代码如下:
#include<reg51.h> // 包含51单片机寄存器定义的头文件 void main(void) {
P2=0x92; //让P2口输出数字"5"的段码92H }
仿真结果
思考:
1.如果要用数码管显示英文字母(A,B,C,D,E,F), 其对应的段码应该是多少呢? 2.如果把共阳极数码管换成共阴极,那名电路应该 做出什么调整,数字的段码如何修改呢?
数码管如何显示数字0
a,b,c,d,e,f 引脚接低电平 g和dp 引脚接高电平
dp
g
f
e
d
c
b
a
二进制 十六
进制
1
1
0
0
0
0
0
0 11000000 C0H

阳 显示 P2.7 P2.6 字符 dp g

01
1
数1 1
1
码2 1
0
31
0
管4 1
0
字5 1
0
61
0
形7 1
1
表8 1
0
91
0
P2.5 P2.4 P2.3 P2.2
(b) 数码管引脚排列示意图
在数码管内部是相
互连通的
CO M
(d) 共阳极LE D数码管
工作参数:
正极(阳极)
负极(阴极)
电流方向
特性:单向导电性。在二极管两端加合适的正向偏置电 压,二极管导通点亮。 根据制造材料不同,二极管的正向压降一般为1.5—2v, 额定电流大约为10mA。在实际使用时,通常需串联一 个合适的限流电阻,以免电流超过二极管的允许值,造 成它的寿命缩短甚至损坏。
相关文档
最新文档