八段数码管的编码
数码管编码

数码管编码
(1)LED数码管(LED Segment Displays)由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。
这些段分别由字母A,B,C,D,E,F,G,DP来表示;
(2)一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。
发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。
常用LED数码管显示的数字和字符是0、
1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
(3)共阳极:位选为高电平,选中数码管,段选为低电平,选中各数码段;
(4)共阴极:位选为低电平,选中数码管,各段选为高电平,选中各数码段;
共阳极由0到f的编码为: 共阴极由0到f的编码为uchar code table[]={ uchar code table[]={
0xc0,0xf9,0xa4,0xb0, 0x3f,0x06,0x5b,0x4f,
0x99,0x92,0x82,0xf8, 0x66,0x6d,0x7d,0x07,
0x80,0x90,0x88,0x83, 0x7f,0x6f,0x77,0x7c,
0xc6,0xa1,0x86,0x8e}; 0x39,0x5e,0x79,0x71};。
共阴极八段数码管显示数字0到9

共阴极八段数码管显示数字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)一个数码管有八段:A,B,C,D,E,F ,G,H,DP,即由八个发光二极管组成;
因为发光二极管导通的方向是一定的(导通电压一般取为),这八个发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即为共阴极数码管);
故可分共阳极(公共端接高电平或+5V电压)和共阴极(共低电平或接地)两种数码管(2)其中每个段均有0(不导通)和1(导通发光)两种状态,但共阳极数码管和共阴极数码管显然是不同的
(3)它在程序中的应用是用一个八位二进制数表示,A为最低位,...,F为最高位(第八位)(4)共阳极:
位选为高电平(即1)选中数码管,
各段选为低电平(即0接地时)选中各数码段,
由0到f的编码为:
uchar code table[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
共阴极:
位选为低电平(即0)选中数码管,
各段选为高电平(即1接+5V时)选中各数码段,
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};。
用汇编语言实现八段数码管显示

用汇编语言实现八段数码管显示一、实验要求利用实验仪提供的显示电路,动态显示一行数据.二、实验目的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 。
位选通信号 (0x002H)段码输出 (0x004H)数据总线七段数码管的字型代码表如下表:五、程序框图程序代码OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75h ;ljmp StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ;mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ;mov r2, #00100000b ;Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ;mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ;mov r6, #01call Delaymov a, r2 ;rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ;retStart:mov 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, FillBufmov DelayT,#0DispAgain:call DisplayLED ;djnz DelayT,DispAgain ljmp MLoopend。
数码管二进制和十六进制字符编码表

