8位数码扫描显示电路设计
(完整word版)八位七段数码管动态显示电路设计

八位七段数码管动态显示电路的设计一七段显示器介绍七段显示器,在许多产品或场合上经常可见。
其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、b、C、d、E、F。
目前常用的七段显示器通常附有小数点,如此使其得以显示阿拉伯数之小数点部份。
七段显示器的脚位和线路图如下图4.1所示( 其第一支接脚位于俯视图之左上角)。
图4.1、七段显示器俯视图由于发光二极管只有在顺向偏压的时候才会发光。
因此,七段显示器依其结构不同的应用需求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极( 低电位动作)与共阴极( 高电位动作)七段显示器,如下图4.2所示。
( 共阳极) ( 共阴极)图4.2、共阳极(低电位动作)与共阴极(高电位动作)要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用“ Sink Current ”方式,亦即是共同接脚COM为VCC,并由Cyclone II FPGA使接脚成为高电位,进而使外部电源将流经七段显示器,再流入Cyclone II FPGA的一种方式本实验平台之七段显示器模块接线图如下图4.5所示。
此平台配置了八组共阳极之七段显示器,亦即是每一组七段显示器之COM接脚,均接连至VCC电源。
而每一段发光二极管,其脚位亦均与Cyclone II FPGA接连。
四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。
八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。
图4.5、七段显示器模块接线图七段显示器之常见应用如下可作为与数值显示相关之设计。
⏹电子时钟应用显示⏹倒数定时器⏹秒表⏹计数器、定时器⏹算数运算之数值显示器二七段显示器显示原理七段显示器可用来显示单一的十进制或十六进制的数字,它是由八个发光二极管所构成的( 每一个二极管依位置不同而赋予不同的名称,请参见图4.1 ) 。
八位数码管扫描显示电路的设计

《EDA技术及应用》课程设计报告题目:八位数码管扫描显示电路的设计院(系):机电与自动化学院专业班级:电气自动化技术学生姓名:学号:指导教师:20 年6月10日至20 年6月23日华中科技大学武昌分校4、课程设计使用设备(1)EDA及SOPC综合实验平台;(2)导线若干;(3)PC机;(4)Quartus II开发工具软件。
目录摘要................................................................1.课程设计题目及要求 (1)1.1设计题目 (1)1.2L E D显示器的动态扫描驱动电路 (1)1.3设计方案论证 (1)2.L E D显示器动态扫描驱动电路各单元电路设计 (3)2.1计数器与译码器的设计 (3)2.2一位共阳极L E D动态驱动电路设计 (4)2.3七段数码管的设计 (5)3.L E D显示器动态扫描系统设计 (7)3.1整体电路图及工作原理 (7)3.2V H D L程序设计 (7)3.3电路参数计算 (10)4.Q u a r t u s运行调试 (12)4.1时序仿真 (12)4.2硬件逻辑验证 (13)4.3调试结果分析 (13)4.4调试中出现的问题及解决方法 (14)5.设计总结 (15)6.参考文献 (16)摘要本文通过一个3-8译码器电路,将输入的4位2进制数转换为与LED显示对应的8位段码,位码就是LED的显示使能端,对于共阳级的LED而言,高电平使能。
要使8个数码管动态扫描显示,就是把所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于50Hz,将看不到闪烁现象。
使用Quartus II6.0软件设计一个VHDL程序并对设计方案进行仿真,再硬件调试经检测输出正确的设计要求结果。
关键词:动态扫描Quartus II6.0 VHDLAbstractIn this paper, through a 3-8 decoder circuit, the input of four hexadecimal number into 2 and eight LED display the corresponding section of code, a codeis the LED display can make side, for the LED with Yang level, high level canmake. To makeeight digital tube dynamic scans showed that is all the samesegment digital tube connected in parallel, through the gating signal time-sharing control public side, the digital tube loop light multiple digital tube, and use the eye of the phenomenon of persistence of vision, as long as the scanning frequency is more than 50 hz, will see the flicker phenomenon. Using Quartus II6.0 a VHDL program design and the software design simulation, and hardware debugging through testing output correct design requirementsKey words: dynamic scanning Quartus II6.0 VHDL1. 课程设计题目及要求1.1设计题目八位数码管扫描显示电路的设计设计主要内容:本课题要求掌握使用Quartus II设计数字系统的设计思路和设计方法。
EDA实验报告-实验2-数码管扫描显示电路

