七段数码管循环显示
七段数码管显示
![七段数码管显示](https://img.taocdn.com/s3/m/1249bf1db7360b4c2e3f64bb.png)
七段数码管显示设计报告目录一、设计任务二、题目分析与整体构思三、硬件电路设计四、程序设计五、心得体会一.设计任务数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵式。
目前以分段式应用最为普遍,主要器件是七段发光二极管(LED)显示器。
它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。
数码管动态扫描显示,是将所用数码管的相同段(a~g 和p)并联在一起,通过选位通信号分时控制各个数码管的公共端,循环依次点亮各个数码管。
当切换速度足够快时,由于人眼的“视觉暂留”现象,视觉效果将是数码管同时显示。
根据七段数码管的显示原理,设计一个带复位的七段数码管循环扫描程序,本程序需要着重实现两部分:1. 显示数据的设置:程序设定4 位数码管从左至右分别显示1、2、3、4;2. 动态扫描:实现动态扫描时序。
利用EXCD-1 开发板实现七段数码管的显示设计,使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA相应引脚。
四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接。
二.题目分析与整体构思使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7个发光LED 组成,呈“”字状,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA 相应引脚。
SEG_SEL1、SEG_SEL2、SEG_SEL3 和SEG_SEL4 为四位7 段数码管的位选择端。
当其值为“1”时,相应的7 段数码管被选通。
当输入到7 段数码管SEG_A~ SEG_G 和SEG_DP 管脚的数据为高电平时,该管脚对应的段变亮,当输入到7 段数码管SEG_A~SEG_G 和SEG_DP 管脚的数据为低电平时,该管脚对应的段变灭。
4位七段数码管循环显示
![4位七段数码管循环显示](https://img.taocdn.com/s3/m/bd5a42b1524de518964b7dd6.png)
4、答辩考核
指
标
要
求
1、采用MCS-51单片机作为微处理器。
2、数码管模块闪烁“0028”3次,再闪烁“3105”3次,如次循环不停。。
3、在目测条件下LED显示屏各点亮度均匀、充足、稳定、清晰无串扰。
进
程
安
排
第一周:设计程序
第二周:做实物图
第三周:做实验报告
主要
参考
文献
[1]张靖武,周灵彬.《单片机系统的PROTEUS设计与仿真》.北京:电子工业出版社.2011,2
本文设计行、列驱动电路,运用单片机的智能化,系统的将每个功能电路模块连接在一起,总体结构设计如下图1-1所示:
图1-1
1.4
1.布置课题、复印资料、提出要求
2.列元件C清单、备齐元件
3.学习PROTEUS软件,PROTEUS中硬件设计
4.程序设计调试、PROTEUS软硬件调试
5.硬件电路焊接
6.单片机芯片烧录、硬件调试
[2]张义和,王敏男.《例说51单片机》.人民邮电出版社.2011,1
[3]何立民.单片机高级教程.第1版.北京:北京航空航天大学出版社,2001
[4] AT89C51 DATA SHEEP Philips Semiconductors 1999.dec
地点
院12-14
图2-1晶振电路图
2.2复位电路
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。如图2-2为复位电路图。
实验六 七段LED数码管显示实验
![实验六 七段LED数码管显示实验](https://img.taocdn.com/s3/m/2f25010ecc175527072208e0.png)
实验六七段LED数码管显示实验
一、实验目的
学习LED显示器的使用方法。
二、实验设备
MUT—Ⅲ型实验箱、8086CPU模块。
三、实验内容
输出LED的位选码和段选码,在七段LED显示器上循环显示8字。
四、实验原理介绍
显示器的段选码由8255A的PA口提供,显示器的位扫描信号由8255A的PB 口提供给共阴极LED数码管的公共端。
五、实验步骤
1、实验连线
将LED数码管右侧的短路快取下。
8255A的PA0~PA7分别连LED-A~LED-DP,8255A的PB0~PB5分
别连接LED1~LED6,8255CS连CS0。
2、编写调试并运行程序,在LED显示器上显示8字并循环,调
整延时程序,观察运行结果。
六、实验提示
1、各端口地址:
PA口:04A0H
PB口:04A2H
PC口:04A4H
控制口:04A6H
2、LED显示的方法为动态显示。
七、实验报告要求
1、画出程序框图。
2、编写并整理经过运行,证明是正确的源程序,并加以注释。
《PLC应用与实践(三菱)》 配套教学案例:数码管循环显示数字
![《PLC应用与实践(三菱)》 配套教学案例:数码管循环显示数字](https://img.taocdn.com/s3/m/99435964aaea998fcc220ee0.png)
数码管循环显示数字
1.案例原理与提示
(1) 数码管的ABCDEFG七段对应Y0~Y6,计数器循环计数。
(2) 用数据寄存器存放变化的数字,用INC(加1)指令使数字不断递增,用CMP(比较)指令实现数据的循环。
(3) 也可以用功能指令直接七段译码。
2. 案例实施过程
1) I/O分配
数码显示控制输入/输出端口分配表如下表所示。
数码显示控制输入/输出端口分配表
2) 控制程序编写
数码显示控制程序梯形图如下图所示。
数码显示控制程序梯形图
用数据寄存器D0存放变化的数字0~9。
由特殊功能继电器M8013产生秒脉冲,采用加1指令使D0中的数据不断递增,每过一秒加1。
当D0中的数据递增为10时,D0中再次
赋值为0。
程序中M8002对程序初始化,把K0(十制数0)放入数据寄存器D0中。
当比较指令(CMP)的比较结果为等于时(D0=10),M11=1,则D0中赋值0。
当SB12断开时,D0=0,[INCP D0]指令不工作,数码管上显示0。
3) 接线与调试
数码显示控制外部接线图如下图所示。
数码显示控制外部接线图
3. 思考与提升
(1) 当SB12开关闭合时,数码管就循环显示0~A,每个数字显示0.5s;当SB12开关断开时,数码管上显示“H”。
(2) 当SB12开关闭合时,数码管就循环显示9~0,每个数字显示0.8s。
实验二用8个七段数码管实现“HELLO”的循环显示 实验报告
![实验二用8个七段数码管实现“HELLO”的循环显示 实验报告](https://img.taocdn.com/s3/m/05412b02cc175527072208c0.png)
实验二用8个七段数码管实现“HELLO”的循环显示实验报告专业班级:2011级计算机1班学号:1137030 姓名:赵艺湾实验地点:理工楼901 实验时间:2012.9.26实验二用8个七段数码管实现“HELLO”的循环显示一、实验目的1、了解显示译码器的结构和理解其工作原理。
2、学习在QuartusⅡ9.0封装和使用自己设计的电路。
3、学习对复杂电路分类简化进行设计。
二、实验内容在实验一的基础上,把5个字符扩展到8个(包括空白字符)。
要求8个数码管(HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,HEX1,HEX0)的显示与三个控制开关SW17,SW16,SW15的对应关系如下:其中“HELO空白”5个字符的编码及其与开关的对应关系如下表所示:三、实验仪器及设备:一、PC机二、QuartusⅡ9.0 三、DE2-70 四、显示器四、实验步骤1. 参考设计框图如下:2. 七段HELLO字符译码器参见实验一的设计。
3. 五选一选择器的设计框图如下:其真值表为:可用多个2选一选择器实现:2选1封装2选1内部电路5选15选1内部电路4. 8个不同的选择译码器sed7sed6sed5sed4sed3sed2sed1sed05. 将各部分按照参考设计框图连接即可。
五、实验心得通过本次用8个七段数码管实现“HELLO”的循环显示的实验,了解了QuartusⅡ9.0中自己设计电路的封装和使用;加深了对组合逻辑电路设计的了解;学习了选择器的工作原理。
六、实验结论可以通过不同的方法实现“HELLO”的循环显示,但要设计8个不同的选择器来实现对五种信号“H”、“E”、“L”、“O”、“空白”的选择。
七、实验思考题思考:实验中遇到的主要问题是什么?答:对电路整体结构、工作原理不理解;不知道选择器的工作原理。
通过实验你对组合电路的设计有何体会?答:我觉得电路设计需要认真的态度、严谨的思维。
要先弄清楚整个设计思路,为什么这么设计,再开始着手。
2项目 LED七段数码管的显示控制(WZ)
![2项目 LED七段数码管的显示控制(WZ)](https://img.taocdn.com/s3/m/d4d5f927f111f18583d05a78.png)
任务一 采用基本逻辑指令编程的显示控制
用于分支回路的起点。 2)OUT指令是驱动线圈的输出指令,可以用于Y、M、C、T和S继 电器,但不能用于输入继电器。
3)并行的OUT指令可以使用多次,但不能串联使用。 4)OUT指令用于计数器、定时器和功能指令线圈时,必须设定合 适的常数,常数K的设定需用一个程序步。 (2)触点串联指令(AND、ANI) AND、ANI指令格式及表示方法见 表2-3,指令的使用方法如图2-6所示。 表2⁃3 AND、ANI指令
任务一 采用基本逻辑指令编程的显示控制
(1)逻辑“与”—触点串联 两个或多个触点与线圈串联的线路, 只有当所有触点都接通时线圈才得电,这种关系在逻辑线路中称 为“与”逻辑,如图2-1所示。
K=A· B
图2-1
“与”电路
(2)逻辑“或”—触点并联 两个或多个触点并联再与线圈连接的 线路,只要有一个触点接通,线圈就得电,这种关系在逻辑线路 中称为“或”逻辑,如图2-2所示。 K=A+B
6.通电运行调试
按图2⁃17所示的系统接线图正确连接好数码管,进行系统的调 试,观察数码管能否按控制要求显示。若不能正常显示,检查电路 并修改调试程序,直至数码管能按控制要求显示为止。
图2-20
题3图
任务三 抢答器的PLC控制
任务目标
1.学习梯形图中的互锁环节。 2.学习梯形图中的“起-保-停”环节。 3.进一步掌握通用辅助继电器“M”的运用方法。 任务分析 设计一个有四个参赛组的抢答器。其控制要求为:任一组抢先 按下后,显示器能显示该组的编号并使蜂鸣器发出响声,同时锁住 抢答器,其他组抢答无效。抢答器设有复位开关,复位后可重新抢 答。
任务一 采用基本逻辑指令编程的显示控制
(3)触点并联指令(OR、ORI)
基于PLC的七段码显示数码管控制
![基于PLC的七段码显示数码管控制](https://img.taocdn.com/s3/m/46aa57ebc8d376eeaeaa31b0.png)
基于PLC的七段码显示数码管控制【摘要】主要介绍了S7-200型PLC传输指令和移位指令的特点和使用方法,并以七段码显示为例,给出了应用不同类型的指令进行显示和编程的方法。
【关键词】传送指令;移位指令;程序设计;七段显示译码指令生活中,经常能见到电梯楼层显示、抢答器、交通灯剩余时间数码显示以及生产线上的显示系统,可以显示数字或字母,本文利用S7-200系列PLC的指令实现对七段显示数码管的控制。
在西门子S7-200系列PLC中,有多种方法可以实现七段码显示,其中比较常用的有基本指令、传送指令和七段显示译码指令SEG,笔者结合自己的工作经验,对几种控制七段码显示的指令进行比较,供大家学习和参考。
1.传输指令和七段码显示译码指令1.1 传输指令传送指令用于在各个编程元件之间进行数据传送[1]。
西门子S7-200系列PLC的传输指令包括单个传送指令和块传送指令。
单个传送指令助记符为MOV,当传送的数据长度不同时,助记符也不尽相同。
单个传送指令根据传送数据长度可以分为:字节传送指令MOVB,字传送指令MOVW,双字传送指令MOVDW,实数传送指令MOVR,利用传送指令可以在不改变原数据值的情况下将IN中的数据传送到OUT。
块传送指令用来进行一次传送多个数据。
单个传送指令的应用如图1所示图1 传送指令的应用在传送指令中,EN端为允许输入端;ENO端为允许输出端。
当输入I0.1为“1”时,传送指令将MB0中的字节传送给MB1,如果指令正确执行,则输出Q4.0为“1”,否则,如果输入I0.0为“0”,则数据不传送。
一旦传送成功,输出Q4.0将一直保持为1,直到将Q4.0复位。
在为变量赋初始值时,为了保证传送只执行一次,一般MOV方块指令和边缘触发指令联合使用。
1.2 移位指令移位指令是使位组合的字节数据、字数据或双字数据向指定方向移位的指令[2]。
根据移位的数据长度可分为字节型移位、字型移位、双字型移位。
还可以进行循环移位。
7段数码管显示驱动代码
![7段数码管显示驱动代码](https://img.taocdn.com/s3/m/77c0260478563c1ec5da50e2524de518964bd3db.png)
7段数码管显⽰驱动代码数码管显⽰进⾏简单的介绍,数码管显⽰原理在数电中已经给出了⽐较详细的介绍,我就不赘述了,因为我们⽤的是⾄芯的开发板,其上的数码管显⽰模块采⽤的是共阳极的数码管,为低电平有效,0-F的显⽰码依次为:数码管的输⼊有3个位选和8个段选给出,位选信号sel来控制哪个数码管先亮,段选信号seg来控制数码管显⽰什么,位选本来应该是有6个的但是为了节约资源,采⽤了3-8译码器将6根线减少到3根,节约了FPGA的引脚资源。
因为⼈眼有⼀个视觉载留,所以60HZ来扫描的时候,数码管会让⼈眼觉得是同时点亮,所以时钟要⼤于60hz下⾯是具体的代码实现:module scan_led(input wire clk_1k,input wire rst_n,input wire [31:0] d,output wire [2:0] dig,//seloutput wire [7:0] seg);reg [7:0] seg_r;reg [2:0] dig_r;reg [3:0] disp_dat;reg [2:0] count;assign dig =dig_r;assign seg =sig_r;// 时钟不能直接接全局时钟,这⾥的时钟驱动给的是1k的always @(posedge clk_1k or negedge rst_n)beginif(!rst_n)count <=3'b000;else if(count == 3'd5)count <=3'b000;elsecount <=count +1'b1;endalways @(posedge clk_1k or negedge rst_n)begincase (count)3'd0:disp_dat = d[31:28];3'd1:disp_dat = d[27:24];3'd2:disp_dat = d[23:20];3'd3:disp_dat = d[19:16];3'd4:disp_dat = d[15:12];3'd5:disp_dat = d[11:8];3'd6:disp_dat = d[7:4];3'd7:disp_dat = d[3:0];endcasecase (count)3'd0:dig_r = 3'd0;3'd1:dig_r = 3'd1;3'd2:dig_r = 3'd2;3'd3:dig_r = 3'd3;3'd4:dig_r = 3'd4;3'd5:dig_r = 3'd5;3'd6:dig_r = 3'd6;3'd7:dig_r = 3'd7;endcaseendalways @(disp_dat)begincase(disp_dat)4'h0:seg_r = 8'hc0;4'h1:seg_r = 8'hf9;4'h2:seg_r = 8'ha4;4'h3:seg_r = 8'hb0;4'h4:seg_r = 8'h99;4'h5:seg_r = 8'h92;4'h6:seg_r = 8'h82;4'h7:seg_r = 8'hf8;4'h8:seg_r = 8'h80;4'h9:seg_r = 8'h90;4'ha:seg_r = 8'h88;4'hb:seg_r = 8'h83;4'hc:seg_r = 8'hc6;4'hd:seg_r = 8'ha1;4'he:seg_r = 8'h86;4'hf:seg_r = 8'h8e;endcaseendendmodule另⼀种写法:module display1 (clk, rst_n , sel, seg);input clk;input rst_n;//两个输出,位选sel和段选segoutput reg [2:0] sel;output reg [7:0] seg;//数码管扫描需要⼀个慢时钟 clk_slow,⽽产⽣慢时钟则需要⼀个计数器 cntreg [15:0] cnt;reg clk_slow;//这个always块⽤来产⽣慢时钟clk_slowalways @ (posedge clk)beginif(!rst_n)begincnt <= 0;clk_slow <= 1; //复位时clk_slow静⽌不动endelsebegincnt <= cnt + 1; //复位结束后cnt开始计数clk_slow <= cnt[12]; //扫描没有必要⾮得是60Hz整,⼤于60Hz即可endend//下⾯这个always块⽤于扫描数码管,也就是sel循环地变化,//时钟每⼀次上升沿sel变化⼀次,所以在括号⾥写上时钟上升沿作为触发条件always @ (posedge clk_slow or negedge rst_n)beginif(!rst_n)beginsel <= 0; //复位时sel静⽌endelsebeginsel <= sel + 1; //复位后sel开始扫描if(sel >= 5)sel <= 0; //因为只有6个数码管,所以让sel在0-5之间循环endendalways @ (*)beginif(!rst_n)seg <= 8'b11111111; //按下复位键时让数码管熄灭,共阳极数码管0亮1灭elsebegincase(sel)0: seg <= 8'b11111001; //右起第1个数码管上显⽰11: seg <= 8'b10100100; //右起第2个数码管上显⽰22: seg <= 8'b10110000;3: seg <= 8'b10011001;4: seg <= 8'b10010010;5: seg <= 8'b10000010; //右起第6个数码管上显⽰6default: seg <= 8'b11111111;endcaseendendendmodule。
七段数码管显示控制程序设计
![七段数码管显示控制程序设计](https://img.taocdn.com/s3/m/cb7c8c7e10a6f524ccbf85f8.png)
P、B、E、F、2、3、4、5、6、8、9
网络68为停止程序。
网络69为复位程序。将M.0至M7.7全部复位。
寄存器如表4所示:
表4 对应寄存器表
P
M2.3、M6.1
L
M2.5、M6.3
C
M2.7、M6.5
B
M3.1、M6.7
E
M3.3、M7.1
F
M3.5、M7.3
1
M0.1、M5.7
2
M0.3、M5.5
(2),具体所建数据如图4所示:
图4 数据字典
(3)通信关联
关联方式如图5所示:
图5 通信关联
4.联合调试
当PLC运行的时候,打开组态王监控界面。通过虚拟界面实现对PLC的控制,图5和图6、7分别表示当PLC 启动、停止和复位,PLC与虚拟界面状态显示图。
图5 启动画面
2.硬件电路的设计
2.1I/O地址分配
根据课设要求,由于只是利用PLC控制数码管显示,所以在输入模块设计中只需要设计三个输入量,及启动、停止、复位,分别用I0.0、I0.1、I0.2表示,具体的输入模块分配表1所示。
表1 输入模块分配表
输入点
作用
I0.0
启动
I0.1
停止
I0.2
复位
根据课设要求,是在数码管上显示“1、2、3、4、5、6、7、8、9、P、L、C、B、E、F、9、8、7、6、5、4、3、2、1、P、L、C、B、E、F”,由于数码管是由七段LED灯控制,所以输出模块采用七个输出控制,具体分配如表2所示。
根据本次实验要求,程序流程图如图2所示:
。
。
图2 程序流程图
3.2PLC程序设计
单片机实验报告——LED数码管显示实验
![单片机实验报告——LED数码管显示实验](https://img.taocdn.com/s3/m/f154a41878563c1ec5da50e2524de518974bd350.png)
单⽚机实验报告——LED数码管显⽰实验(此⽂档为word格式,下载后您可任意编辑修改!)《微机实验》报告LED数码管显⽰实验指导教师:专业班级:姓名:学号:联系⽅式:⼀、任务要求实验⽬的:理解LED七段数码管的显⽰控制原理,掌握数码管与MCU的接⼝技术,能够编写数码管显⽰驱动程序;熟悉接⼝程序调试⽅法。
实验内容:利⽤C8051F310单⽚机控制数码管显⽰器基本要求:利⽤末位数码管循环显⽰数字0-9,显⽰切换频率为1Hz。
提⾼要求:在4位数码管显⽰器上依次显⽰当天时期和时间,显⽰格式如下:yyyy (年份)mm.dd(⽉份.⽇).asm;Description: 利⽤末位数码管循环显⽰数字0-9,显⽰切换频率为1Hz。
;Designed by:gxy;Date:2012117;*********************************************************$include (C8051F310.inc)ORG 0000H ;复位⼊⼝AJMP MAINORG 000BH ;定时器0中断⼊⼝AJMP TIME0MAIN: ACALL Init_Device ;初始化配置MOV P0,#00H ;位选中第⼀个数码管MOV R0,#00H ;偏移指针初值CLR PSW.1 ;标志位清零SETB EA ;允许总中断SETB ET0 ;允许定时器0中断MOV TMOD,#01H ;定时器0选⼯作⽅式1MOV TH0,#06HMOV TL0,#0C6H ;赋初值,定时1sLOOP: MOV A,R0ADD A,#0BH ;加偏移量MOVC +PC ;查表取,段码MOV P1,A ;段码给P1显⽰SETB TR0 ;开定时LOOP1: JNB PSW.1,LOOP1 ;等待中断CLR PSW.1INC R0 ;偏移指针加⼀CJNE R0,#0AH,LOOP3MOV R0,#00H ;偏移指针满10清零AJMP LOOP ;返回DB 0FCH,60H,0DAH,0F2H,66H ;段码数据表:0、1、2、3、4 DB 0B6H,0BEH,0E0H,0FEH,0F6H; 5、6、7、8、9 ;***************************************************************** ; 定时器0中断;***************************************************************** TIME0: SETB PSW.1 ;标志位置⼀MOV TH0,#06H ;定时器重新赋值MOV TL0,#0C6HLOOP3: CLR TR0 ;关定时RETI;***************************************************************** ;初始化配置;***************************************************************** PCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov TMOD, #001hmov CKCON, #002hretPort_IO_Init:; P0.0 - Unassigned, Open-Drain, Digital ; P0.1 - Unassigned, Open-Drain, Digital ; P0.2 - Unassigned, Open-Drain, Digital ; P0.3 - Unassigned, Open-Drain, Digital ; P0.4 -Unassigned, Open-Drain, Digital ; P0.5 - Unassigned, Open-Drain, Digital ; P0.6 - Unassigned, Open-Drain, Digital ; P0.7 - Unassigned, Open-Drain, Digital ; P1.0 - Unassigned, Open-Drain, Digital ; P1.1 - Unassigned, Open-Drain, Digital ; P1.2 - Unassigned, Open-Drain, Digital ; P1.3 - Unassigned, Open-Drain, Digital ; P1.4 - Unassigned, Open-Drain, Digital ; P1.5 - Unassigned, Open-Drain, Digital ; P1.6 - Unassigned, Open-Drain, Digital ; P1.7 - Unassigned, Open-Drain, Digital ; P2.0 - Unassigned, Open-Drain, Digital ; P2.1 -Unassigned, Open-Drain, Digital ; P2.2 - Unassigned, Open-Drain, Digital ; P2.3 - Unassigned, Open-Drain, Digital mov XBR1, #040hretInterrupts_Init:mov IE, #002hretInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_Initretend提⾼部分:;*********************************************************;Filename: shumaguan2.asm;Description:在4位数码管显⽰器上依次显⽰当天时期和时间,显⽰格式如下:; 2012 (年份); 12.07(⽉份.⽇); 12.34(⼩时.分钟);Designed by:gxy;Date:2012117;*********************************************************$include (C8051F310.inc)ORG 0000HAJMP MAINORG 000BHAJMP TIME0MAIN: ACALL Init_DeviceMOV R0,#00H ;⽤于位选MOV R1,#00H ;⽤于段选MOV R2,#22H ;置偏移量,⽤于控制模式MOV R4,#8MOV R5,#250CLR PSW.1 ;标志位清零SETB EA ;允许总中断SETB ET0 ;允许定时器0中断MOV TMOD,#01H ;定时器0选⼯作⽅式1MOV TH0,#0FFHMOV TL0,#0C0H ;定时器赋初值1msBACK: MOV P0,R0 ;位选MOV A,R0ADD A,#40H ;选下⼀位MOV R0,AMOV A,R1ADD A,R2 ;加偏移量MOVC +PC ;查表取段码MOV P1,A ;段码给P1显⽰LOOP: SETB TR0 ;开定时HERE: JNB PSW.1,HERE ;等待中断CLR PSW.1DJNZ R5,BACKMOV R5,#250DJNZ R4,BACKMOV R4,#8 ;循环2000次(2s)MOV A,R2ADD A,#04H ;偏移量加04H,到下⼀模式段码初值地址 MOV R2,ACJNE R2,#2EH,LOOP2MOV R2,#22H ;加三次后偏移量回到初值LOOP2: AJMP BACK ;返回进⼊下⼀模式;段码数据表:DB 0DAH,60H,0FCH,0DAH ; 2102DB 0E0H,0FCH,61H,60H ; 701. 1DB 66H,0F2H,0DBH,60H ; 432. 1;*****************************************************************; 定时器0中断;***************************************************************** TIME0: MOV TH0,#0FFH MOV TL0,#0C0HCLR TR0SETB PSW.1INC R1 ;偏移指针加⼀CJNE R1,#04H,LOOPMOV R1,#00H ;偏移指针满04H清零RETI;***************************************************************** ; 初始化配置;***************************************************************** PCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov TMOD, #001hmov CKCON, #002hretPort_IO_Init:; P0.0 - Unassigned, Open-Drain, Digital; P0.1 - Unassigned, Open-Drain, Digital; P0.2 - Unassigned, Open-Drain, Digital; P0.3 - Unassigned, Open-Drain, Digital; P0.4 - Unassigned, Open-Drain, Digital; P0.5 - Unassigned, Open-Drain, Digital; P0.6 - Unassigned, Open-Drain, Digital; P0.7 - Unassigned, Open-Drain, Digital; P1.0 - Unassigned, Open-Drain, Digital; P1.1 - Unassigned, Open-Drain, Digital; P1.2 - Unassigned, Open-Drain, Digital; P1.3 - Unassigned, Open-Drain, Digital; P1.4 - Unassigned, Open-Drain, Digital; P1.5 - Unassigned, Open-Drain, Digital; P1.6 - Unassigned, Open-Drain, Digital; P1.7 - Unassigned, Open-Drain, Digital; P2.0 - Unassigned, Open-Drain, Digital; P2.1 - Unassigned, Open-Drain, Digital; P2.2 - Unassigned, Open-Drain, Digital; P2.3 - Unassigned, Open-Drain, Digitalmov XBR1, #040hretInterrupts_Init:mov IE, #002hretInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Interrupts_Initretend六、程序测试⽅法与结果、软件性能分析软件调试总体截图:基础部分:软件运⾏时,我们发现P0端⼝为00H,P1端⼝以依次为FCH、60H、DAH、F2H、66H、B6H、BEH、E0H、FEH、F6H。
七段数码管动态显示控制
![七段数码管动态显示控制](https://img.taocdn.com/s3/m/faa16948852458fb770b5679.png)
实验二七段数码管动态显示控制一、实验目的利用AT89S52和使用两位数码管显示器,循环显示两位数00-99。
其中P2.0和P2.1端口分别控制数码管的个位和十位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过驱动三极管给数码管相应的位供电,这时只要P3口送出数字的显示代码,数码管就能正常显示数字。
二、实验要求1、使用两位数码管显示器,循环显示两位数00-99;2、具有电源开关和指示灯,有复位键;3、数码管动态显示,即扫描方式,每一位每间隔一段时间扫描一次。
字符的亮度及清晰度与每位点亮的停留时间和每位显示的时间内轮换导通次数有关。
三、实验电路四、实验器材AT89S52;动态扫描显示;共阳极数码管;电阻五、实验原理说明图1 AT89S52引脚图图2 共阳极七段数码管引脚图1AT89S52引脚图,说明如下:按照功能,AT89S52的引脚可分为主电源、外接晶体振荡或振荡器、多功能I/O 口、控制和复位等。
1.多功能I/O口AT89S52共有四个8位的并行I/O口:P0、P1、P2、P3端口,对应的引脚分别是P0.0 ~ P0.7,P1.0 ~ P1.7,P2.0 ~ P2.7,P3.0 ~ P3.7,共32根I/O线。
每根线可以单独用作输入或输出。
①P0端口,该口是一个8位漏极开路的双向I/O口。
在作为输出口时,每根引脚可以带动8个TTL输入负载。
当把“1”写入P0时,则它的引脚可用作高阻抗输入。
当对外部程序或数据存储器进行存取时,P0可用作多路复用的低字节地址/数据总线,在该模式,P0口拥有内部上拉电阻。
在对Flash存储器进行编程时,P0用于接收代码字节;在校验时,则输出代码字节;此时需要外加上拉电阻。
②P1端口,该口是带有内部上拉电阻的8位双向I/O端口,P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写“1”时,通过内部的上拉电阻把端口拉到高电位,此时可用作输入口。
实验二用8个七段数码管实现“HELLO”的循环显示 实验报告
![实验二用8个七段数码管实现“HELLO”的循环显示 实验报告](https://img.taocdn.com/s3/m/05412b02cc175527072208c0.png)
实验二用8个七段数码管实现“HELLO”的循环显示实验报告专业班级:2011级计算机1班学号:1137030 姓名:赵艺湾实验地点:理工楼901 实验时间:2012.9.26实验二用8个七段数码管实现“HELLO”的循环显示一、实验目的1、了解显示译码器的结构和理解其工作原理。
2、学习在QuartusⅡ9.0封装和使用自己设计的电路。
3、学习对复杂电路分类简化进行设计。
二、实验内容在实验一的基础上,把5个字符扩展到8个(包括空白字符)。
要求8个数码管(HEX7,HEX6,HEX5,HEX4,HEX3,HEX2,HEX1,HEX0)的显示与三个控制开关SW17,SW16,SW15的对应关系如下:其中“HELO空白”5个字符的编码及其与开关的对应关系如下表所示:三、实验仪器及设备:一、PC机二、QuartusⅡ9.0 三、DE2-70 四、显示器四、实验步骤1. 参考设计框图如下:2. 七段HELLO字符译码器参见实验一的设计。
3. 五选一选择器的设计框图如下:其真值表为:可用多个2选一选择器实现:2选1封装2选1内部电路5选15选1内部电路4. 8个不同的选择译码器sed7sed6sed5sed4sed3sed2sed1sed05. 将各部分按照参考设计框图连接即可。
五、实验心得通过本次用8个七段数码管实现“HELLO”的循环显示的实验,了解了QuartusⅡ9.0中自己设计电路的封装和使用;加深了对组合逻辑电路设计的了解;学习了选择器的工作原理。
六、实验结论可以通过不同的方法实现“HELLO”的循环显示,但要设计8个不同的选择器来实现对五种信号“H”、“E”、“L”、“O”、“空白”的选择。
七、实验思考题思考:实验中遇到的主要问题是什么?答:对电路整体结构、工作原理不理解;不知道选择器的工作原理。
通过实验你对组合电路的设计有何体会?答:我觉得电路设计需要认真的态度、严谨的思维。
要先弄清楚整个设计思路,为什么这么设计,再开始着手。
第五节 七段数码管的使用.
![第五节 七段数码管的使用.](https://img.taocdn.com/s3/m/03bf8a29f111f18583d05a21.png)
第五节数码管的使用5.1 数码管简介同学们!相信你的流水灯也做的不错了吧,现在能玩出几种花样了?但是工程师们设计这么一个单片机,并不是只为了让它做流水灯的,那样也太浪费点了吧... ^_^ 。
数码管的一种是半导体发光器件,7段LED数码管是利用7个LED(发光二极管)外加一个小数点的LED组合而成的显示设备,可以显示0~9等10个数字和小数点,使用非常广泛,数码管可以分为一位和多位它的外观如图5-1所示。
图5-15.2 数码管的显示原理数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,使用时com接正5伏电源,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,使用时com要将其接地。
而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),8个LED的分布方式如图5-2所示。
图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED 的亮灭来显示数字。
那么,实际的数码管的引脚是怎样排列的呢?对于单个数码管来说,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚,左上角那个脚便是10脚了,上面两个图中的数字分别与这10个管脚一一对应。
注意,3脚和8脚是连通的,这两个都是公共脚。
它对应的引脚分布为图5-3所示。
图5-2 图5-3数码管的8段,对应一个字节的8位,a对应最低位,dp(小数点)对应最高位。
所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。
可以看出两个编码的各位正好相反。
如图5-4所示。
图5-4那么,一位数码管要显示字符0~F,则对应的编码如表2所示。
一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。
6位7段LED数码管显示
![6位7段LED数码管显示](https://img.taocdn.com/s3/m/530770e40975f46527d3e19e.png)
目录1. 设计目的与要求..................................................... - 1 -1.1 设计目的...................................................... - 1 -1.2 设计环境...................................................... - 1 -1.3 设计要求...................................................... - 1 -2. 设计的方案与基本原理............................................... - 2 -2.1 6 位 8 段数码管工作原理....................................... - 2 -2.2 实验箱上 SPCE061A控制 6 位 8 段数码管的显示................... - 3 -2.3 动态显示原理.................................................. - 4 -2.4 unSP IDE2.0.0 简介............................................ - 6 -2.5 系统硬件连接.................................................. - 7 -3. 程序设计........................................................... - 8 -3.1主程序......................................................... - 8 -3.2 中断服务程序.................................................. - 9 -4.调试............................................................... - 12 -4.1 实验步骤..................................................... - 12 -4.2 调试结果..................................................... - 12 -5.总结............................................................... - 14 -6.参考资料........................................................... - 15 - 附录设计程序汇总.................................................... - 16 -1.设计目的与要求1.1 设计目的1. 了解 6 位 7 段 LED数码管的工作原理。
EDA实验二_VHDL七段数码管显示译码
![EDA实验二_VHDL七段数码管显示译码](https://img.taocdn.com/s3/m/4f582da768dc5022aaea998fcc22bcd126ff42e8.png)
EDA实验二七段数码管显示译码的设计一、实验目的1、掌握七段数码管译码器的工作原理;2、学会运用波形仿真测试检验程序的正确性;3、学会运用波形仿真测试检验程序的正确性。
二、实验设备ZYE1502C型实验箱三、内容要求1、用拨位开关输入8421BCD码,七段数码管显示“0-F”16个16进制的数字。
2、观察字符亮度和显示刷新的效果:(1)在8个七段数码管上同时显示某一数字;(2)在8个七段数码管上动态显示某一数字。
3、扩展内容:(1)动态显示时,能即时改变显示的顺序;(2)动态显示时,实现显示数字从0~F的循环显示。
四、实验步骤1、输入:设计部分采用VHDL语言完成;2、编译;3、仿真;4、下载;5、连线。
(1)四个拨位开关(在P1、P2处选择)连接D3、D2、D1、D0信号所对应的管脚。
时钟CLK所对应的管脚同实验箱上的时钟源相连。
(2)扫描片选信号DIG(0 TO 3)的管脚同七段数码管(共阴)相连;(3)七段数码管驱动信号A,B,C,D,E,F,G的管脚分别同扫描数码管的段输入PCLK处的连接线孔A,B,C,D,E,F,G相连。
五、实验报告1、论述实验过程和步骤;2、填写正确的实验结果。
(1)通过两种显示效果分析:字符显示亮度同扫描频率的关系,且让人眼感觉不出光闪烁现象的最低扫描频率是多少?答:扫描频率越高,显示亮度越低。
人眼看是否闪烁与所用的时钟和分频方式有关,在频率稳定和分频均匀的情况下,最低扫描频率为256Hz,若分频不均匀或频率不稳定,则需更高频率。
(2)字形编码的种类,即一个7段数码管可产生多少种字符,产生所有字符需要多少根被译码信号线?答:一个7段数码管可产生2^7=128种字符,产生所有字符至少需要7根被译码信号线。
但假如只编译0-F,16个字符,则至少只需要4根被译码信号线。
六、实验小结。
答:1、不同控制端需要预先分配控制优先级,否则编写的时候会出现很多问题。
优先级分为普通和特殊,一般错误情况可以跨越权限显示出来。
单只数码管循环显示0~9
![单只数码管循环显示0~9](https://img.taocdn.com/s3/m/72d14f47640e52ea551810a6f524ccbff121caba.png)
单只数码管循环显示0~9【任务】在单个数码管上循环显示数字0~9,实现类似于计时(或计数)显示的功能。
【硬件平台】在51单片机最小系统的基础上,以端口P0控制一个七段数码管。
为提高驱动能力,增加了上拉排阻RP1(10k)。
【编程思路】因为这里使用了共阴数码管,所以当P0端口相应引脚为高电平时,点亮相应的数码段。
0~9的段码按相同的时间间隔从单片机内存读到P0口,由此产生从0到9的循环显示效果。
先写下前面三板斧,内涵不赘述:#include <reg51.h>#define uchar unsigned char#define uint unsigned int因为0~9的段码是固定的,不妨将其保存为code类型的数组。
注意是共阴接法,比如要显示“0”,那么P0端口的各引脚电平为:a=b=c=d=e=f=1,g=0,闲置的P0.7=0(按字节给端口赋值,所以闲置位也赋值),表示为二进制是P0.7gfedcba=00111111,对应的十六进制为0x3F。
其余段码可类似分析:uchar code display_code[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x66,0x6D,0x7D,0x7F,0x6F,0x00 }; //0x00表示段码全灭显示不同的数字之间要有时间间隔,须定义一个延时函数以便主函数调用实现间隔延时:最后编写主函数:【代码展示】#include <reg51.h>#define uchar unsigned char#define uint unsigned intuchar codedisplay_code[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x66,0x6D,0x7D,0x 7F,0x6F,0x00};void delay(uint x){uchar i;while(x--) for(i=0;i<100;i++);}void main(){uchar i=0; //定义数组下标变量,用以遍历数组P0=0x00; //数码管初始不亮while(1){P0=display_code[i]; //0~9对应的段码送给P0口,显示9后段码熄灭(0x00)i=(i+1)%10;//从0循环到9,超过10后又回到0,%为取余数算符}}。
LabVIEW之七段数码管实验报告(正式版)
![LabVIEW之七段数码管实验报告(正式版)](https://img.taocdn.com/s3/m/1860f3d527d3240c8447efc0.png)
Guangdong Polytechnic Normal UniversityLabVIEW程序设计基础实验报告实验题目:一位七段数码管显示专业:应用电子技术教育(师范)年级班别:13级2班组员姓名:指导教师:向英二级学院:电子与信息学院二◦一六年三月三^一日一位七段数码管显示【实验目的】1. 认识七段数码管并学习七段数码管的工作原理;2. 学习在NI ELVIS II硬件实验平台,并通过LabVIEW程序控制数码管显示的数字。
3. 学会使用NI ELVISII的软件驱动、连接NI ELVIS II实验平台、编写LabVIEW 程序。
【实验原理】利用NI ELVIS II硬件实验平台,采用元器件搭建硬件电路,编写LabVIEW 程序框图与前面板控制窗口,然后运行程序以实现采用自动与手动两种方式在数码管上显示数字的现象。
1. 了解数码管结构:图1 一位七段数码管结构图2 •数码管原理及接线原理:每个数码管的有8个段:a、b、c、d、e、f、g、h (h是小数点),都分别连到对应的P0-P7, 8个数码管分别由8个选通信号P0-P7来选择。
本实验采用共阴极的七段数码显示器,将七段数码显示器的阴极连在一起,为了不让数码管被意外烧掉,将abcdefgh七段数码管分别通过100Q的上拉电阻接入原型实验平台中的数字I/O 口,a接口接入上端数码管,b接口接入右上端数码管,c 接口接入右下端数码管,d接口接入下端数码管,e接口接入右下端数码管,f 接口接入右上端数码管。
当需要哪一段数码管发亮时,只需在LabVIEW的程序控制中输入高电平1即可。
2. 数码管硬件接线原理图。
段符十人进制代码显示号dp0f e d c b a共阴极共阳极0001111113FH COH06H F9H 1000001102010110115BH A4H3010011114FH BOH4010011099H5011011016DH92H601111101S2H70000011107H F8H8011111117FH SOH9011011116FH9OH图3 一位七段数码管真值表【实验所需元器件】所需元器件与器材:【实验步骤】、搭建硬件电路:GND■■■VE f 匸O O Q 1 O O S *■ F * ■■ d !• '* lr * n O O 0 o o H AD SB -M CR5O d 口 €Z3 o o o B F-" ■—* I —»■ED 7 tn 5图4七段数码管硬件连接图、设计程序流程图图5七段数码管程序流程图设计思路的是利用应用数码管显示数字,采用两种方式控制输入显示,每位显示的数字由实验者通过各自的数字输入框控制输入0-9的数值,各位数字的显示间相互独立,互不影响。
数码管显示控制设计—间隔1s依次显示数字0(PLC设计课件)
![数码管显示控制设计—间隔1s依次显示数字0(PLC设计课件)](https://img.taocdn.com/s3/m/3aa1136ecec789eb172ded630b1c59eef8c79ab7.png)
T5
TON
Time
IN
Q
PT
ET
T6
TON
Time
IN
Q
PT
ET
T7
TON
Time
IN
Q
PT
ET
T8
TON
Time
IN
Q
PT
ET
T9
TON
Time
IN
Q
PT
ET
二、梯形图设计-比较指令
M0.0
T#4S
T1
TON
Time
IN
Q
PT
ET
T1.ET
T1.ET
Q0.0
A灯
T#1S
T#2S
M0.0启动后,T1定时器开始定时,ET值开始发生变化;此时ET值小于2s,
01 01 01 01 01 01 01 01
16#55 T1.Q
16#aa T2.Q
16#ff
T3.Q 16#00
I0.1
T#1S
T1
T2
TON
Time
IN
Q
TON
Time
IN
Q
PT
ET
PT
ET
T#1S
T#1S
T3
TON
Time
IN
Q
PT
ET
项目四:数码管显示控制设计
任务一
间隔1s依次点亮各段
9876543210
9S 8S 7S 6S 5S 4S 3S 2S 1S
开 始
二、梯形图设计-知识回顾
M0.0 T1.Q
Q0.0
T2.Q T4.Q
T5.Q
使用多个定时器实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(封面)天津理工大学中环信息学院电子技术课程设计设计题目:七段数码管循环显示控制电路设计姓名:诸钦峰学号:11160014系别:电子信息工程系专业班级:物联网1班开始日期: 2013年6月24日完成日期2013 年07月01日指导教师:彭利标成绩评定等级天津理工大学中环信息学院课程设计任务书系别:电子信息工程系班级:物联网1班姓名:诸钦峰学号:11160014本表附在课程设计说明书的目录之后。
天津理工大学中环信息学院课程设计成绩评定表系别:电子信息工程系班级:物联网1班姓名:诸钦峰学号:11160014本表附在课程设计任务书之后。
目录一、设计意义 (4)二、主要任务 (5)2.设计方案比较 (5)三、电路组成框图 (8)1.数列循环电路的设计 (8)2.序列显示电路的设计 (8)2.1十进制自然数序列的显示电路 (8)2.2奇数序列显示电路 (9)2.3偶数序列显示电路 (9)2.4音乐序列显示电路 (10)3.脉冲产生电路的设计 (11)4.二分频电路的设计 (11)四、电路原理图 (12)五、各电路的仿真测试 (14)1.脉冲产生电路的仿真 (15)2.二频分电路的仿真 (16)六、元件清单 (16)七、总结 (16)一、设计意义这次的课程设计主要是用计数器来实现的,这个七段数码管循环显示控制电路设计的实质就是要产生一系列有规律的数列, 然后通过一个七段数码管显示出来。
这里使用的只要就是计数器, 计数器在时序电路中应用的很广泛,它不仅可以用于对脉冲进行计数,还可用于分频,定时,产生节拍脉冲以及其他时序信号。
运用计数器的不同的功能和不同的接发就可以实现不同的序列输出了。
而这次的内容还包括分电路图的整合,使这个七段数码管能够按照要求那个依次输出自然序列,奇数序列,偶数序列还有音乐序列。
为了实现这个循环输出的功能,在设计的时候还用到了一个以为寄存器,可以利用它的输出端来控制四个计数器的工作情况, 可以让四个计数器依次工作,就可以达到要求的依次循环输出数列。
最后还有一个部分就是脉冲的产生基于多谐振荡器可以产生方波,就可以利用它来产生脉冲信号了。
而这个多谐振荡器采用的是 555 定时器来完成的。
这个设计基本上就是由以上三个部分连接在一起组成的。
1、基本方案框图计数器输出信号,将信号给译码器和脉冲信号再由脉冲信号和译码器分别编成自然序列,奇数序列,偶数序列和音乐序列,最后由数码管显示出来。
图1 七段数码管显示的基本方框图二、设计方案比较共有两个方案可以选择,以下是两个方案的具体实验步骤。
1、数列循环部分方案一设计数列的循环有很多种方法,这个方案就是利用移位寄存器将串行数据右移和左移的特点来设计的。
电路图如图2。
图2 用74LS940构成的循环电路原理图这个电路图实现循环主要是依靠74LS194的移位功能来完成的。
先让开关J1拨至与电源相接,就是接入高电平,这样移位寄存器有了脉冲信号之后就可以实现置数的功能,四个输出端为1000,再将开关J1拨至与地相接也就是接入低电平,这时寄存器就可以实现移位的操作了,然后通过脉冲信号的触发下,寄存器的输出就可以从1000→0100→0010→0001,这样依次循环了。
然后四个输出端用来控制计数器的信号控制端就可以控制序列输出了。
方案二要让四个数列依次循环则采用一个2线--4线译码器和一个四进制计数器。
用译码器的输出依次去控制芯片清零端,在通过一个四进制计数器去控制译码器输入,使其在四个输出间不断循环,而计数器的时钟脉冲则可通过每个芯片的进位端经过一四输入或门输出来控制。
其电路图如图3。
图3 用译码器实现的循环电路这两种方案都可以实现数列的循环,第一种方案需要拨动开关,而第二种就不需要可以自动依次产生数列。
另外第一种开关使其依次产生序列还需要一个脉冲控制,而在设计总体的电路的时候四个计数器也需要有脉冲信号的触发,这样的话就要多设计一个方波脉冲的产生电路,另外还要与计数器的脉冲信号匹配,因为74LS194的移位是要一个计数器的全部数列产生完后才下一个脉冲,这样不是很好与计数器的脉冲频率想匹配。
但是第二个方案就很好的解决了这个问题,这个方案的数列循环部分就是依靠芯片74HC390和74HC139也就是一个计数器还有一个译码器来实现的。
74HC390的脉冲信号是由计数器的进位端来控制的,这样就很好解决了方案一的问题,只有当一个计数器的全部数列输出完了之后才会有脉冲信号过来触发74HC390让它进入下一个状态,这样就是由电路自己控制的,不会产生方案一的问题。
2、数列显示部分这个部分是利用74LS160D计数器来实现的。
根据数列不同的特点来连接电路的。
电路图如图4。
DCD_HEX图4 数列显示电路原理图3、脉冲信号的产生产生信号脉冲的方法很多,这里我在设计的时候选用的是用多谐振荡器,它是一种在接通电源后,就能产生一定频率和一定幅值矩形波的自激振荡器,常做为脉冲信号源。
由于不用接输入信号就可以产生所需要的矩形波,所以在设计的时候就选用这个方案。
而选用的电路是用555定时器构成的,因为555定时器内部的比较器灵敏度较高,而且采用差分电路形式,用它组成的多谐振荡器的振荡频率受电源电压和温度变化的影响很小,这样使产生的矩形波更稳定。
电路图如图5。
图5 脉冲信号产生电路图4、方案的确定在数列循环的部分我采用的是用一个四进制计数器和一个译码器来实现的,这样避免了脉冲的混乱。
在数列显示部分用的是芯片74LS160的计数器的计数功能实现的。
在脉冲信号产生的环节则就是采用555定时器构成的多谐振荡器。
三、电路组成框图整个电路总共三大部分,其中第二部分共分成4个小步,具体操作如下:1、数列循环电路的设计在这个部分主要是应用了一个四进制的计数器和一个译码器,这个部分的作用是为了使自然序列,奇数序列,偶数序列,音乐序列的循环显示。
其中四个74LS160计数器的进位端与74HC390的CPA相接,这样就可以通过进位端状态由0变为1的瞬间给它一个脉冲触发,而另一个脉冲端则是与其输出端QA相接的,这样的接法是为了使74HC390实现8421BCD码十进制计数的功能。
然后再让74HC390的输出端QA,QB分别与译码器74HC194相接,这样可以用译码器来控制计数器的动作状态,它可以决定由哪个74LS160为0,接一个计数器来工作。
当QA,QB为“0”,“0”时,这时译码器的输出端就只有Y反相器然后再接产生自然序列的计数器的清零端;这样就可以实现只有自然序列输出的为0,接一个反功能,同理当QA,QB为“0”,“1”时,这是译码器的输出端就只有Y1相器然后再接产生奇数序列的计数器的清零端,这样就可以实现只有奇数序列输出的功为0,接一个反相器然能; 当QA,QB为“1”,“0”时,这是译码器的输出端就只有Y2后再接产生偶数序列的计数器的清零端,这样就可以实现只有偶数序列输出的功能; 当为0,接一个反相器然后再接产QA,QB为“1”,“1”时,这是译码器的输出端就只有Y3生音乐序列的计数器的清零端,这样就可以实现只有音乐序列输出的功能。
其产生序列的功能就是这样实现的。
其电路图如图6。
图6 用译码器显示的循环电路2、序列显示电路的设计序列显示共分为四部分,分别为:十进制自然数序列的显示电路,奇数序列的显示电路,偶数序列的显示电路和音乐序列显示电路。
一下分为四部分详细说明:2.1十进制自然数序列的显示电路由于74HC160本身就是一个十进制计数的芯片,因此对于这个部分就只需按照其功能表来接电路就可以实现十进制自然序列输出了。
在脉冲信号的触发下,计数器的输出端的状态依次为0000→0001→0010→0011→0100→0101→0110→0111→1000→1001,然后再将计数器的输出端和数码管的输入端口相接就可以在数码管上面看到依次显示从0到9了。
其序列显示电路图如图7。
DCD_HEX图7 自然数列的显示电路图2.2奇数序列显示电路将奇数1,3,5,7,9用8421BCD码分别表示为:“0001”,“0011”,“0101”,“0111”,“1001”,可以发现最后一位都为1,因此可以在上述十进制自然序列的基础上将数码管的最低位接高电平就可以实现奇数序列了。
虽然在每个脉冲触发的作用下,芯片实现的仍然是十进制,但是由于数码管最低位接高电平,在数码管显示的则是奇数列,但是显示的时间间隔是正常自然序列的2倍,为了实现相邻显示时间间隔相等,我们可以利用二分频电路解决上述问题。
其序列显示电路图如图82.3偶数序列的显示电路将偶数0,2,4,6,8用8421BCD 码分别表示为“0000”,“0010”,“0100”,“0110”,“1000”,可以发现最后一位都为0,因此可以在上述十进制自然序列的基础上将数码管的最低位接低电平就可以实现偶数序列了。
虽然在每个脉冲触发的作用下,芯片实现的仍然是十进制,但是由于数码管最低位接高电平,在数码管显示的则是偶数列,但是显示的时间间隔是正常自然序列的2倍,为了实现相邻显示时间间隔相等,我们可以利用二分频电路解决上述问题。
其序列显示电路图如图9。
图9偶数序列的显示电路图2.4音乐序列显示电路音乐序列的特点是从0显示到7后又再变为0,这里可以将数码管的最高位固定接低电平就可以实现了。
因为74LS160的输出端只有三个与数码管相接,当74LS160的输出为“1000”和“1001”时,这时由于数码管最高位是固定接低电平的,也就是数码管的输入端仍是“0000”,“0001”。
这样数码管的显示就又变成0和1了。
其序列显示电路图如图DCD_HEX_BLUEDCD_HEX_YELLOW3、脉冲产生电路的设计由于上述设计中所用到的芯片全要有脉冲信号的触发才能完成相应的功能,所以就需要用到脉冲产生电路。
我这里用到的是用555定时器设计的多谐振荡器,多谐振荡器的优点是在接通电源之后就可以产生一定频率和一定幅值矩形波的自激振荡器,而不需要再外加输入信号了。
而用555定时器设计的多谐振荡器也有很多优点,由于555定时器内部的比较器灵敏度较高,而且采用差分电路形式,这样就使多谐振荡器产生的振荡频率受电源电压和环境温度变化的影响很小。
其电路图如图11。
图11 脉冲产生电路图设R3和R2的上半部分为RA ,R1和R2的下半部分为RB,电容C2两端的电压为VC。
接通电源后,电容C2被充电,当VC 上升到2/3VCC时,使输出电压为低电平,同事放电三极管T导通,此时电容C2通过RB 和T放电,VC下降。
当VC下降到2/3VCC时,V0翻转为高电平。
当放电结束后,T管截止,VCC 将通过RA和RB向电容器C2充电,当VC上升到2/3VCC时,电路又翻转为低电平。
如此周而复始,于是,在电路的输出端就得到一个周期性的矩形波。