精选文档」、数码管显示字符表一个数码管有八段:a,b,c,d,e,f,g,dp(小数点),即由八段发光二极管组成。
因为发光二极管导通的方向是一定的(导通电压一般取为 1.7V),这八个发光二极管的公共端有两种:可以分别接+5V (即为共阳极数码管)或接地(即为共阴极数码管);故可分共阳极(公共端接高电平或+5V电压)和共阴极(共低电平或接地)两种数码管。
其中每个段均有0 (不导通)和1 (导通发光)两种状态,但共阳极数码管和共阴极数码管显然是不同的。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp )连在一起,而各自的公共端称为位选线。
对于共阳数极码管: 各段选为低电平(即0接地时)选中各数码段,位选为高电平(即1)选中数码管。
对于共阴极数码管:各段选为高电平(即1接+5V时)选中各数码段,位选为低电平(即0)选中数码管。
显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。
所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111 ,即0x3f ;共阳数码管的字符编码为11000000 ,即0xc0。
可以看出两个编码的各位正好相反。
字母显示:/xTJ cj ZZ? 9共阳极的数码管0~f的段编码:精选文档unsigned char code table[]={ // 共阳极0~f 数码管编码0xc0,0xf9,0xa4,0xb0,//0~30x99,0x92,0x82,0xf8,//4~70x80,0x90,0x88,0x83,//8~b0xc6,0xa1,0x86,0x8e //c~f};共阴极的数码管0~f的段编码是:unsigned char code table[]={〃共阴极0~f 数码管编码0x3f,0x06,0x5b,0x4f, //0~30x66,0x6d,0x7d,0x07, //4~70x7f,0x6f,0x77,0x7c, //8~b0x39,0x5e,0x79,0x71 //c~f};共阳极数码管字符表共阴极数码管字符表。
硬件实验四--八段数码管显示

硬件实验四 八段数码管显示一、实验要求利用实验箱提供的显示电路,动态显示一行数据.二、实验目的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. 了解数码管动态显示的原理。
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 。
位选通信号 (0x002H)段码输出 (0x004H)数据总线连线 连接孔1 连接孔2 1 KEY/LED_CS CS0七段数码管的字型代码表如下表:五、程序框图程序代码OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75h ;ljmp StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71hDelay: ;mov r7, #0DelayLoop:djnz r7, DelayLoopdjnz r6, DelayLoopretDisplayLED:mov r0, #LEDBufmov r1, #6 ;mov r2, #00100000b ;Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ;mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ;mov r6, #01call Delaymov a, r2 ;rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ;retStart:mov 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, FillBufmov DelayT,#0DispAgain:call DisplayLED ;djnz DelayT,DispAgain ljmp MLoopend硬件实验十一 键盘扫描显示实验一、实验要求在硬件实验十的基础上,利用实验仪提供的键盘扫描电路和显示电路,做一个扫描键盘和数码显示实验,把按键输入的键码在六位数码管上显示出来。
数码管二进制和十六进制字符编码表

一、数码管显示字符表一个数码管有八段:a,b,c,d,e,f,g,dp(小数点),即由八段发光二极管组成。
因为发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即为共阴极数码管);故可分共阳极(公共端接高电平或+5V电压)和共阴极(共低电平或接地)两种数码管。
其中每个段均有0(不导通)和1(导通发光)两种状态,但共阳极数码管和共阴极数码管显然是不同的。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。
对于共阳数极码管:各段选为低电平(即0接地时)选中各数码段, 位选为高电平(即1)选中数码管。
对于共阴极数码管:各段选为高电平(即1接+5V时)选中各数码段,位选为低电平(即0)选中数码管。
显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。
所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。
可以看出两个编码的各位正好相反。
字母显示:共阳极的数码管0~f的段编码:unsigned char code table[]={ //共阳极0~f数码管编码0xc0,0xf9,0xa4,0xb0,//0~30x99,0x92,0x82,0xf8,//4~70x80,0x90,0x88,0x83,//8~b0xc6,0xa1,0x86,0x8e //c~f};共阴极的数码管0~f的段编码是:unsigned char code table[]={//共阴极0~f数码管编码0x3f,0x06,0x5b,0x4f, //0~30x66,0x6d,0x7d,0x07, //4~70x7f,0x6f,0x77,0x7c, //8~b 0x39,0x5e,0x79,0x71 //c~f };。
实验二、8段数码管显示实验

0 0 0 1 1 1 1 1 1 3FH 1 1 1 1 1 1 0 0 FCH
40H
C0H
1 0 0 0 0 0 1 1 0 06H 0 1 1 0 0 0 0 0 60H
79H
F9H
2 0 1 0 1 1 0 1 1 5BH 1 1 0 1 1 0 1 0 DAH
24H
A4H
3 0 1 0 0 1 1 1 1 4FH 1 1 1 1 0 0 1 0 F2H
7406 OC门 X 3
+5V
上拉 电阻 ×14
AT89C51
共阴 数码管
位 P1.5 P1.4
选 P1.3 P1.2
线 P1.2 P1.0
数码管驱动
动态显示驱动(采用DTLED_6显示驱动芯片) 将所有数码管通过分时轮流控制各个数码管的的COM(公共
端)端(相当于直连的位选端),就使各个数码管轮流受控显示。
6. 多种封装形式:PDIP24,SOC24 两种。
DTLED_6芯片——串行输入时序
DTLED_6芯片一帧串行输入数据格式
dispbuf0-dispbuf1-dispbuf2-dispbuf3-dispbuf4-dispbuf5-dispbuf6-dispbuf7-dispbuf8 小数点 - 数码管1- 数码管2- 数码管3- 数码管4- 数码管5- 数码管6-ID识别码-BZ识别码 00000xxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-0000xxxx-
特点:编程较简单,但占用I/O口线多,一般适用 于显示位数较少的场合。
⑵ 动态显示方式,在某一瞬时显示一位,依次循环 扫描,轮流显示,由于人的视觉滞留效应,人们看 到的是多位同时稳定显示。
数码管之共阴极与共阳极编码

(1)一个数码管有八段:A,B,C,D,E,F ,G,H,DP,即由八个发光二极管组成;因为发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即为共阴极数码管);故可分共阳极(公共端接高电平或+5V电压)和共阴极(共低电平或接地)两种数码管(2)其中每个段均有0(不导通)和1(导通发光)两种状态,但共阳极数码管和共阴极数码管显然是不同的(3)它在程序中的应用是用一个八位二进制数表示,A为最低位,...,F为最高位(第八位)(4)共阳极:位选为高电平(即1)选中数码管,各段选为低电平(即0接地时)选中各数码段,由0到f的编码为:uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};共阴极:位选为低电平(即0)选中数码管,各段选为高电平(即1接+5V时)选中各数码段,uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};共阳极带小数点:0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,共阴极带小数点:0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,共阴极不带小数:0x3f,0x06,0x5b;0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f共阳极不带小数点:0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90。
单片机实验 八段数码管显示 c语言 汇编