EDA实验报告-实验2-数码管扫描显⽰电路暨南⼤学本科实验报告专⽤纸课程名称 EDA 实验成绩评定实验项⽬名称数码管扫描显⽰电路指导教师郭江陵实验项⽬编号 02 实验项⽬类型验证实验地点 B305 学院电⽓信息学院系专业物联⽹⼯程组号: A6⼀、实验前准备本实验例⼦使⽤独⽴扩展下载板EP1K10_30_50_100QC208(芯⽚为EP1K100QC208)。
EDAPRO/240H 实验仪主板的VCCINT 跳线器右跳设定为3.3V ;EDAPRO/240H 实验仪主板的VCCIO 跳线器组中“VCCIO3.3V ”应短接,其余VCCIO 均断开;独⽴扩展下载板“EP1K10_30_50_100QC208”的VCCINT 跳线器组设定为 2.5V ;独⽴扩展下载板“EP1K10_30_50_100QC208”的VCCIO 跳线器组设定为3.3V 。
请参考前⾯第⼆章中关于“电源模块”的说明。
⼆、实验⽬的1、了解时序电路设计。
2、制作⼀个数码管显⽰的7段译码电路,以备以后调⽤。
三、实验原理在电⼦电路显⽰部分⾥,发光⼆极管(LED )、七段显⽰数码管、液晶显⽰(LCD )均是⼗分常见的⼈机接⼝电路。
通常点亮⼀个LED 所需的电流在5~20mA 之间,电流愈⼤,LED 的亮度也⾼,相对的使⽤寿命也愈短。
若以10mA 导通电流来估算⼀个接5V 的串接电阻值计算应为:(5-1.6)/10mA ≈0.34K Ω。
七段显⽰数码管分为共阳、共阴⼆种极性。
它们等效成⼋个LED 相连电路。
共阴极七段显⽰器的LED 位置定义和等效电路共阴极七段显⽰码⼗六进制转换表四、实验内容⽤拨码开关产⽣8421BCD 码,CPLD 器件产⽣译码及扫描电路,把BCD 码显⽰在LED 数码管上,通过改变扫描频率观察数码管刷新效果。
五、实验要求学习在MAX+PLUS II 中使⽤VHDL 设计功能模块,并将所⽣成的功能模块转换成MAX+PLUS II 原理图的符号库,以便在使⽤原理图时调⽤该库。
单片机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
8位数码管显示电子时钟c51单片机程序之欧阳法创编

