八位数码管段码显示
- 格式:docx
- 大小:12.86 KB
- 文档页数:1
秒表-八位数码管显示1;************************************************************************** 2; 标题: 秒表-八位数码管显示(汇编)3; 作者: wentao 4; 5; 日期: 2007.3.36; 软件: Keil A51 V8.007; 芯片: AT89X518; 说明: 实验板实测通过,数码管为8位共阳9; 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!10;************************************************************************** 1112dot_l equ 30h ;30单元存储百分之一秒值13dot_h equ 31h ;31单元存储十分之一秒值14sec_l equ 32h ;32单元存储秒个位值15sec_h equ 33h ;33单元存储秒十位值16min_l equ 34h ;34单元存储分个位值17min_h equ 35h ;35单元存储分十位值18hou_l equ 36h ;36单元存储时个位值19hou_h equ 37h ;37单元存储时十位值2021dot equ 38h ;38单元为百分之一秒计数器(0.00s-0.99s)22sec equ 39h ;39单元为秒计数器(00s-59s)23min equ 40h ;40单元为分计数器(00m-59m)24hou equ 41h ;41单元为时计数器(00h-00h)2526dis_b equ 42h ;dis_b(42单元)作为位码选通数码管27dis_r equ 43h ;dis_r(43单元)为取段码时的偏移量2829key_t equ 44h ;44单元为键按下的次数标记3031K bit p1.4 ;K键与P1.4相连3233 org 0000h34 ajmp start35 org 000bh ;定时器0的中断入口地址36 ajmp time0 ;跳到定时器0的中断服务程序处37 org 001bh ;定时器1的中断入口地址38 ajmp time1 ;跳到定时器1的中断服务程序处39 org 0030h40start:41 mov p2,#0xff ;关所有数码管42 mov p1,#0xff ;p1为准双向口,作输入时先写14344 mov dis_b,#0x7f ;初始选通P2.7口数码管45 mov dis_r,#0 ;初始化偏移量为046 mov dot,#0 ;百分之一秒计数器清零47 mov sec,#0 ;秒计数清零48 mov min,#0 ;分计数清零49 mov hou,#0 ;时计数清零50 mov key_t,#0 ;键按下次数清零5152 mov tmod,#00010001b ;定时/计数器0、1工作于方式153 mov th0,#0xd8 ;预置定时常数55536(d8f0),产生10ms时基信号54 mov tl0,#0xf055 mov th1,#0xfc ;预置定时常数64536(fc18),产生1ms间隔用于动态显示56 mov tl1,#0x185758 setb ea ;开总中断59 setb et0 ;定时/计数器0允许中断60 setb et1 ;定时/计数器1允许中断61 clr tr0 ;关定时/计数器062 setb tr1 ;开定时/计数器16364lop:65 jb K,lop ;键(P1.4)未按下则返回66 lcall d_10ms ;延时10ms消抖67 jb K,lop ;是抖动则返回重新扫描68 jnb K,$ ;等待键松开69 lcall key_to ;调用键处理部分70 ajmp lop ;循环显示7172key_to: ;键处理子程序73 inc key_t ;键按下次数加174 mov a,key_t ;按下次数送入a75 cjne a,#1,key_2 ;不是1次继续检测是否是第2次76 setb tr0 ;第1次按下启动定时器077 ret78key_2: cjne a,#2,key_3 ;也不是2次继续检测是否是第3次79 clr tr0 ;第2次按下关闭定时器080 ret81key_3: cjne a,#3,back ;也不为3则结束82 mov dot,#0 ;第3次按下将四个计数器清零83 mov sec,#084 mov min,#085 mov hou,#086 mov key_t,#0 ;按键次数清零87back: ret88;--------------------------------------------------------------------------------89time0: ;定时器0中断服务程序90 push psw ;保护现场91 push acc9293 inc dot ;百分之一秒计数器加194 mov a,dot ;计数器值送入a95 cjne a,#100,over ;未计到100则返回继续计数96 mov dot,#0 ;计到100后清零97 inc sec ;秒计数器加1(进位10ms*100=1s)98 mov a,sec ;秒计数值送入a99 cjne a,#60,over ;未计到60则返回继续计数100 mov sec,#0 ;计到60后秒计数器清零101 inc min ;分计数器加1(进位60s=1m)102 mov a,min ;分计数值送入a103 cjne a,#60,over ;未计到60则返回继续计数104 mov min,#0 ;计到60后分计数器清零,重新计时105 inc hou ;时计数器加1(进位60m=1h)106 mov a,hou ;时计数器送入a107 cjne a,#100,over ;未计到100则返回继续计数108 mov hou,#0 ;计到100后清零109110over: mov th0,#0xd8 ;重置定时常数111 mov tl0,#0xf0112 pop acc ;恢复现场113 pop psw114 reti ;中断返回115;--------------------------------------------------------------------------------116time1: ;定时器1中断服务程序117 push psw ;保护现场118 push acc119 push b120 ;以下是百分之一秒计数器值个位十位分开121 mov a,dot ;百分之一秒计数器值送入a(被除数)122 mov b,#10 ;除数10送入b123 div ab ;a除以b124 mov dot_l,b ;余数b(百分之一秒值)送入百分之一秒存储单元125 mov dot_h,a ;商a(十分之一秒值)送入十分之一秒存储单元126 ;以下是秒计数器值个位十位分开127 mov a,sec ;秒计数器值送入a(被除数)128 mov b,#10 ;除数10送入b129 div ab130 mov sec_l,b ;余数b(秒个位值)送入秒个位存储单元131 mov sec_h,a ;商a(秒十位值)送入秒十位存储单元132 ;以下是分计数器值个位十位分开133 mov a,min ;分计数器值送入a(被除数)134 mov b,#10 ;除数10送入b135 div ab136 mov min_l,b ;余数b(分个位值)送入分个位存储单元137 mov min_h,a ;商a(分十位值)送入分十位存储单元138 ;以下是时计数器值个位十位分开139 mov a,hou ;时计数器值送入a(被除数)140 mov b,#10 ;除数10送入b141 div ab142 mov hou_l,b ;余数b(小时个位值)送入时个位存储单元143 mov hou_h,a ;商a(小时十位值)送入时十位存储单元144145 mov dptr,#table ;数码管段码表首址送入dptr146147 mov a,#dot_l ;取百分之一秒值的地址148 add a,dis_r ;基址+偏移量149 mov r0,a ;R0为欲显示值的地址150 mov a,@r0 ;取欲显示值送入a151 ; dis_r : 0 1 2 3 4 5 6 7152 ;对应单元: dot_l dot_h sec_l sec_h min_l min_h hou_l hou_h153 movc a,@a+dptr ;取对应值的段码154 mov p2,dis_b ;位码送入P2口155156 mov r0,dis_b ;取位码判断是否为需加小数点的位[liuwentao]157 cjne r0,#0xdf,b3 ;不是P2.5再判断是否为P2.3158 ajmp add_dot ;是P2.5则段码加上小数点显示159b3: cjne r0,#0xf7,b1 ;也不是P2.3再判断是否为P2.1160 ajmp add_dot ;是P2.3则段码加上小数点显示161b1: cjne r0,#0xfd,com ;也不是P2.1则正常送段码162163add_dot: anl a,#0x7f ;是P2.5,P2.3,P2.1则段码和7f做与操作使对应位显示小数点164com: mov p0,a ;段码送入P0口165166 inc dis_r ;偏移量加1,下次中断时显示下个数167 anl dis_r,#0x07 ;dis_r增到8时自动清0(使之在0到7间循环)168169 mov a,dis_b ;位码循环右移,下次中断时选通下个数码管170 rr a171 mov dis_b,a172173 mov th1,#0xfc ;重置定时常数174 mov tl1,#0x18175176 pop b177 pop acc ;恢复现场178 pop psw179 reti180181d_10ms: mov r5,#20 ;1+(1+2*255)*20+2*20=10.261ms@12M182temp1: mov r6,#255 ;1+2*255183 djnz r6,$184 djnz r5,temp1185 ret186187table: db 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf ;段码表188 ; 0 1 2 3 4 5 6 7 8 9 - 对应内容189190end191/************************************************************************** 192* 标题: 八位数码管显示(C51)193* 作者: wentao 194 195* 日期: 2007.3.3196* 软件: Keil C51 V8.02197* 芯片: AT89X51198* 说明: 实验板实测通过,数码管为8位共阳199* 声明: 自用存档!另仅供需要的朋友参考,请勿用做不道德转载及商业用途!200**************************************************************************/ 201202#include <reg51.h>203#include <intrins.h>204#define uchar unsigned char205206void delay_ms(uchar ms); // 延时毫秒@12M,ms最大值255207void key_scan(); // 按键扫描208void key_to(); // 按键处理209210uchar code dis_code[11] = {0xc0,0xf9,0xa4,0xb0,0x99, //段码表211 // 0 1 2 3 4 对应内容212 0x92,0x82,0xf8,0x80,0x90,0xbf};213 // 5 6 7 8 9 -214215uchar data dis[8]; // dis[0]为百分之一秒值,dis[1]为十分之一秒值216 // dis[2]为秒个位值,dis[3]为秒十位值217 // dis[4]为分个位值,dis[5]为分十位值218 // dis[5]为时个位值,dis[6]为时十位值219220uchar data dot = 0; // 百分之一秒计数器(0.00s-0.99s)221uchar data sec = 0; // 秒计数器(00s-59s)222uchar data min = 0; // 分计数器(00m-59m)223uchar data hou = 0; // 时计数器(00h-99h)224225uchar data dis_b; // dis_b为位码选通数码管226uchar data dis_r; // dis_r为取段码时的偏移量227228uchar data key_t = 0; // 按键次数,初始为0229230sbit K = P1^4; // K键与P1.4相连231232void main()233{234 P2 = 0xff; // 关所有数码管235 P1 = 0xff; // p1为准双向口,作输入时先写1236 dis[2] = 10; // '-'在段码表中偏移量为10237 dis[5] = 10; // '-'在段码表中偏移量为10238 dis_b = 0x7f; // 初始选通P2.7口数码管239 dis_r = 0; // 初始化偏移量为0240241 TMOD = 0x11; // 定时/计数器0,1工作于方式1242 TH0 = 0xd8; // 预置定时常数55536(d8f0),产生10ms时基信号243 TL0 = 0xf0;244 TH1 = 0xfc; // 预置定时常数64536(fc18),产生1ms间隔用于动态显示245 TH1 = 0x18;246 EA = 1; // 开总中断247 ET0 = 1; // 定时/计数器0允许中断248 ET1 = 1; // 定时/计数器1允许中断249 TR0 = 0; // 关闭定时/计数器0250 TR1 = 1; // 启动定时/计数器1251 while(1)252 {253 if(K != 1) // 有键按下254 {255 delay_ms(10); // 延时10ms去抖256 if(K != 1) // 确定是有键按下257 {258 while(K != 1); // 等待键松开259 key_to(); // 按键处理260 }261 }262 }263}264void key_to() // 按键处理子程序265{266 key_t++; // 按键次数加1267 if(key_t == 1) // 第一次按下268 TR0 = 1; // 启动定时器0269 else270 {271 if(key_t == 2) // 第二次按下272 TR0 = 0; // 关闭定时器0273 else274 {275 if(key_t == 3) // 第三次按下276 {277 dot = 0; // 四个计数器清零278 sec = 0;279 min = 0;280 hou = 0;281 key_t = 0; // 按键次数清零282 }283 }284 }285286}287void tiem0(void) interrupt 1 // T/C0中断服务程序(产生10ms时基信号) 288{289 dot++; // 百分之一秒计数器加1290 if(dot == 100) // 计数值到100291 {292 dot = 0; // 清零293 sec++; // 秒计数器加1(进位10ms*100=1s)294 if(sec == 60) // 秒计数值到60295 {296 sec = 0; // 秒计数器清零297 min++; // 分计数器加1(进位60s=1m)298 if(min == 60) // 分计数到60299 {300 min = 0; // 分计数器清零301 hou++; // 时计数器加1(进位60m=1h)302 if(hou == 100) // 时计数器到100303 hou = 0; // 时计数器清零304 }305 }306 }307 TH0 = 0xd8; // 重置定时常数308 TL0 = 0xf0;309}310void time1(void) interrupt 3 // T/C1中断服务程序(延时1ms数码管动态显示) 311{312 uchar data t = 0; // 段码临时变量313314 dis[0] = dot % 10; // 百分之一秒计数器个位分离出来赋绐dis[0] 315 dis[1] = dot / 10; // 百分之一秒计数器十位分离出来赋绐dis[1] 316 dis[2] = sec % 10; // 秒计数器个位赋绐dis[2]317 dis[3] = sec / 10; // 秒计数器十位赋绐dis[3]318 dis[4] = min % 10; // 分计数器个位赋绐dis[4]319 dis[5] = min / 10; // 分计数器十位赋绐dis[5]320 dis[6] = hou % 10; // 时计数器个位赋绐dis[6]321 dis[7] = hou / 10; // 时计数器十位赋绐dis[7]322323 t = dis_code[dis[dis_r]]; // 取出段码放入临时变量t324325 // 判断位码如果为显示P2.5,P2.3,P2.1则对应段码应加上小数点显示326 // 和0x7f(01111111)做与操作使原段码加上小数点变为新段码327328 if(dis_b == 0xdf | dis_b == 0xf7 | dis_b == 0xfd)329 t &= 0x7f;330331 P2 = dis_b; // 位码送P2口332 P0 = t; // 段码送P0口333334 dis_r++; // 偏移量加1,下次中断时显示下个数335 dis_r &= 0x07; // dis_r增到8时自动清0(使之在0到7间循环) 336337 dis_b = _cror_(dis_b,1); // 位码循环右移,下次中断时选通下个数码管338339 TH1 = 0xfc; // 重置定时常数340 TL1 = 0x18;341342}343void delay_ms(uchar ms) // 延时毫秒@12M,ms最大值255344{345 uchar i;346 while(ms--)347 for(i = 0; i < 124; i++);348}广州珍珠岩,广州珍珠岩厂 Ce57uICIJeu8。
51单片机应用:8只数码管同时显示多个不同字符设计要求单片机控制8只数码管,同时显示8个字符。
例如,从左至右显示“”,接着显示“”,在接着显示“”,……“”,“”,分析及方案设计:本题可以采用扩展I/O口或直接用单片机自身的I/O口的方法实现。
为节省硬件设施并使电路连线尽量简单,采用直接使用单片机自身I/O口的方式,8个数码管同时显示数字则需采用动态显示方法,初步设定以P0口给出数码管显示字段,P1口选中某一时刻动态点亮的数码管。
软件设计可以有以下几种方案:a)将全部显示状态列出,放在主程序中不断循环b)将显示状态放入8个数组中,每个状态循环一次后主程序重新开始循环c)只设置两个数组,其中一个取值不变,为正序的从1到8的共阳极数码管段码,另一个数组中的数值不断被修改,即每次显示状态改变的时候都相应改变一次,如从的段码改为的段码。
从上述方案可以看出,若设置太多的数组或列出所有显示状态,程序虽然清晰易懂但占用程序存储空间明显较大,且用delay()函数延时的话会不断占用CPU;用两个数组和两个定时器虽然算法略复杂,但程序可以达到最简化。
详细的方案说明:1)采用数码管动态显示方法。
2)8个数码管由P3控制位选,即决定某一时刻哪一个数码管亮,由P0发出的总线控制显示的段码。
3)定时器T0和T1同时工作,定时时间均为0."5毫秒,采用方式1定时,每次溢出后由软件重装初值。
4)设置中间变量temp,用于不断左移并给P3赋值;数组display[]为code 即取之不变的数组,数组show[]中的取值变化。
5)每次T0计数溢出时,temp左移一次,相应的P3左移一次,数码管由第i 个点亮变为第i+1个点亮,与此同时赋给P0口的值由show[i]变为show[i+1],达到动态显示的效果。
6)定时器T1也是每0."5毫秒计数溢出一次,但只有到1秒时才执行定时器1中断中修改数组show[]取值的程序,用变量t记录T1溢出的次数,达到200次时数组show[]中的内容开始进行修改并且t清零。
八段数码管原理(一)八段数码管简介•八段数码管是一种常见的显示器件,用于显示数字和部分字母。
•它由八个LED(发光二极管)组成,每个LED代表一个数字或字母的一段。
八段数码管的原理1.数码管的每一段(A至G)都是由一个LED组成。
2.八段数码管通过不同的灯亮或灭的组合来显示不同的数字和字母。
3.控制八段数码管的亮灭可以通过给每个LED提供合适的电压。
八段数码管的结构1.A至G段位于数码管的中间,共用一个LED。
2.数码管的左右两侧有两个额外的LED,用于显示小数点和其他特殊字符。
3.数码管还包括共阳极和共阴极两种类型。
共阳极数码管通过给段提供正电压即可点亮,共阴极数码管则通过给段提供负电压来点亮。
数字和字母的显示方式1.数字和字母的显示是通过控制每个段LED的亮灭来实现的。
2.为了显示数字0到9,对应的段LED需要亮起或熄灭。
3.要显示字母A到F,数码管需要亮灭相应的段LED,并且关闭其他未使用的段。
控制电路和编码方式1.控制八段数码管的电路通常由微控制器或其他数字电子电路构成。
2.通常使用BCD编码(二进制编码的十进制)来控制数码管的亮灭。
3.BCD编码使用4个位来表示数字0到9,每个位对应一个数字的亮灭状态。
4.编码器通过将输入的十进制数转换为对应的BCD码,并将码值提供给数码管的控制电路。
使用场景1.八段数码管广泛应用于计算机、仪器仪表、电子钟等设备中。
2.它被用于显示时间、温度、测量值等信息。
3.八段数码管因其简洁、清晰的显示效果而受到广泛青睐。
总结•八段数码管是一种常见的显示器件,通过控制不同LED的亮灭来显示数字和字母。
•它有共阳极和共阴极两种类型,常用BCD编码方式控制。
•八段数码管广泛应用于各种计算机和电子设备中,用于显示各种信息。
实验报告实验七八段数码管显示实验----b46086b6-6eaf-11ec-8071-7cb59b590d7d实验报告--实验七-八段数码管显示实验EDA实验报告七段或八段数码管显示实验1、实验目的1)了解数码管动态显示的原理。
2)了解如何通过总线控制数码管显示器2、实验要求:利用实验仪提供的显示电路,动态显示一行数据.提示:显示显示缓冲区的内容(例如,可以使用60H~65h作为缓冲区)。
修改显示缓冲区的内容时,可以显示修改后的内容(为键盘扫描和显示实验做准备)。
3、实验说明实验仪器提供了一个6位8段编码的LED显示电路。
学生可以控制显示,只要他们根据地址输出相应的数据。
显示器共有6位,以动态方式显示。
8位段码和6位码由两个74ls374芯片输出。
位代码由mc1413或uln2022反相驱动后,选择相应的显示位。
本实验仪中8位段码输出地址为0x004h,位码输出地址为0x002h。
此处x是由key/ledcs决定,参见地址译码。
在进行键盘和led实验时,需要将按键/LEDC连接到相应的地址解码。
以便使用相应的地址进行访问。
例如,如果钥匙/ledcs连接到CS0,则段代码地址为08004h,位代码地址为08002h。
七段数码管的字型代码表如下表:a-----f | | b | |------| g | e | c-----d。
h显示字体gfedcba段代码001111113FH100011006H210110115BH3100111114FH41100111066H51016DH61111017DH70000 1107H81111117FH911011116fha111011177hb11111007chc011100139hd10111105ehe111100179hf111000171h4.原理图和接线5、实验内容1)使用仪器和仪表开发平台模型本实验用到了wave6000软件平台,电脑一台,lab6000实验箱,示波器,若干连线,串行数据线。
硬件实验四 八段数码管显示一、实验要求利用实验箱提供的显示电路,动态显示一行数据.二、实验目的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) 在实验箱断电的情况下连好线。
八段数码管的字型代码-回复八段数码管的字型代码指的是一种用来显示数字和部分字母的八段LED 数码管的编码方式。
该编码方式由八个段构成,分别是a、b、c、d、e、f、g和dp(小数点),通过控制每个段的亮灭来显示需要的字符。
这种编码方式广泛应用于电子设备和显示屏中,如时钟、计时器、温度计等。
在本文中,我们将详细解释什么是八段数码管的字型代码,并逐步介绍每个字符的编码方式。
第一步:了解数码管的基本结构和原理数码管是由多个LED灯组成的,在八段数码管中,我们可以看到八个段,分别是a、b、c、d、e、f、g和dp。
这些段可以通过控制电流的通断来显示不同的字符。
每个段的控制是独立的,通过给每个段引脚施加不同的电压,可以点亮或熄灭对应的灯。
通过不同的组合,可以显示数字和一些特定的字母。
第二步:了解八段数码管的字型代码表八段数码管的字型代码表包括了0到9的数字和一些字母的编码方式。
下面是八段数码管的字型代码表:0 = ABCDEF1 = BC2 = ABDEG3 = ABCDG4 = BCFG5 = ACDFG6 = ACDEFG7 = ABC8 = ABCDEFG9 = ABCDFGA = ABCEFGb = CDEFGC = ADEFGd = BCDEGE = ADEFGF = ADEFG在字型代码表中,每个字符都有对应的八个段的亮灭情况。
通过查表,我们可以确定如何控制数码管的段来显示特定的字符。
第三步:控制数码管显示特定字符现在,我们来看一个例子,如何通过八段数码管的字型代码来控制数码管显示数字7。
根据字型代码表,我们可以知道数字7应该显示的亮灭情况是abc。
因此,我们需要给a、b和c三个段施加电流,使其点亮。
通过引脚控制,我们可以将a、b和c三个段的电压拉高,其余段的电压为低电平,从而使数码管显示数字7。
这样,我们就成功通过八段数码管的字型代码来控制数码管显示了数字7。
同样的道理,我们可以通过查找字型代码表来控制数码管显示其他数字和字母。
8段led数码管的段码表
8段LED数码管的段码表是用于描述数码管各段亮灭状态的一种编码方式。
根据LED数码管的连接方式不同,段码表也会有所不同。
以下是两种常见的连接方式(共阳和共阴)下的段码表示例:
1. 共阳连接方式:
0:0C0
1:0F9
2:0A4
3:0B0
4:99(或099)
5:92(或092)
6:82(或082)
7:0F8
8:80(或080)
9:90(或090)
注意:这里的编码是16进制表示,且由于不同的制造商或不同的应用,编码可能会略有不同。
2. 共阴连接方式:
0:3F
1:06
2:5B
3:4F
4:66
5:6D
6:7D
7:07
8:7F
9:6F
注意:这里的编码也是16进制表示,与共阳方式相似,编码可能会因制造商或应用而异。
在使用段码表时,需要注意以下几点:
1. 确认LED数码管的连接方式(共阳或共阴),以便选择正确的段码表。
2. 确认段码表的编码方式(通常是16进制),并正确解码以设置数码管各段的亮灭状态。
3. 根据具体的应用需求,可能需要调整段码表的编码以满足特定的显示要求。
4. 在实际应用中,还需要考虑数码管的驱动电路和控制方式等因素。
共阴极八段数码管显示数字0到9共阴极八段数码管是一种常用的数码显示器件,广泛应用于数字显示、电子计时、计数器等电子设备中。
它由8个发光二极管(简称LED)组成,分别代表数字的不同部分,通过控制LED的亮灭来显示不同数字。
数码管的工作原理是通过对LED的正向电压加以控制,使其发光。
每个数码管有7个分段加上一个小数点,分别代表数字的不同部分。
这7个分段依次为A、B、C、D、E、F、G,小数点分段为DP。
根据不同数字需要显示的部分,根据真值表将其控制端与共阴极接通或断开,从而实现不同数字的显示。
接下来,我们将从数字0到9逐个分析,用简体中文写出其显示方式以及对应的亮灭情况。
数字0:使用的接线方式:A、B、C、D、E、F接通,G接断。
个闭合的圈。
数字1:使用的接线方式:B、C接通,A、D、E、F、G接断。
显示效果:数码管上只有B和C分段亮灭,形状为一竖线。
数字2:使用的接线方式:A、B、G、E、D接通,C、F接断。
显示效果:数码管上只有A、B、G、E、D分段亮灭,形状为一个倒“L”。
数字3:使用的接线方式:A、B、C、D、G接通,E、F接断。
显示效果:数码管上除了E、F分段,其余分段均亮灭,形状为一个“M”。
数字4:使用的接线方式:B、C、F、G接通,A、D、E接断。
为一个倒“U”。
数字5:使用的接线方式:A、C、D、F、G接通,B、E接断。
显示效果:数码管上除了B、E分段,其余分段均亮灭,形状为一个倒“N”。
数字6:使用的接线方式:A、C、D、E、F、G接通,B接断。
显示效果:数码管上除了B分段,其余分段均亮灭,形状为一个“0”。
数字7:使用的接线方式:A、B、C接通,D、E、F、G接断。
显示效果:数码管上除了D、E、F、G分段,其余分段均亮灭,形状为一个倒“L”。
数字8:使用的接线方式:A、B、C、D、E、F、G接通。
显示效果:数码管上的所有分段均亮灭,形状为一个闭合的圈。
数字9:使用的接线方式:A、B、C、D、F、G接通,E接断。