八段数码管的控制显示
- 格式:doc
- 大小:21.00 KB
- 文档页数:4
八段数码管1. 简介八段数码管是一种常用的数字显示器件,由八个独立的LED(Light Emitting Diode)组成。
它可以显示数字、字母和一些特殊字符。
在数字钟、电子计算器等电子设备中广泛应用。
八段数码管八段数码管2. 数字与编码每个数码管由七个线段和一个小圆点组成,线段可以通过亮灭的状态显示不同的数字和字符。
数码管采用共阳极或共阴极的方式连接,共阳极时,需要给某个线段接通高电平来点亮,共阴极时则需要给线段接通低电平。
每个线段具有一个独特的标识符,如下图所示:a-----f | | b| g |-----e | | c| d |-----dp通过控制不同线段的高低电平状态,可以显示不同的数字和字符。
3. 数字和字符的编码使用七段编码将数字和字符与数码管的线段对应起来。
常见的七段编码方式有两种:•连接式编码:通过连接线段的方式实现数字和字符的显示。
每个数字或字符都需要占用相应线段,因此在一个八段数码管上只能显示一个字符或数字。
•离散式编码:通过对各个线段分别控制实现数字和字符的显示,可以同时在一个八段数码管上显示多个字符或数字。
4. 连接式编码连接式编码的七段编码方式是将每个数字和字符与数码管的对应线段相连,通过点亮相应的线段来显示字符或数字。
七段编码的对应关系如下表所示:数字/字符a b c d e f g dp 0on on on on on on off off 1off on on off off off off off 2on on off on on off on off 3on on on on off off on off 4off on on off off on on off 5on off on on off on on off 6on off on on on on on off 7on on on off off off off off8on on on on on on on off9on on on on off on on off5. 离散式编码离散式编码的七段编码方式是通过对各个线段分别控制来实现数字和字符的显示。
共阴极八段数码管显示数字0到9共阴极八段数码管是一种在嵌入式系统中常用的显示设备,它由八个发光二极管组成,其中七个长条形的发光管排列成“日”字形,右下角一个点形的发光管作为显示小数点用。
要使共阴极八段数码管显示数字0到9,可以通过编程实现。
具体来说,可以定义共阴极数码管的引脚,并将数码管的8个阴极连接到8个GPIO引脚上。
然后,定义一个计数器,用于控制数码管显示的数字。
对于每个计数器的值,在代码中定义一个对应的数字显示模式,例如0的显示模式为abcdef,1的显示模式为bc,以此类推。
在每个时钟周期内,根据计数器的值,将对应的数字显示模式输出到数码管的引脚上,从而控制数码管的显示。
为了实现循环显示0-9,可以在计数器达到9时将其重置为0,从而实现循环显示的效果。
下面是一个简单的Verilog代码示例,用于更好地理解:```verilogmodule display(input clk,output reg [7:0] seg,reg [3:0] cnt;always @(posedge clk) begincase(cnt)4'h0: seg = 8'b11000000; //显示04'h1: seg = 8'b11111001; //显示14'h2: seg = 8'b10100100; //显示24'h3: seg = 8'b10110000; //显示34'h4: seg = 8'b10011001; //显示44'h5: seg = 8'b10010010; //显示54'h6: seg = 8'b10000010; //显示64'h7: seg = 8'b1111。
八段数码管显示实验总结以下是一篇关于八段数码管显示实验总结的文章,旨在详细介绍实验的步骤和结果。
引言:在现代电子技术领域中,七段数码管是一种常见的数字显示装置,常用于计时器、电子表、计数器等设备中。
而八段数码管则是七段数码管的进化版,它增加了一个小数点显示位,可以显示更多的数码和字符。
本篇文章将围绕八段数码管显示实验展开,介绍实验过程及实验结果。
第一步:材料准备进行八段数码管显示实验前,需要准备以下材料:1. 八段数码管:这是实验中的核心组件,用于显示数字和字符。
2. 转接板:用于连接八段数码管和单片机,实现电路的连接。
3. 单片机:本实验中我们选择XXXX型号的单片机,它具备足够的输入输出引脚,方便实验开展。
4. 面包板:用于搭建电路,连接各个组件。
5. 连接线:用于连接数码管、转接板和单片机。
第二步:电路连接1. 将转接板插入面包板中心位置,确保其稳固。
2. 将八段数码管插入转接板对应位置,并通过连接线将其与转接板上的引脚相连。
3. 将单片机插入转接板上的插槽,并通过连接线将其与转接板上的引脚相连。
4. 连接线的连接需要按照电路连接图进行,确保连线正确无误。
第三步:程序编写1. 打开XXXX软件,创建一个新的工程。
2. 在新的工程中,编写程序代码来控制八段数码管显示。
可以根据自己的需求,编写数字、字符等不同的显示内容。
3. 在程序代码中,通过设置不同的数位选择引脚和段选引脚的高低电平来实现不同位上的显示。
第四步:烧录程序1. 将单片机与电脑通过USB线连接。
2. 打开软件,选择对应的单片机型号和烧录方式。
3. 将程序烧录至单片机中,确保烧录成功。
第五步:实验结果在将程序烧录到单片机后,即可观察八段数码管的显示结果。
根据实验编写的程序,数码管将会显示相应的数字和字符。
可以通过改变程序代码中的内容,实现不同的显示效果。
比如,可以设置不同的数值、字符以及使用动态显示等功能。
结论:通过本次实验,我们成功地搭建了一个八段数码管的显示电路,并利用单片机编写了相应的程序进行控制。
任务四用PLC实现八段码显示控制【任务目标】一、进一步熟练运用取指令LD/LDI、触点串联指令AND/ANI、触点并联指令OR/ORI、线圈输出指令OUT、程序结束指令END等基本指令进行本任务的四步法程序设计。
二、熟练应用定时器T和计数器C进行延时功能的程序设计。
三、掌握plc的编程方法、编程规则或程序设计的基本原则和步骤,通过本任务的训练逐步建立程序设计的基本思路和方法。
四、能独立、熟练完成【思考练习】的内容。
五、提高自我学习、信息处理、数字应用、解决问题等方法能力及与人交流、与人合作等社会能力;自查6S执行力。
【任务描述】专业能力训练环节一图4-1是八段数码管的外形图,它实质上是七只发光二极管组成的阿拉伯数字及数字后的小数点显示器,其工作原理见图4-2与图4-3。
下面请您按照下列要求进行plc的程序设计与调试。
图4-1 八段数码管实物外形图图4-2 八段码显示阿拉伯数字“1”、“2”、“3”的示意图F(b)(a)共阴极(b)共阳极图4-3 八段码显示电路原理图设计要求如下:请用plc实现输出控制对象----八段码显示器从0~9十个阿拉伯数字的升序连续显示,要求升序显示的阿拉伯数字间的时间间隔为1s,并且用两个按钮分别实现数字显示的启动与停止。
1)按照控制要求设计PLC的输入输出(I/O)地址分配表。
2)按照控制要求进行PLC的输入输出(I/O)接线图的设计。
3)按照控制要求进行PLC梯形图程序的设计。
4)按照控制要求进行PLC指令程序的设计。
5)按照以上四个步骤,笔试回答表4-1中所列的问题。
6)按照设计要求和笔试设计结果进行程序的模拟调试。
7)调试与笔试工时:120分钟,每超时5分钟扣5分。
8)配分:本技能项目满分为100分,比重40%,评分标准见表4-5。
专业能力训练环节二设计要求如下: 用plc 构成抢答器系统并编制控制程序。
一个四组抢答器如图4-4所示,任一组抢先按下按键后,显示器能及时显示该组的编号并使蜂鸣器发出响声,同时锁住抢答器,使其它组按下按键无效,抢答器有复位开关,复位后可以重新抢答。
硬件实验四 八段数码管显示一、实验要求利用实验箱提供的显示电路,动态显示一行数据.二、实验目的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) 在实验箱断电的情况下连好线。
原理图: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),由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。
八位数码管显示原理
八位数码管是一种常见的数字显示器件,广泛应用于电子设备中。
它由七段数
码管和一个小数点组成,可以显示0-9的数字和一些字母。
在本文中,我们将介绍
八位数码管的显示原理及其工作方式。
八位数码管由七段数码管和一个小数点组成,每个数码管由7个发光二极管组成,分别对应显示数字的每一段。
通过控制这些发光二极管的通断,就可以显示出不同的数字和字母。
而小数点则是用来显示小数部分的。
八位数码管的显示原理基于这些发光二极管的组合和控制。
八位数码管的工作方式是通过控制每个发光二极管的通断来显示不同的数字和
字母。
具体来说,当需要显示某个数字或字母时,通过控制相应的发光二极管通断,使其显示出所需的图案。
这种控制可以通过数字电路或者微控制器来实现,其中数字电路一般采用BCD码或者二进制码来控制,而微控制器则可以通过编程来实现。
在实际应用中,八位数码管可以用于显示各种数字信息,比如温度、时间、计
数等。
通过合理的控制,可以实现不同数字的显示,满足各种需求。
而且由于其结构简单、成本低廉,因此在电子设备中得到了广泛的应用。
总的来说,八位数码管的显示原理基于七段数码管和小数点的组合控制,通过
控制发光二极管的通断来显示不同的数字和字母。
它的工作方式可以通过数字电路或者微控制器来实现,广泛应用于电子设备中。
希望本文能够帮助读者更好地理解八位数码管的显示原理和工作方式。
【概述】单片机是一种集成了微处理器、存储器和输入输出设备的微型计算机系统,广泛应用于电子产品中。
八段数码管是一种常见的显示器件,可以显示0-9和A-F共16个字符。
本文将以汇编语言为例,介绍如何利用单片机控制一个八段数码管循环显示0-F的过程。
【正文】1. 了解八段数码管八段数码管是由8个LED灯组成,可以显示16种不同的字符。
每个LED代表一个数码,通过控制LED的亮灭来显示相应的字符。
在汇编语言中,我们可以通过控制单片机的输出引脚来实现对八段数码管的控制。
2. 开发环境准备我们需要准备好单片机的开发环境,包括单片机开发板、编程软件等。
常用的单片机有51系列、AVR系列等,在使用之前需要熟悉其指令集和寄存器等相关知识。
3. 控制八段数码管在汇编语言中,我们可以通过对单片机的输出引脚进行控制来操作八段数码管。
具体的操作包括设置引脚状态、发送数据等。
通过编写相应的汇编语言程序,我们可以实现循环显示0-F的功能。
4. 编写汇编语言程序我们需要定义八段数码管每个数字对应的LED亮灭状态。
在主程序中编写循环语句,通过不断改变LED的状态来实现循环显示的效果。
在编写程序时,需要考虑到八段数码管的工作原理和时序要求,以确保程序的稳定性和准确性。
5. 调试和优化在编写完汇编语言程序后,我们需要进行调试和优化。
通过单步调试等手段来检查程序的运行情况,找出可能存在的问题。
可以根据实际情况对程序进行优化,提高程序的执行效率和稳定性。
6. 实际应用完成汇编语言程序的编写和调试后,我们可以将程序烧录到单片机中进行测试。
通过连接八段数码管和单片机的引脚,我们可以观察到八段数码管循环显示0-F的效果。
这个简单的实例展示了如何利用汇编语言控制八段数码管,为我们进一步深入了解单片机的应用奠定了基础。
【总结】通过本文的介绍,我们了解了如何利用汇编语言控制单片机实现八段数码管的循环显示。
汇编语言作为一种底层语言,对于理解单片机的工作原理和功能有着重要的作用。
8位动态LED数码管显示实验(精)8位动态LED数码管显示实验2008-03-18 18:048.1 实物图与原理图本实验仪配置带8位动态扫描显示模块一个。
实物图如下:为减少IO的使用,我们采用串入并出芯片CD4094来扩展了IO 口,即采用3个IO来实现数据的传输。
原理图如下:所以,我们占用3个IO来传输数据,8个IO来进行8个LED数码管的位选。
在本实验仪中链接管教分布如下:STK-----P2.5DAT-----P2.6CLK-----P2.7B0、B1、B2、B3、B4、B5、B6、B7接P0口(P0.0 P0.1 P0.2 P0.3 P0.4 P0.5P0.6 P0.7)由于上一节已经讲述了CD4094驱动一位LED数码管的问题,这里我们讲如何来扫描8位数码管。
8.2 LED动态显示原理根据原理图管脚连接,我们知道P0口控制了8个LED数码管的位选中,所以如果想让8个数码管都亮起来,我们可以逐位扫描8位数码管。
动态显示原理:原理上同一时刻只有一位LED是点亮的,但只要扫描的频率足够高(一般大于25Hz),由于人眼的视觉暂留特性,直观上感觉却是连续点亮的,这就是常说的动态扫描显示。
动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。
如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,所以一般均取几个ms左右为宜。
8.3 DG3000 动态显示头文件display_s.h//----------------------------------------------------------//程序作用:显示头文件display_s.h//----------------------------------------------------------#ifndef _display_#define _display_#includesbit SDA=P2^6; //定义显示管脚sbit CLK=P2^7;unsigned char data display_bit;unsigned char codeled[20]={0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x 89,0x8C };//定义段码//延时程序void delay(unsigned int k){ unsigned int i,j;for(i=0;i<k;i++)< bdsfid="131" p=""></k;i++)<>for(j=0;j<100;j++);}//数据传输void send(unsigned char a){unsigned char i;for(i=0;i<8;i++){if(_crol_(a,i)&0x80)SDA=1;elseSDA=0;CLK=0;CLK=1;}}//显示程序 8位LED数码管扫描void display(unsigned chardisplay_buffer[8]){unsigned char i,k;display_bit=0xfe;for(i=0;i<8;i++){k=led[display_buffer[i]];send(k);P0=display_bit;delay(0x01);P0=0xff;display_bit=_crol_(display_bit,1);}display_bit=0xfe;8.4 8位数码管动态显示01234567(C51程序)//----------------------------------------------------------//程序作用:动态扫描显示01234567//---------------------------------------------------------- #include#include //调用显示头文件main(){unsigned chara[8]={0x0,0x1,0x2,0x3,0x4,0x5,0x6, 0x7};//显示01234567 while(1){display(a); //显示数据}}。
八位数码管显示原理八位数码管是一种常用的数字显示器件,它由8个LED(发光二极管)组成,可以显示0-9的数字。
在很多电子设备中,我们经常会见到它的身影,比如计算器、电子钟、电子秤等。
那么,八位数码管是如何实现数字显示的呢?接下来,我们就来详细了解一下八位数码管的显示原理。
首先,我们要了解八位数码管的结构。
八位数码管由8个LED组成,每个LED代表一个数字,从左到右依次为a、b、c、d、e、f、g、dp。
其中,a-g分别代表数字的7段显示,dp代表小数点。
通过控制这些LED的亮灭,就可以显示出不同的数字。
接下来,我们来介绍八位数码管的工作原理。
八位数码管的显示原理是通过控制每个LED的亮灭来显示数字。
通过外部的控制电路,可以控制每个LED的通断,从而显示出不同的数字。
比如,要显示数字0,就需要同时点亮a、b、c、d、e、f这6个LED,而要显示数字1,就只需要点亮b、c这两个LED,其余的LED则熄灭。
通过这种方式,就可以实现数字的显示。
在实际应用中,八位数码管通常会与译码器、计数器等电子元件配合使用。
译码器可以将输入的二进制信号转换为对应的LED控制信号,而计数器可以提供递增的信号,从而实现数字的循环显示。
通过这些电子元件的配合,八位数码管可以实现更加丰富的数字显示功能。
除了显示数字外,八位数码管还可以显示一些字母和符号。
通过合理的控制LED的亮灭,可以显示出A-F这几个字母,以及一些特殊符号,比如减号、加号等。
这样,八位数码管就可以满足更多的显示需求。
总的来说,八位数码管是一种常用的数字显示器件,它通过控制LED的亮灭来显示数字、字母和符号。
在实际应用中,它通常与译码器、计数器等电子元件配合使用,以实现更加丰富的显示功能。
希望通过本文的介绍,能够让大家更加深入地了解八位数码管的显示原理。
八段数码管滚动显示程序设计实验三八段数码管滚动显示程序设计一、实验目的1.掌握数码管动态显示的原理;2.掌握74LS164扩展端口的方法;3.掌握数码管滚动显示的方法。
二、实验内容1.验证参考程序中的实验(显示数字0-5);2.修改程序:(1)使6个数码管从左到右重复滚动的显示一定的信息,比如:日期2008-3-20;(2)滚动显示的速度可以修改。
三、实验器材PC机一台, 仿真器一台, 实验箱一台, 导线若干。
四、实验原理图显示共有6位,采用动态显示,8段数码管是由8155的PB0、PB1经过74LS164串转并后输出得到,6位位码由8155的PA0口输出,经UA2003反向驱动后,选择相应的显示位。
实验中数据输出口地址为0e102h,时钟为输出地址为0e102h,位选通输出地址位0e101h。
实验原理图见图4-1。
图4-1 实验原理图五、实验步骤1.按照实验一中的建立工程的步骤,建立本实验内容相应的工程;2.运用调试工具,调试软件,观察现象;3.调试修改程序观察现象。
六、参考程序/* “验证式"?实验十一八段数码管显示 */#include#define LEDLen 6 //6个数码灯//以下定义8155为PA、PB为基本I/o模式,PC为输出模式#define mode 0x03;/* 8155的命令状态口寄存器地址 */#define CAddr XBYTE[0xe100]/* 8155的PA口地址,用于数码灯的位控制 */#define OUTBIT XBYTE[0xe101]/* 8155的PB口地址,其PB0和PB1用于74Ls164串行输入,控制数码管的段 */#define CLK164 XBYTE[0xe102]#define DAT164 XBYTE[0xe102] /* 段控制口(接164数据位) */ /* 键盘读入口 */#define IN XBYTE[0xe103]/* 显示缓冲 */unsigned char LEDBuf[LEDLen];/* 八段管显示码共阴极字符显示*/code unsigned char LEDMAP[] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 };void Delay(unsigned char CNT){unsigned char i;while (CNT-- !=0)for (i=100; i !=0; i--);}void DisplayLED(){unsigned char i, j;unsigned char Pos;unsigned char LED;/* 6个数码管从左边开始显示,0010 0000 */Pos = 0x20;for (i = 0; i < LEDLen; i++){/* 六个数码管位控制为零,实现关所有八段管 */OUTBIT = 0;//数码管需要显示的段数据LED = LEDBuf[i];//8155通过PB0和PB1向74Ls164送段数据,串行输入,74Ls164并行输出到数码管段for (j = 0; j < 8; j++){//每个数据有8位,开始检测每一位的情况,先检测高位if(LED & 0x80) DAT164 = 1;else DAT164 = 0;//必须PB1(CLK164)由低位向高位跳变,才能PB0(DAT164)发送一位数据CLK164 = CLK164|0x02;//CLK164置0CLK164 = CLK164&0xfd;//为下一位发送做准备LED <<= 1;}OUTBIT = Pos; /* 显示一位八段管 */ Delay(1);Pos >>= 1; /* 显示下一位 */}OUTBIT = 0; /* 关所有八段管 */}void main(){unsigned char i = 0;unsigned char j;CAddr = mode;while(1){//保证数组里面的数据在0~15中间循环 LEDBuf[0] = LEDMAP[ i & 0x0f]; LEDBuf[1] = LEDMAP[(i+1) & 0x0f]; LEDBuf[2] = LEDMAP[(i+2) & 0x0f]; LEDBuf[3] = LEDMAP[(i+3) & 0x0f];LEDBuf[4] = LEDMAP[(i+4) & 0x0f];LEDBuf[5] = LEDMAP[(i+5) & 0x0f];i++;for(j=0; j<30; j++)DisplayLED(); /* 延时 */}}七、实验现象当程序正常烧入并全速运行后,发现数码管的显示是从左到右滚动显示,并且显示的值是“0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f”轮流显示,通过延时可以调节滚动的快慢。
实验一 八段数码管显示实验一、实验目的:1、了解数码管动态显示的原理。
2、了解74LS164扩展端口的方法。
二、实验要求:利用实验仪提供的显示电路,动态显示一行数据。
三、实验电路:这里只是显示草图,详细原理参见第一章的1.1.15 “8155键显模块”。
四、实验说明:1、本实验仪提供了8段码数码管LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,采用动态方式显示。
8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。
6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位。
74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。
写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,向显示位选通地址输出高电平就可以点亮相应的显示位。
本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。
本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及74LS164器件的工作原理。
2六、实验步骤:1、将KEIL仿真器上40芯排线一端和实验箱上51CPU板上的40芯排针连接起来,将仿真器连接的USB或串口线与PC机对应的USB或串口连接起来,打开实验箱电源。
2、进入KEIL软件界面,点击项目/打开项目在C:\KEIL\UV2\次1配套实验例程中选择实验一,内有ASM和C51两种程序,进入ASM 文件夹打开LED项目文件进入如图所示界面点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”可看到8段数码管交替显示0—F七、实验程序:OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164时钟位)DAT164 equ 0e102h ; 段控制口(接164数据位)IN equ 0e103h ; 键盘读入口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75h ;org 0000hljmp StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07hdb 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ; 延时子程序mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ; 共6个八段管mov r2, #00100000b ; 从左边开始显示Loop:mov dptr, #OUTBITmov a, #00hmovx @dptr, a ; 关所有八段管mov a, @r0mov B, #8 ; 送164DLP:rlc amov r3, amov acc.0, cANL A, #0FDHmov dptr, #DAT164movx @dptr, amov dptr, #CLK164orl a,#02hmovx @dptr, aanl a,#0fDhmovx @dptr, amov a, r3djnz B, DLPmov dptr, #OUTBITmov a, r2movx @dptr, a ; 显示一位八段管mov r6, #1call Delaymov a, r2 ; 显示下一位rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ; 关所有八段管retStart: mov dptr,#0e100hmov a,#03hmovx @dptr,amov sp, #40hmov Num, #0MLoop:inc Nummov a, Nummov b, amov r0, #LEDBufFillBuf:mov a, banl a, #0fhmov dptr, #LEDMapmovc a, @a+dptr ; 数字转换成显示码mov @r0,a ; 显示在码填入显示缓冲 inc r0inc bcjne r0, #LEDBuf+6, FillBuf mov DelayT,#30 DispAgain:call DisplayLED ; 显示djnz DelayT,DispAgainljmp MLoopEND。
硬件实验6 八段数码管显示实验1.实验目的1)了解数码管实现显示字符的7段码编制方法;2)掌握查表法获得0-F的7段码的方法;3)掌握静态显示和动态显示的原理,硬件连接方式和程序编写方法。
2.预习要求1)了解数码管静态显示和动态显示接口电路的设计方法和特点;2)了解数码管动态显示的程序设计方法;3)理解运用串行口工作方式0扩展I/O连接数码管的方法;4)认真预习本节实验内容,设计实验硬件连接电路,编写实验程序。
3.实验说明1)LED数码管显示原理8段LED数码管有共阴极和共阳极两种结构。
对于共阴数码管,其8个LED的阴极连接在一起作为公共COM端;而共阳数码管中8个LED的阳极连接在一起作为公共COM端。
共阴数码管显示的必要条件是其COM端接地或接具有较大灌电流能力的输入端口,此时当某个发光二级管的阳极为高电平时,该发光二极管点亮;共阳数码管显示的必要条件是共阳极接电源或具有较强电流输出能力的输出端口,此时当某个发光二极管的阴极接低电平时,该发光二级管被点亮。
2)LED数码管显示方式A.静态显示方式静态显示的特点是每个数码管需要一个具有锁存功能的8位输出口,用来锁存待显示的段码。
将要显示数的7段码输出到端口,数码管就会显示并一直保持到接收到新的显示段码为止。
静态显示的优点:显示程序简单,占用CPU时间少。
但当数码管数量较多时,就需要外扩较多的输出端口,因此静态显示的缺点是占用硬件资源多,成本较高。
B.动态显示方式动态显示的特点是将多个数码管的相应段码线连在一起,接到一个8位输出端口,该端口称为段码输出口;同时将各个(如8个)数码管的COM端连接到一个8位输出端口,该端口称为位控输出口。
这样的连接使得8个数码管只要2个输出端口就可以实现控制,大大简化硬件电路。
但是由于多个数码管的段码是连在一起的,所以需要结合位控信号,分时输出不同数码管上显示的7段码,即需要采用动态显示扫描,轮流向段码输出口输出段码和向位控输出口输出位选信号,并进行1~2ms的短时延时;8个数码管轮流输出一遍后,约20ms后,就要进行一次显示刷新,这样才能利用发光管的余辉和人眼视觉暂留作用,得到全部数码管同时稳定显示的效果。
硬件实验6 八段数码管显示实验1.实验目的1)了解数码管实现显示字符的7段码编制方法;2)掌握查表法获得0-F的7段码的方法;3)掌握静态显示和动态显示的原理,硬件连接方式和程序编写方法。
2.预习要求1)了解数码管静态显示和动态显示接口电路的设计方法和特点;2)了解数码管动态显示的程序设计方法;3)理解运用串行口工作方式0扩展I/O连接数码管的方法;4)认真预习本节实验内容,设计实验硬件连接电路,编写实验程序。
3.实验说明1)LED数码管显示原理8段LED数码管有共阴极和共阳极两种结构。
对于共阴数码管,其8个LED的阴极连接在一起作为公共COM端;而共阳数码管中8个LED的阳极连接在一起作为公共COM端。
共阴数码管显示的必要条件是其COM端接地或接具有较大灌电流能力的输入端口,此时当某个发光二级管的阳极为高电平时,该发光二极管点亮;共阳数码管显示的必要条件是共阳极接电源或具有较强电流输出能力的输出端口,此时当某个发光二极管的阴极接低电平时,该发光二级管被点亮。
2)LED数码管显示方式A.静态显示方式静态显示的特点是每个数码管需要一个具有锁存功能的8位输出口,用来锁存待显示的段码。
将要显示数的7段码输出到端口,数码管就会显示并一直保持到接收到新的显示段码为止。
静态显示的优点:显示程序简单,占用CPU时间少。
但当数码管数量较多时,就需要外扩较多的输出端口,因此静态显示的缺点是占用硬件资源多,成本较高。
B.动态显示方式动态显示的特点是将多个数码管的相应段码线连在一起,接到一个8位输出端口,该端口称为段码输出口;同时将各个(如8个)数码管的COM端连接到一个8位输出端口,该端口称为位控输出口。
这样的连接使得8个数码管只要2个输出端口就可以实现控制,大大简化硬件电路。
但是由于多个数码管的段码是连在一起的,所以需要结合位控信号,分时输出不同数码管上显示的7段码,即需要采用动态显示扫描,轮流向段码输出口输出段码和向位控输出口输出位选信号,并进行1~2ms的短时延时;8个数码管轮流输出一遍后,约20ms后,就要进行一次显示刷新,这样才能利用发光管的余辉和人眼视觉暂留作用,得到全部数码管同时稳定显示的效果。
八位数码管显示原理
八位数码管显示原理是一种通过八个数码管显示数字或字符的技术。
每个数码管由七个LED(发光二极管)组成,分别代表数码管的不同段或区域。
数码管段的结构通常按照a至g的顺序命名,其中a代表上部分的水平段,b和c代表左上和右上的斜段,d代表中间的水平段,e和f代表左下和右下的斜段,g代表底部的水平段。
根据这些数码管段的状态(点亮或熄灭),可以显示不同的数字或字符。
八位数码管的每个位(digit)由一个数码管和一个对应的译码器组成。
译码器是负责将输入的数字或字符转换为相应的数码管段的驱动信号。
通过逐个控制这八个位,可以实现多位数的显示。
在八位数码管显示原理中,需要一个控制电路或芯片来依次选择每个位。
选择位的控制通常是通过一个二进制计数器进行实现。
计数器每计数一次,就会选择下一个位。
同时,译码器接收到对应的数或字符后,会将对应的数码管段驱动信号输出,使其相应的数码管段点亮。
为了实现动态显示,在数码管中需要进行快速的刷新。
一般情况下,每个位的刷新周期在几十毫秒左右,就能够产生连续的显示效果。
这种刷新方式称为多路复用,通过快速地在不同的位之间切换,人眼会感觉到所有位都在同时显示。
总之,八位数码管显示原理是通过控制译码器和多路复用方式来实现数字或字符的显示。
通过逐位刷新,使得多个数码管能够同时显示不同的数字或字符,从而实现更复杂的信息显示。
实验一八段数码管显示1、实验目的:(1)了解数码管动态显示的原理。
(2)了解74LS164扩展端口的方法。
2、实验要求:利用实验仪提供的显示电路,动态显示一行数据.3、实验电路图LED1LED2LED3LED4LED5LED64、实验器材:(1)超想-3000TB综合实验仪 1 台(2)超想3000仿真器 1 台(3)计算机 1 台5、实验连线无 6、实验说明:(1)本实验仪提供了8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,用动态方式显示。
8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。
6位位码由8155的PA0口输出,经Ua2003反向驱动后,选择相应显示位。
74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。
写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,并且实现移位。
向显示位选通地址输出高电平就可以点亮相应的显示位。
本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。
本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及74LS164器件的工作原理。
(2)七段数码管的字型代码表显示字形g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h2 1 0 1 1 0 1 1 6bh3 1 0 0 1 1 1 1 4fh4 1 1 0 0 1 1 0 66h5 1 1 0 1 1 0 1 6dh6 1 1 1 1 1 0 1 7dh7 0 0 0 0 1 1 1 07h8 1 1 1 1 1 1 1 7fh9 1 1 0 1 1 1 1 6fh A 1 1 1 0 1 1 1 77h B 1 1 1 1 1 0 0 7ch C 0 1 1 1 0 0 1 39h D 1 0 1 1 1 1 0 5eh E 1 1 1 1 0 0 1 79h F1111 71hab c def g dp7、程序框图8、实验步骤1.将KEIL仿真器上40芯排线一端和实验箱上51CPU板上的40芯排针连接起来,将仿真器连接的USB或串口线与PC机对应的USB或串口连接起来,打开实验箱电源。