8位数码管显示电子时钟c51单片机程序时间:2012-09-10 13:52:26 来源:作者:/*8位数码管显示时间格式 05—50—00 标示05点50分00秒S1 用于小时加1操作S2 用于小时减1操作S3 用于分钟加1操作S4 用于分钟减1操作*/#include<reg52.h>sbit KEY1=P3^0; //定义端口参数sbit KEY2=P3^1;sbit KEY3=P3^2;sbitKEY4=P3^3;sbit LED=P1^2; //定义指示灯参数code unsigned chartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f }; //共阴极数码管0—9unsigned char StrTab[8];//定义缓冲区unsigned char minute=19,hour=23,second; //定义并初始化为 12:30:00void delay(unsigned int cnt){ while(--cnt);}/******************************************************************//* 显示处理函数*//******************************************************************/void Displaypro(void){StrTab[0]=tab[hour/10]; //显示小时StrTab[1]=tab[hour%10]; StrTab[2]=0x40; //显示"-" StrTab[3]=tab[minute/10]; //显示分钟StrTab[4]=tab[minute%10]; StrTab[5]=0x40;//显示"-" StrTab[6]=tab[second/10]; //显示秒 StrTab[7]=tab[second%10];}main(){ TMOD |=0x01; //定时器0 10msinM crystal 用于计时 TH0=0xd8; //初值TL0=0xf0; ET0=1; TR0=1;TMOD |=0x10; //定时器1用于动态扫描TH1=0xF8; //初值 TL1=0xf0; ET1=1;TR1=1; EA =1; Displaypro(); //调用显示处理函数while(1) { if(!KEY1) //按键1去抖以及动作 { delay(10000); if(!KEY1){ hour++;if(hour==24)hour=0; //正常时间小时加1Displaypro(); } }if(!KEY2) //按键2去抖以及动作{ delay(10000); if(!KEY2) { hour--;if(hour==255)hour=23; //正常时间小时减1Displaypro(); } }if(!KEY3) //按键去抖以及动作{ delay(10000); if(!KEY3) { minute++;if(minute==60)minute=0; //分加1 Displaypro(); } }if(!KEY4) //按键去抖以及动作{ delay(10000); if(!KEY4) { minute--;if(minute==255)minute=59; //分减1Displaypro(); } } }}/******************************************************************//* 定时器1中断*//******************************************************************/void time1_isr(void) interrupt 3 using 0 //定时器1用来动态扫描{ static unsigned char num; TH1=0xF8; //重入初值 TL1=0xf0;switch (num){ case 0:P2=0;P0=StrTab[num];break;//分别调用缓冲区的值进行扫描 case1:P2=1;P0=StrTab[num];break; case2:P2=2;P0=StrTab[num];break; case3:P2=3;P0=StrTab[num];break; case4:P2=4;P0=StrTab[num];break; case5:P2=5;P0=StrTab[num];break; case6:P2=6;P0=StrTab[num];break; case7:P2=7;P0=StrTab[num];break;default:break; } num++; //扫描8次,使用8个数码管 if(num==8) num=0;}/******************************************************************//* 定时器0中断*//******************************************************************/void tim(void) interrupt 1 using1{ static unsigned char count; //定义内部局部变量TH0=0xd8; //重新赋值 TL0=0xf0;count++; switch (count) { case 0:case 20: case 40: case 60: case80:Displaypro();break; //隔一定时间调用显示处理case 50:P1=~P1;break; //半秒 LED 闪烁default:break; }if (count==100) { count=0;second++; //秒加1 if(second==60){ second=0; minute++;//分加1 if(minute==60){ minute=0;hour++; //时加1 if(hour==24) hour=0; } } } }基于单片机的LCD1602控制总线模式时间:2012-09-10 13:50:39 来源:作者:第一行显示"Welcome";第二行显示="Happy day";若要显示其他字符,请直接往数组 LCMLineOne[16]和LCMLineTwo[16]填充相应的代码。
八位数码管显示原理

八位数码管显示原理
八位数码管是一种常见的数字显示器件,广泛应用于电子设备中。
它由七段数
码管和一个小数点组成,可以显示0-9的数字和一些字母。
在本文中,我们将介绍
八位数码管的显示原理及其工作方式。
八位数码管由七段数码管和一个小数点组成,每个数码管由7个发光二极管组成,分别对应显示数字的每一段。
通过控制这些发光二极管的通断,就可以显示出不同的数字和字母。
而小数点则是用来显示小数部分的。
八位数码管的显示原理基于这些发光二极管的组合和控制。
八位数码管的工作方式是通过控制每个发光二极管的通断来显示不同的数字和
字母。
具体来说,当需要显示某个数字或字母时,通过控制相应的发光二极管通断,使其显示出所需的图案。
这种控制可以通过数字电路或者微控制器来实现,其中数字电路一般采用BCD码或者二进制码来控制,而微控制器则可以通过编程来实现。
在实际应用中,八位数码管可以用于显示各种数字信息,比如温度、时间、计
数等。
通过合理的控制,可以实现不同数字的显示,满足各种需求。
而且由于其结构简单、成本低廉,因此在电子设备中得到了广泛的应用。
总的来说,八位数码管的显示原理基于七段数码管和小数点的组合控制,通过
控制发光二极管的通断来显示不同的数字和字母。
它的工作方式可以通过数字电路或者微控制器来实现,广泛应用于电子设备中。
希望本文能够帮助读者更好地理解八位数码管的显示原理和工作方式。
八位数码管显示原理

