8段数码管动态显示详解

合集下载

stm328位数码管动态扫描说明书

stm328位数码管动态扫描说明书

S T M328位数码管动
态扫描说明书
-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
8位数码管动态扫描说明书
一:原理图
数码管电路图
LED数码管引脚定义
二:工作原理
数码管中的A~G、DP段分别连接到电路图中的A~G、H线上,当某段上有一定的电压差值时,便会点亮该段。

当E3输入为1,也就是LED_SEL输入为0时,根据SEL0~SEL2的值确定选中的数码管,即位选,再根据A~H引脚的高低电平,点亮对应段,即段选。

寄存器的具体说明可参考《STM32中文参考资料》。

三:实验现象及操作
对于给出的8位数码管动态扫描案例,下载后,在开发板上可观察到8个数码管从左至右依次显示对应的数字,且每一个数码显示的数字在1-9之间循环。

无其他操作。

可以通过加快扫描频率,使得八位数码管在人眼看上去是同时显示。

在后续的案例中可以看到该现象。

8位8段LED数码管动态扫描显示

8位8段LED数码管动态扫描显示

8位8段LED数码管动态扫描显示
项目名称:8位8段LED数码管动态扫描显示班级:09电二姓名:解健学号:09020313
一.实验目的
1.掌握数码管动态扫描显示原理及实现方法。

2.掌握动态扫描显示电路驱动程序的编写方法。

二.实验电路
第一步:先在Proteu软件中设计仿真电路原理图。

第四步:最后观察设计的电路图是否能得到预想的效果,若不能,进行检查,找到毛病且纠正。

流程图
开始灭显示器I=0延时Counter=0Counter=0选择段选择段点亮所有位按数值点亮位延时延时
Counter++YCounter<8NI++YNNCounter++YCounter<8N停止Y结束I<30
实验现象:
显示器点亮所有段,持续约1,然后灭显示器,持续2,最后显示“hello-93”,保持。

附:程序
#include#include#defineTRUE1#definedataPortP0#defineledConPortP 2
{unignedchari,counter=0;
for(i=0;i<30;i++){
voiddelay_5u(void){_nop_();_nop_();}
voiddelay_50u(void){unignedchari;for(i=0;i<4;i++){delay_5u() ;}}
voiddelay_100u(void){delay_50u();delay_50u();}
for(j=0;j<10;j++)delay_100u();ucM--;}}。

八段数码管的控制显示