八段数码管显示汇编OUTBIT equ 08002h ; 位控制口OUTSEG equ 08004h ; 段控制口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75h ;ljmp 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 ;mov r2, #00100000b ;Loop:mov dptr, #OUTBITmov a, #0movx @dptr, a ;mov a, @r0mov dptr, #OUTSEGmovx @dptr,amov dptr, #OUTBITmov a, r2movx @dptr, a ;mov r6, #01call Delaymov a, r2 ;rr amov r2, ainc r0djnz r1, Loopmov dptr, #OUTBITmov a, #0movx @dptr, a ;retStart:mov sp, #40hmov Num, #0MLoop:mov Num, #0inc Nummov a, Nummov b, amov r0, #LEDBuf FillBuf:mov a, banl a, #0fhmov dptr, #LEDMapmovc a, @a+dptr ;mov @r0,a ;inc r0inc bcjne r0, #LEDBuf+6, FillBufmov DelayT,#0 DispAgain:call DisplayLED ;djnz DelayT,DispAgainljmp MLoopendc语言#include<reg51.h>#define LEDLen 6xdata unsigned char OUTBIT _at_ 0x8002; // 位控制口xdata unsigned char OUTSEG _at_ 0x8004; // 段控制口unsigned char LEDBuf[LEDLen]; // 显示缓冲code unsigned char LEDMAP[] = { // 八段管显示码0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d};void Delay(unsigned char CNT){ unsigned char i;while (CNT-- !=0)for (i=100; i !=0; i--);}void DisplayLED(){ unsigned char i;unsigned char Pos;unsigned char LED;Pos = 0x20; // 从左边开始显示for (i = 0; i < LEDLen; i++){ OUTBIT = 0; // 关所有八段管LED = LEDBuf[i];OUTSEG = LED;OUTBIT = Pos; // 显示一位八段管Delay(1);Pos >>= 1; // 显示下一位}OUTBIT = 0; // 关所有八段管}void main(){ unsigned char i = 0;unsigned char j;while(1){ LEDBuf[0] = LEDMAP[i%6];LEDBuf[1] = LEDMAP[(i+1)%6];LEDBuf[2] = LEDMAP[(i+2)%6];LEDBuf[3] = LEDMAP[(i+3)%6];LEDBuf[4] = LEDMAP[(i+4)%6];LEDBuf[5] = LEDMAP[(i+5)%6];i++;for(j=0; j<100; j++)DisplayLED(); // 显示}}。
八段数码管单片机

单片机实验报告(四)实验名称八段数码管显示(51/96/88)一、实验目的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。
三、实验所用仪器LED 、 89C51 、试验箱、导线四、操作步骤图1-1 实验电路及其连线图1-2 七段数码管的字形代码表图1-3 实验框图五、实验程序1、wave实验箱实验程序ORG 0100HMAIN: MOV SP,#70HMOV 75H,#1MOV 76H,#1MOV 77H,#5MOV 78H,#9MOV 79H,#9MOV 7AH,#1MOV R4,#6ONE: LCALL BRITHDAY ;进入死循环,让数码管都一直亮着 LJMP ONEBRITHDAY:MOV R0,#75H;给R0一个单元地址75HMOV R3,#01H ;位选码只让第一个数码管亮MOV A,R3 ;将R3的值给ALOOP: MOV DPTR,#8002HMOVX @DPTR,AINC DPTRINC DPTRMOV A,@R0ADD A,#0DHMOVC A,@A+PCMOVX @DPTR,AACALL DL1MSINC R0MOV A,R3JB ACC.5,LOOP1RL AMOV R3,AAJMP LOOPLOOP1:RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,DB 7DH,07H,7FH,6FH,77H,7CHDL1ms: MOV R7,#02HLOOP2: MOV R6,#0F6H ;1LOOP3: DJNZ R6,LOOP3 ;2DJNZ R7,LOOP2 ;2 1000-1*2-2*2-2*2*2-1*2=948 948%4=246(F6H)RET程序设计思路:在89c51内部的RAM中设置6个缓冲单元,分别存放显示器要显示的6位的数据。
数码管二进制和十六进制字符编码表