八位数码管显示原理八位数码管是一种常用的数字显示器件,它由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的亮灭来显示数字、字母和符号。
在实际应用中,它通常与译码器、计数器等电子元件配合使用,以实现更加丰富的显示功能。
希望通过本文的介绍,能够让大家更加深入地了解八位数码管的显示原理。
单片机控制8位数码管显示秒表课程设计

长沙学院《单片机原理及应用》课程设计说明书题目 LED数码管显示电子秒表设计系(部) **系专业(班级) *************姓名邹部长9931学号******指导教师***起止日期 2016.12.19—2016.12.24《单片机原理及应用》课程设计任务书1系(部):**系专业:******长沙学院课程设计鉴定表目录摘要 (5)第一章概述 (6)1.1电子秒表的设计要求 (6)1.2电子秒表的电路图 (6)1.3电子秒表的设计原理及方案 (7)第二章电子秒表的程序设计 (8)2.1 程序设计流程图 (8)2.2程序设计源代码 (10)第三章程序的调试 (16)第四章设计总结 (17)参考文献 (18)摘要随着经济与社会的发展对智能化和信息化技术要求的不断提高,单片机作为智能控制的核心,逐渐渗透到社会生产和生活的各个方面。
而本文则主要阐述基于单片机设计的数码管秒表,这次设计所采用的的单片机为stc89c52单片机,数码管则是使用2个4位共阴LED数码管组成的8位。
为减少I/O口,而使用了SM74HC138 和74HCT573这2片芯片实现数码管显示8位数据。
利用单片机内部定时器实现计时功能,分别显示为:分—秒—0.01秒。
控制则是使用一键控制,可实现计时开始,计时暂停,计时清零3个功能的循环。
本次的程序设计采用C语言编写,包括显示程序,定时中断服务程序,延时程序。
最后在单片机电路板来观察工作状态。
第一章概述1.1电子秒表的设计要求○1显示要求在初始状态显示的是00—00—00,最左边的2位显示分钟,中间2位显示秒,左边2位显示十分之一秒和百分之一秒,还有个2个LED数码管只显示中间那一段,用作间隔符。
○2然后还的有一个键用来控制秒表,要求按第一下开始计时,按第二下暂停计时,按第三下清零,以此往复循环控制。
○3使用单片机T0方式实现计时0.01秒。
1.2电子秒表的电路图1.3电子秒表的设计原理及方案设计原理根据单片机本身的定时计数器实现1秒的计时。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
EDA与VHD1语言课
程
实验报告
实验名称:
班级:
学号:
姓名:实验日期:8位数码扫描显示电路设计2012.10.27
实验五8位数码扫描显示电路设计
一、实验目的:学习硬件扫描显示电路的设计。
二、实验原理:图1所示是8位数码扫描显示电路。
图1中g~a为数码管段信号输入端,每个数码管的七个段(g、f、e、d、c、b、a)都分别连在一起;k1~k8 为数码管的位选信号输入端。
8个数码管分别由8个位选信号k1、k2、…k8来选通,被选通的数码管才显示数据,未选通的数码管关闭。
如在某一时刻,k3为高电平,其余选通信
号均为低电平,这时仅k3对应的数码管显示来自段信号端的数据,而其它7个数码管呈现关闭状态。
因此,如果希望在8个数码管上显示希望的数据,就必
须使得8个选通信号k1、k2、…k8分别被单独选通,同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫
描显示的目的。
AAAAAAAA
K1 K2 K3 K4 K5 K6 K7 K3
图1 8位数码扫描显示电路
三、实验内容1:用VHDL语言设计8位数码扫描显示电路,显示输出数据直接在程序中给出。
1、程序设计
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY scan play IS
PORT( CLK:IN STD_LOGIC;
SI:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
BI:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END ;
ARCHITECTURE bhv OF scan play IS
SIGNAL S: STD_LOGIC_VECTOR(3 DOWNTO 0);
SIGNAL B: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK) --产生动态扫描显示的控制信号
VARIABLE SIO: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE BIO:
STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF BIO < 8 THEN BIO:=BIO+1; ELSE BIO:=(others=>'0');
END IF;
IF SIO < 8 THEN SIO:=SIO+1; ELSE SIO:=(others=>'0');
END IF;
END IF;
S<=SIO;
B<=BIO;
END PROCESS;
PROCESS(S)
BEGIN
CASE S IS
WHEN "0000"=> SI<="00000001";
WHEN "0001"=> SI<="00000010";
WHEN "0010"=> SI<="00000100";
WHEN "0011"=> SI<="00001000";
WHEN "0100"=> SI<="00010000";
WHEN "0101"=> SI<="00100000";
WHEN "0110"=> SI<="01000000";
WHEN "0111"=> SI<="10000000";
WHEN OTHERS=> SI<="00000000"; END CASE;
END PROCESS;
PROCESS(B)
BEGIN
CASE B IS
WHEN "0000"=> BI<="0111111";
WHEN "0001"=> BI<="0000110";
WHEN "0010"=> BI<="1011011";
WHEN "0011"=> BI<="1001111";
WHEN "0100"=> BI<="1100110";
WHEN "0101"=> BI<="1101101";
WHEN "0110"=> BI<="1111101";
WHEN "0111"=> BI<="0100111";
WHEN "1000"=> BI<="1111111";
WHEN "1001"=> BI<="1101111";
WHEN "1010"=> BI<="1110111";
WHEN "1011"=> BI<="1111100";
WHEN "1100"=> BI<="0111001";
WHEN "1101"=> BI<="1011110";
WHEN "1110"=> BI<="1111001";
WHEN OTHERS=> BI<="1110001"; END CASE; END PROCESS; END bhv;
注意:编程下载之前,将扬声器下方的 JDSP 跳线开关跳至“ close ”任意电 路模式皆可。
引脚锁定参考附图12所示8个数码管I/O 连接图(图中p~a 为数 码管段信号,每个数码管的八个段都分别连在一起;s1~s8为数码管的位选信号)。
3、引脚锁定以及硬件下载
选择目标器件EP1C3选实验电路模式5。
CLK 接 clock0(引脚号为93);输 出BI 接数码管(PIO49-POI43)显示译码输出,输出SI 接数码管位选信号 (PIO41-PIO34),通过短路帽选择 clockO 接65535Hz 信号
8理
PJO49 PJO4S PIO47 PJO4^ P1O45
piO43 PIOO
Sil i&Ti
PI041
PIO40 • D
53 54
PIO39 1 £
PIO33 □ PIC37 e .f
S5 S5 S7
圏
PIO36
PIO35
g
Pg
^
GW48-PK2^fe1溺K 『用丈个盘沂世QI 探哥 附
图12 GW 眼PK2冲捕显示模式时的连接方 式:8数码管扫ffi 式显示,输入信号高胞平有
2、仿真波形
4、实验结果
编程下载之前,将扬声器下方的JDSP跳线开关跳至“ close”编译下载成功后,可以看到8 位数码扫描显示电路在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。