八段数码管的控制显示
void Delay(unchar delaytime)//延时函数
{
unchar i=0;
unchar j=0;
for(i=0;i<delaytime;i++)
for(j=0;j<120;j++)
;
}
void main(void)
{
unchar i=0;
OUTCON=0x88;//8255控制字
while(1)//系统主循环
#include <AT89X51.h>
#include <absacc.h>
#define unchar unsigned char
#define OUTCON XBYTE[0xffff]
#define OUTSEG XBYTE[0xfffC]
#define OUTDigit XBYTE[0xfffd]
八段数码管显示实验八段共阳极数码管八段数码管引脚图数码管显示数码管显示原理八段数码管四位八段数码管数码管显示vhdl数码管显示流程图数码管显示小数
实验二八段数码管的控制显示
一.实验目的
利用试验系统提供的显示设备,动态显示一行数据。
二.实验内容
1.了解数码管动态显示的原理
2.了解用总线方式控制数码管显示
Delay(200);
}
}
}
j=A;
}
3.使用两位数码管,实现数码管显示的数值从0开始每隔0.2s加1,加到100回0并重新开始。
while(1)
{
i=0;
for(j=0;j<=9;j++)
{
for(i=0;i<=9;i++)

8个数码管动态显示

8个数码管动态显示

8个数码管动态显示南昌大学实验报告学生姓名:王崇伙学号:6103413026专业班级:生医131实验类型:□验证□综合设计□创新实验日期:2022/10/9实验成绩:实验二、8个数码管动态显示1~8一、实验目的1、掌握汇编查表法实现动态数码管显示。

2、熟练使用proteu仿真工具。

二、实验工具1、PC机2、keil程序编辑工具3、proteu仿真工具三、实验原理八路七段数码管动态显示原理其实和一个数码管显示0~F原理相同,不同在于显示数字的数码管有一个一次变成八个显示0~8,P0控制段选,P1控制位选,由本次实验使用八路共阴极数码管(如下图),当P0=0某7F(8)时,位码P1=0某fe既选通第八个数码管其余位选高电平不导通,结果就为第八个数码管显示8,依次P0段选‘1’时P1位选第一个数码管结果就为第一个数码管显示‘1’,延时0.2再依次循环输入1~8位选依次选一~八达到八位数码管循环显示1~8。

四、实验程序框图开始初始化端口设置断码表、位码表设定i=0,i++N显示i指向的内容Yi<8五、实验程序#include#include#include#defineucharunignedcharbitP_HC595_SER=P0^0;bitP_HC595_RCLK=P 2^4;bitP_HC595_SRCLK=P0^3;ucharcodeSEG7[]={0某3F,0某06,0某5B,0某4F,0某66,0某6D,0某7D,0某07,0某7F,0某6F,0某77,0某7C,0某39,0某5E,0某79,0某71,0某00};ucharcodeScon_bit[]={0某fe,0某fd,0某fb,0某f7,0某ef,0某df,0某bf,0某7f};uchardataDi_buf[]={16,16,16,16,16,16,16,0};voidDelay1m(){ unignedchari,j;_nop_();_nop_();_nop_();i=11;j=190;do{while(--j);}while(--i);}voidF_Send_595(uchar某){uchari;for(i=0;i<8;i++){某=某<<1;P_HC595_SER=CY;P_HC595_SRCLK=1;P_HC595_SRCLK=0;}}voiddiplay(void){uchari;for(i=0;i<8;i++){F_Send_595(Scon_bit[i]);F_Send_595(SEG7[Di_buf[i]]);P_HC595_RCLK=1;P_HC595_RCLK=0;De lay1m();}}六、实验结果六、实验总结延时0.2S,8个数码管动态显示1~8通过本次实验让我加深了对数码管显示功能的理解,并进一步也掌握了使用proteu仿真。

实验八 数码管动态显示

实验八 数码管动态显示

实验八数码管动态显示一、实验目的1、掌握数码管的显示原理。

2、掌握利用数码管显示计算数机内部信息。

3、掌握数码管动态显示的原理及使用。

二、实验技术准备1、数码管排列图实验箱共有8个共阴极数码管。

段码输入端:A、B、C、D、E、F、G、DP,8个数码管的段码是并联的,每个段码都通74LS244驱动器加以驱动。

位码控制端:S0、S1、S2、S3、S4、S5、S6、S7,8个位码是独立的,每个位码控制端经过一个与非门。

要使数码管显示数字,相应的段码应输入高电平,对于的位码也为高电平。

(注:位码段浮空均为高电平。

)2、 AL与段码的对应关系dp g f e d c b a3、特殊字符有H P C F E L h c d b等,要会写出对应的十六进制表示的七段代码。

三、动态显示原理因为实验箱8个数码管的段码是并联在一起的,一次只能显示一种字符。

要使多位数码管分别显示不同的字符,先使第一个数码管显示第一种字符, 位码控制端S0保持几个毫秒之后, 使第二个数码管显示第二种字符, 第二个位码控制端S1保持几个毫秒后, 然后再指向下一个数码管…这样循环显示。

由于人眼的视觉惯性(暂留)作用,在感觉上好象是多位数码管“同时”显示不同的字符。

由于数码管点亮后熄灭存有余晖,会造成显示上的模糊。

为了不造成数码管显示上的混乱,在显示每位字符之前,•都必须通过关闭显示将数码管上的显示清除掉,即:使对应的数码管位码为低电平。

若位码控制地址为280H,则关闭数码管显示为:MOV DX,280HMOV AL,00HOUT DX,AL数码管动态显示框图位码地址选用Y0, 段码地址选用Y1。

四、硬件调试先调试位码控制是否正常。

1、位码部分接线完毕检查无误后,点击工具栏中的“工具软件”,选“接口调试工具”。

2、在数据发送框里,选“IO地址”,在“起始地址”栏里填写位码端口地址,在右边输入框内填写要输出的数据,控制位码监控灯LED1、LED2的亮灭。

单片机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
------------------------------------------------*/

单片机课程设计-8位8段LED数码管动态扫描显示资料

单片机课程设计-8位8段LED数码管动态扫描显示资料

华南理工大学广州汽车学院单片机课程设计题目:8位8段LED数码管动态扫描专业:电子信息工程班级:09电信(1 )班姓名:付锦辉学号:200930062745一、内容要求:在8位8段LED数码管显示8.8.8.8.8.8.8.8.”持续500ms,之后灭显示器200ms;然后显示“ WELCOM-1 ”(由于8位8段LED数码管显示不能显示字母 W 和M,所以改为显示“ HELLO-93 ”)二、目的和意义1、掌握数码管动态扫描显示原理及实现方法。

2、掌握动态扫描显示电路驱动程序的编写方法。

三、总体方案设计思路LED 数码动态显示的基本做法在于分时轮流选通数码管的公共端,使得各数码管轮流导通,再选通相应的数码管后,即显示字段上得到显示字形码。

这种方式数码管的发光效率,而且由于各个数码管的字段线是并联使用的,从而大大简化了硬件线路。

动态扫描显示接口是单片机系统中应用最为广泛的一种显示方式。

其接口电路是把所有显示器的 8 个笔画段 A-DP 同名端并联在一起,而每个显示器的公共极 COM 各自独立地接受 I/O 线控制, CPU 向字段输出口送出字段形码是,所有显示器由于同名端并连接收到相同的字形码,但究竟是哪个显示器亮,则取决于COM 端,而这一端是由 I/O 控制的,所以就可以自行决定何时显示哪一位了。

而所谓动态扫描是指采用分时的方法,轮流控制各个显示器的 COM 端,使各个显示器轮流点亮。

再轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位显示器并非同时点亮,但只要扫描的速度足够快,给人的影响就是一组稳定的显示数据,不会有闪烁感。

采用总线驱动器 74HC245 提供 LED 数码管的段驱动,输出高电平时点亮相应段;采用集电极开路的BCD-十进制译码器/驱动器完成LED数码管位驱动,输出低电平时选通相应位。

P2 口每个口线输出灌电流不足以驱动一个数码管显示器的位-公共极,所依通过集电极开路的BCD-十进制译码器/驱动器7445驱动,即节约P2 口线,又增加驱动能力。

硬件实验四--八段数码管显示

硬件实验四--八段数码管显示

硬件实验四 八段数码管显示一、实验要求利用实验箱提供的显示电路,动态显示一行数据.二、实验目的1. 了解数码管动态显示的原理。

2. 了解用总线方式控制数码管显示。

三、实验线路及连线四、实验说明1.本实验箱提供了6 位8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。

显示共有6位,用动态方式显示。

8位段码、6位位码是由两片74LS374输出。

位码经MC1413或ULN2003倒相驱动后,选择相应显示位。

本实验箱中8位段码输出地址为0X004H ,位码输出地址为0X002H 。

此处X 是由KEY/LED CS 决定,参见地址译码。

做键盘和LED 实验时,需将KEY/LED CS 接到相应的地址译码上。

以便用相应的地址来访问。

例如,将KEY/LED CS 接到CS0上,则段码地址为08004H ,位码地址为08002H 。

连线 连接孔1连接孔2 1KEY/LED_CS CS0 位选通信号 (0x002H) 段码输出(0x004H) 数据总线七段数码管的字型代码表如下表:五、程序参考程序、框图OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口data segmentLEDBuf db 6 dup(?) ; 显示缓冲Num db 1 dup(?) ; 显示的数据DelayT db 1 dup(?)LEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h data endscode segmentassume cs:code, ds:dataDelay proc nearpush ax ; 延时子程序push cxmov al, 0mov cx,axloop $pop cxpop axretDelay endpDisplayLED proc nearmov bx, offset LEDBufmov cl, 6 ; 共6个八段管mov ah, 00100000b ; 从左边开始显示DLoop:mov dx, OUTBITmov al, 0out dx,al ; 关所有八段管mov al, [bx]mov dx, OUTSEGout dx,almov dx, OUTBITmov al, ahout dx, al ; 显示一位八段管push axmov ah, 1call Delaypop axshr ah, 1inc bxdec cljnz DLoopmov dx, OUTBITmov al, 0out dx,al ; 关所有八段管retDisplayLED endpStart proc nearmov ax, datamov ds, axmov Num, 0MLoop:inc Nummov ch,Nummov ah,0mov cl,6mov bx,offset LEDBufFillBuf:mov si, offset LEDMapmov al,chand al,0fhadd ax,simov si,axmov al,[si] ; 数据转换成显示码 mov [bx], al ; 显示码存入显示缓冲 inc bxinc chdec cljnz FillBufmov DelayT,20DispAgain:call DisplayLED ; 显示dec DelayTjnz DispAgainjmp MLoopStart endpcode endsend start六、实验步骤(1) 在实验箱断电的情况下连好线。

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

原理图:8 个数码管它的数据线并联接到 JP5,位控制由 8 个 PNP 型三级管驱动后由 JP8 引出。

个。

我们分别把他命名为 A,B,C,D,E,F,G,H
搞懂了这个原理, 我们如果要显示一个数字 2, 那么 A,B,G,E,D 这 5 个段的发光管亮就可以了。

也就是把B,E,H(小数点)不亮,其余全亮。

根据硬件的接法我们编出以下程序。

当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个 P2.7。

显示数字 2 则是 C,F,H(小数点)不亮,同时由于接法为共阳接法,那么为 0(低电平)是亮
为 1(高电平)是灭。

从高往低排列,(p0.7_p0.0)写成二进制为 01111110,把他转化为 16 进制则为
A2H。

我们可以根据硬件的接线把数码管显示数字编制成一个表格,以后直接调用就行了。

原理图中把所有数码管的 8 个笔划段 a-h 同名端连在一起,而每一个
显示器的公共极 COM 是各自
独立地受 I/O 线控制。

CPU 向字段输出口送出字形码时,所有显示器接收到相同的字形码,由 8 个 PNP 的三极管,来控制这 8 位哪一位工作,例如上面的
例子中我们选中的是 P2.7.就是最后的一位亮了. 同样的如果要第一位亮, 只
需要把程序 CLR P2.7 改为 CLR P2.0 即可。

在这里就有了一个矛盾, 所有数码管的 8 个笔划段 a-h 同名端连在一起, 那么在一个屏幕上如何显示
0,1,2,3,4,5 这样不同的数字呢? 的确, 在这样的接法中,同一个瞬间所有的数码管显示都是相同的, 不能显示不同的数字。

在单片机里,首先显示一个数, 然后关掉.然后显示第二个数,又关掉, 那么将看到连续的数字显示,轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约 1ms),由于人的视觉暂留
现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要
扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

例如数码管显示 01234567 这么 8 个数,在单片机中实际的工作流程如下:先打开 P2.0,送 0, 然后关掉 P2.0,开 P2.1 送 1, 再关掉 P2.1,打开 P2.2 送 2 , 依次向下,由于速度足够快, 那么我们将连续的看到
01234567 这 8 个数。

程序运行照片:
1、接 8 位数码管的数据线。

将数码管部份的数据口 JP5 接到 CPU 部份的 P0 口 JP51.
2、接 8 位数码管的显示位线。

将数码管部份的显示位口 JP8 接到 CPU 部份
的 P2 口 JP52.
程序流程图:。

相关文档
最新文档