一、数码管显示字符表一个数码管有八段:a,b,c,d,e,f,g,dp(小数点),即由八段发光二极管组成。
因为发光二极管导通的方向是一定的(导通电压一般取为1.7V),这八个发光二极管的公共端有两种:可以分别接+5V(即为共阳极数码管)或接地(即为共阴极数码管);故可分共阳极(公共端接高电平或+5V电压)和共阴极(共低电平或接地)两种数码管。
其中每个段均有0(不导通)和1(导通发光)两种状态,但共阳极数码管和共阴极数码管显然是不同的。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。
对于共阳数极码管:各段选为低电平(即0接地时)选中各数码段, 位选为高电平(即1)选中数码管。
对于共阴极数码管:各段选为高电平(即1接+5V时)选中各数码段,位选为低电平(即0)选中数码管。
显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。
数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。
所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。
可以看出两个编码的各位正好相反。
字母显示:共阳极的数码管0~f的段编码:unsigned char code table[]={ //共阳极0~f数码管编码0xc0,0xf9,0xa4,0xb0,//0~30x99,0x92,0x82,0xf8,//4~70x80,0x90,0x88,0x83,//8~b0xc6,0xa1,0x86,0x8e //c~f};共阴极的数码管0~f的段编码是:unsigned char code table[]={//共阴极0~f数码管编码0x3f,0x06,0x5b,0x4f, //0~30x66,0x6d,0x7d,0x07, //4~70x7f,0x6f,0x77,0x7c, //8~b 0x39,0x5e,0x79,0x71 //c~f };。
硬件实验四 八段数码管显示

硬件实验四 八段数码管显示一、实验要求利用实验箱提供的显示电路,动态显示一行数据.二、实验目的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 。
位选通信号 (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) 在实验箱断电的情况下连好线。
LED八段数码管显示

八段数码管显示1.实验目的:(1)了解数码管动态显示的原理。
(2)了解74LS164 扩展端口的方法。
2.实验内容:利用实验仪提供的显示电路,动态显示一行数据。
7.参考程序(SY10.ASM):OUTBIT equ 0e101h ; 位控制口CLK164 equ 0e102h ; 段控制口(接164 时钟位) DAT164 equ 0e102h ; 段控制口(接164 数据位) IN equ 0e103h ; 键盘读入口LEDBuf equ 60h ; 显示缓冲Num equ 70h ; 显示的数据DelayT equ 75horg 0000hljmp StartLEDMAP: ; 八段管显示码db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序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, FillBufmov DelayT,#30DispAgain:call DisplayLED ; 显示djnz DelayT,DispAgainljmp MLoopEND八位数码管显示:8155控制参考程序2:对8155初始化,使I/O口控制LED的显示情况。
八段数码管数码管编码译码表

八段数码管数码管编码译码表以下是八段数码管编码译码表:
共阳极数码管编码:
0:0xC0 (11000000)
1:0xF9 (11111001)
2:0xA4 (10100100)
3:0xB0 (10110000)
4:0x99 (10011001)
5:0x92 (10010010)
6:0x82 (10000010)
7:0xF8 (11111000)
8:0x80 (10000000)
9:0x90 (10010000)
共阴极数码管编码:
0:0x3F ( 00111111)
1:0x06 ( 0000006)
2:0x5B ( 01011011)
3:0x4F ( 01001111)
4:0x66 ( 0110011)
5:0x6D ( 011011)
6:0x7D ( 011111)
7:0x7F ( 0111 1)
8:7F,8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F: 8: 7F :F8 (转置位元):对于共阳极的LED数码管,使用高电平驱动显示段,低电平不显示。
对于共阴极的LED数码管,使用低电平驱动显示段,高电平不显示。
因此,共阳极数码管的编码可以直接用作驱动信号,而共阴极数码管需要取反后才能驱动显示。
例如,数字“2”的共阳极编码为A4,可以直接驱动共阳极数码管显示;数字“2”的共阴极编码为5B,需要取反后才能驱动共阴极数码管显示。
8段式LED数码管显示原理

41H
BEH
100H
这些编码由数码管的 物理组成结构决定, 器件一旦选定,编码 不能改变!
8段式发光二极管的组成与阿拉伯数字显示原理
f
+
+
a
-
+ b
g +
-
+ c h +
控制这8段二极管发光与 不发光产生的组合就可 以显示出各种符号的形 状!
e +
d
+
-
-
ቤተ መጻሕፍቲ ባይዱ
GND
a b f g c e d h 共阴极LED数码管
f
+
+
a
-
+ b
g +
-
+ c h +
e +
0
-
d
+
-
a b f g c e d h 1 1 1 0 1 1 1 0
共阴极LED数码管
EEH
f
+
+
a
-
+ b
g +
-
+ c h +
e +
6
-
d
+
-
a b f g c e d h 1 0 1 1 1 1 1 0
共阴极LED数码管
BEH
+
f -
-
a
+
b
g
f +
+
a
-
-
+
1 c h -
-
+ e b
+
-
g +