带数码管显示交通灯

带数码管显示交通灯
带数码管显示交通灯

带数码管显示的交通灯

系别:电子工程系

班级:应用电子0901

学号:0503090136

姓名:邵景荣

指导老师:刘彦华

前言

当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。而计算机技术怎样与实际应用更有效地结合并有效地发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。交通信号灯的出现,是交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。随着中国加入WTO,我们不但要在经济、文化、科技等各方面与国际接轨,在交通控制方面也应与国际接轨。俗话说“要想富,先修路”,但路修好了如果在交通控制方面做不好道路还是无法保障畅通安全。作为交通控制的重要组成部分的交通信号灯也应国际化,随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。

交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现在城市交通监控指挥系统中最重要的组成部分。

随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效的改善了交通情况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路的交通状况必然受高速道路与普通道路耦合处交通情况的制约。

所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。

本文主要从单片机的应用上来实现十字路口交通灯智能化的管理,用以控制过往车辆的正常运作。这次设计的主要任务是设计一个单片机控制的交通灯控制系统的设计。首先设计出各个功能模块、在搭建出完整的硬件系统,选好合适的单片机型号并依照硬件链接图设计出相应的软件系统,通过编译软件编译出可执行的目标文件,最后做出原理图并在仿真软件上仿真出设计结果。

河南工业职业技术学院

大型作业任务书

类别:三年制高职

专业:应用电子技术

班级:

姓名:

大型作业题目:带数码显示的交通灯

指导教师姓名:刘彦华

负责人签字:刘明黎

2011年5月15日

一、项目功能:

设计十字路口红、黄、绿灯指示与倒计时数码管显示的硬件原理图,并进行硬件制作。编程实现十字路口红、黄、绿灯指示与倒计时数码管显示,具体参数到独山大道与光武路交叉口观察确定。

二、设计要求:

1. 总体设计;

2. 硬件设计;

3. 软件设计与调试;

4. Proteus仿真;

5. 硬件制作与测试;

三、大型作业说明书要求:

1. 封面、前言、目录

2. 大型作业任务书

3. 系统总体设计

4. 硬件设计

5. 软件设计(包括软件流程图及源程序清单)

6. 设计心得

7. 参考资料

指导教师(签字):刘彦华2011 年5月15日

系统总体设计

一、总体设计方案

设计基本要求:

设计十字路口红、黄、绿灯指示与倒计时数码管显示的硬件原理图,并运行硬

件制作。编程实现十字路口红、黄、绿灯指示与倒计时数码管显示,具体参数到

独山大道与光武路交叉口观察确定。

实现功能:

1.正常情况;

东西车道和南北车道上的车辆交替运行,每次通行时间为60s;东西向和南北

向转换时黄灯闪烁3s。东西南北四个方向,东西绿灯亮60S,再黄灯闪烁3S,最

后红灯亮60S,同时东西绿灯亮时,南北红灯亮60S,绿灯亮60S,黄灯闪亮3S。

用LED数码管作为模拟交通灯亮与灭的时间延迟控制的倒计时显示;

2.紧急情况:

有紧急通道,即按压“东西紧急键”,则东西方向绿灯,南北方向红灯;松开“东

西紧急键”,5s后解除东西紧急通行状态。按压“南北紧急键”,则南北方向绿

灯,东西方向红灯;松开“南北紧急键”,5s后解除南北紧急通状态。

交通灯显示状态:

东西方向(简称A方向)南北方向(简称B方向)状态说明

红灯黄灯绿灯红灯黄灯绿灯

灭灭亮亮灭灭A方向通行,B方向截止灭灭闪烁亮灭灭A方向警告,B方向禁行灭亮灭亮灭灭A方向警告,B方向禁行亮灭灭灭灭亮A方向禁行,B方向通行亮灭灭灭灭闪烁A方向禁行,B方向警告亮灭灭灭亮灭A方向禁行,B方向警告

二、总体设计方案的框图

图一

框图说明:

电源提供方案:

采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。 计时控制方案:

利用89C51内部的定时/计数器进行定时,配合软件延时实现倒计时。 .显示控制方案:

采用数码管与LED 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED 灯分别显示时间与提示信息。 紧急情况下:

采用外部中断0来控制东西紧急情况,用外部中断1来控制南北紧急情况。 三、落实实施:

用C 语言编程并用PROTEUS 进行仿真测试,看软件功能是否齐全,最后用实物图连接看能否实现预定功能。

单 片 机 最 小 系 统

单 片 机 S T C 8 9 C 5 1 芯 片

LED 显示部分

数码管显示部分

紧急情况控制部分

硬件电路原理与分析

一、原器件清单

交通灯控制电路原器件清单

元器件名称参数数量元器件名称参数数量

IC插座单片机晶体振荡器瓷片电容发光二极管

DIP40

89C51

12MHZ

30pF

1

1

1

2

12

电阻

电解电容

弹性按键

电阻

LED数码管

12KΩ

22uF

300Ω

3

1

3

20

4

二、主电路原理

本次本次设计的交通灯控制器采用单片机最小应用系统作为控制器,由数码管显示红灯与绿灯时间,并用LED发光二极管作为红、黄、绿三色指示信号灯,且,红灯亮30S,黄灯亮5S,绿灯亮25S。其电路原

图二

二、单元电路设计: 1.单片机最小应用系统 (1)单片机89C51引脚图 89C51引脚图下图:

图三

(2)时钟电路和复位电路

单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡电路,只需要使用18、19脚连接晶体振荡器,并外用两个33PF 电容,帮助晶振起振,并使其频率稳定。其工作原理如图所示。

MCS-51系列单片机的有效复位信号为两个周期以上的高电平。其复位的实现通常可以采用开机上电复位和外部手动复位两种方式。加电瞬间RST 端的电位与VCC 相同,随着RC 电路充电电流的减小,RST 端的点位逐渐下降。只要保持10ms 以上的高电平就能使单片机有效复位。它们的工作原理图如下图:

5

4321

Y1

12M H Z

C1 10UF

C2 30P

C3 30P

+5V

R2 10K R1 200Ω

K RST

LE D

R3 560Ω

P1.0VC C P1.1P0.0P1.2P0.1P1.3P0.2P1.4P0.3P1.5P0.4P1.6P0.5P1.7P0.6RST P0.7P3.0EA^P3.1AL E P3.2PSE N^P3.3P2.7P3.4P2.6P3.5P2.5P3.6P2.4P3.7P2.3XT AL2P2.2XT AL1P2.1GND P2.0AT 89S51

2.数码管显示电路

(1)驱动电路

本文采用PN[P三极管作为驱动器驱动数码管的显示,由于每个发光二极管额定电流3-10UA,故在电路中加限流电阻,经计算取该电阻为300Ω。其显示电路如图五:

图五

(2)数码管显示方式

因此根据数码管的驱动方式不同,可以分为静态显示和动态显示两类。

本次设计采用的是动态显示驱动,数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔段同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通有各自独立的I/O线控制,当单片机输出字型码时,所有数码管都接收到相同的字型码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,改为就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的点亮时间为1~2毫秒,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态是一样的,能够节省大量的I/O端口,而且功耗更低,

软件设计一、程序设计流程图

开始

A绿灯,B红灯

延时55秒

A绿灯闪烁三次A黄灯,B红灯

延时2秒

A红灯B绿灯

延时55秒

B绿灯闪烁三次A红灯、B黄灯延时2秒主

序流

程图

1.中断东西流程图

中断响应

关中断

保护现场

开中断

A绿灯,B红灯

延时5秒

关中断

恢复现场

开中断

返回

2.中断南北流程图

中断响应

关中断

保护现场

开中断

B绿灯,A红灯

延时5秒

关中断

恢复现场

开中断

返回

二、原程序清单

#include

#define uint unsigned int

#define uchar unsigned char

sbit dx_green=P1^0; //东西方向的绿灯

sbit dx_yellow=P1^1;//东西方向的黄灯

sbit dx_red=P1^2; //东西方向的红灯

sbit nb_green=P1^5; // 南北方向的绿灯

sbit nb_yellow=P1^6;// 南北方向的黄灯

sbit nb_red=P1^7; // 南北方向的红灯

uint count_down=30;//注意必须是char型而不能是uchar型

uchar sign;

uchar k=0,i=0;

uchar disp[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0}; uchar time[]={0,0,0,0};

uchar wei[]={0xfe,0xfd,0xf7,0xfb}; //数码管位选

void Countdown() interrupt 1 //倒计时及红绿灯控制函数

{

TH0=0x3c;

TL0=0xb0;

i++;

if(i==20)

{

i=0;

count_down--;

if(count_down<0)

{

count_down=30;

}

if(count_down>=7)

{

if(sign)//东西方绿灯亮/南北方红灯亮

{

dx_green=0;

dx_yellow=1;

dx_red=1;

nb_green=1;

nb_yellow=1;

nb_red=0;

}

else //东西方红灯亮/南北方绿灯亮

{

dx_green=1;

dx_yellow=1;

dx_red=0;

nb_green=0;

nb_yellow=1;

nb_red=1;

}

}

else if(count_down<7&&count_down>3) {

if(sign) //东西方绿灯闪烁/南北方红灯亮

{

dx_green=!dx_green;

nb_red=0;

}

else //东西方红灯亮/南北方绿灯闪烁

{

dx_red=0;

nb_green=!nb_green;

}

}

else if(count_down<=3&&count_down>=0)

{

if(sign) //东西方黄灯亮/南北方红灯亮

{

dx_green=1;

dx_yellow=0;

nb_red=0;

}

else //东西方红灯亮/南北方黄灯亮

{

dx_red=0;

nb_green=1;

nb_yellow=0;

}

}

if(count_down==0)

{

sign=!sign;

}

}

}

void time_disp() interrupt 3 //数码管显示中断函数

{

TH1=(65536-10000)/256;

TL1=(65536-10000)%256;

k++;

if(k>3)

{k=0;}

time[0]=count_down/10;

time[1]=count_down%10;

time[2]=count_down/10;

time[3]=(count_down%10)-1;

P2=wei[k];

P0=disp[time[k]];

}

void dx_key() interrupt 0

{

TR0=!TR0;

dx_green=0;

dx_red=1;

dx_yellow=1;

nb_red=0;

nb_green=1;

nb_yellow=1;

count_down=0;

}

void nb_key() interrupt 2

{

TR0=!TR0;

dx_green=1;

dx_red=0;

dx_yellow=1;

nb_red=1;

nb_green=0;

nb_yellow=1;

count_down=0;

}

void main()

{

EA=1;

ET0=1;

ET1=1;

EX0=1;

EX1=1;

IT0=1;

IT1=1;

TMOD=0x11;

TH0=0x3c;

TL0=0xb0;

TH1=(65536-10000)/256;

TL1=(65536-10000)%256;

TR0=1;

TR1=1;

while(1);

}

三、仿真测试

在程序编写完成后,运用Proteus仿真软件,进行仿真。将编好的程序下载到仿真电路图中的89C52单片机中,进行运行调试,看与设计目标是否一致如图3-1和图3-2,看设计的功能是否能够实现,如果有问题对照源程序找出问题所在并改正。

图3-1

图3-2

四、硬件的实际测试

待确认仿真现象与设计要求的功能一致且不出现错误时仿真完成。将编好调试完成的源程序下载到自己焊接好的硬件电路上进行最后的测试,看各个设计功能是否能够实现。

心得体会

短短一个星期的实训就这么过去了,时间虽短但还算是颇有心得,颇有体会!刚开始很期待这个试训的到来,想着肯定会有桃战性的工作,但结果也没让我失望,老师给了两个题,一个是定时器一个是交通灯,当时我就在思考选那个题呢,定时器工作庞大但老师会给资料,交通灯看似简单但什么都需要自己来做,定时器的程序我可能会看不懂,不好分析,而交通灯的我却可以凭着自己的实力搞定。综合各方面的原因我选择了交通灯。

接下来的任务就是忙于工作了,起先是设计电路图(根据独山大道和光武路口交叉道)。通过在图书馆和网上查询资料这一项顺利过关。然后开始核心问题,就是程序,这个是由难度的,最让我头疼的就是数码管倒计时那一块,弄了好几天都没搞定,最后才弄了一个不是太满意的程序。哎!还是没学好啊!最后就开始一系列的文字工作,每一部分都是我亲手做的,不管怎么样,我看这都有些许的成就感,都那么的温馨!

这次实训给了以下几点体会:做事要细心,要有耐心;做事要会看,会晤。总结为良心,两唔。

在以后的学习中我会更加努力,会发扬长处,补缺短处。让知识来丰富自己。

参考资料

[1] 王静霞——单片机应用技术(C语言版)北京:电子工业出版社.

[2] 蓝和慧宁武——全国大学生电子设计竞赛单片机应用技能精解北京:电子工业出版社.

[3] 彭伟——单片机C语言程序设计实训100例北京航空航天大学出版社

实验三 数码管显示实验

实验十九数码管显示实验 一、实验目的 1、了解数码管的显示原理; 2、掌握数码管显示的编程方法。 二、实验内容 1、编写数码管显示程序,循环显示0-F字符 三、实验设备 1、硬件: JX44B0实验板; PC机; JTAG仿真器; 2、软件: PC机操作系统(WINDOWS 2000); ARM Developer Suite v1.2; Multi-ICE V2.2.5(Build1319); 四、基础知识 1、掌握在ADS集成开发环境中编写和调试程序的基本过程。 2、了解ARM 应用程序的框架结构; 3、了解数码管的显示原理; 五、实验说明 1、LED显示原理 发光二极管数码显示器简称LED显示器。LED显示器具有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,目前广泛应用于各类电子设备之中。 7段LED由7个发光二极管按“日”字排列。所有发光二极管的阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。一般共阴极可以不需要外接电阻。 其中各二极管的排列如上图在共阳极接法中,如果显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。这样如果按照dp、g、fe、d、c、b、a的顺序排列的话对应的码段是:6DH。其它的字符同理可以得到。

2、数码管显示驱动 数码管的显示一般有动态显示和静态显示两大类,另外按照驱动方式又分串行驱动和并行驱动两种方式。串行驱动主要是提供串-并转换,减少控制线数量;并行驱动对每一个段提供单独的驱动,电路相对简单。这方面参看数字电路相关内容。 下面主要介绍静态显示和动态显示: 1)静态显示: LED数码管采用静态接口时,共阴极或共阳极节点连接在一起地或者接高电平。每个显示位的段选线与一个8位并行口线相连,只要在显示位上的段选位保持段码电平不变,则该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O口,也可以采用串行驱动。相应的电路如下: 很明显采用静态显示方式要求有较多的控制端(并行)或较复杂的电路(串行)。但是在设计中对器件的要求低。

实验一_用七段数码管显示简单字符--译码器及其使用 实验报告

用七段数码管显示简单字符——译码器及 其应用 实验报告 专业班级:2011级计算机1班 学号:1137030 姓名:赵艺湾 实验地点:理工楼901 实验时间:2012.9.26

实验一用七段数码管显示简单字符——译码 器及其应用 一、实验目的 1、了解显示译码器的结构和理解其工作原理。 2、学习7段数码显示译码器设计。 3、学习用基逻辑门、3-8译码器、4-1选择器控制显示器的显示。 二、实验内容 1、了解逻辑门、3-8译码器、4-1选择器的工作原理,设计基本电路,实现以下功能: C2C1C0是译码器的3个输入,用C2C1C0的不同取值来选择在七段数码管上输出不同字符。七段数码管是共阳极的。 图1 七段译码器 C2C1C0 的不同取值对应显示的字母如下: 图2 字符编码

三、实验仪器及设备: 一、PC 机 二、 Quartus Ⅱ 9.0 三、 DE2-70 四、显示器 四、实验步骤 1、列出真值表,计算要实现以上功能时数码管的0-7段对应的逻辑函数式。 真值表如下: 函数表达式如下: “0”=' 02C C + “1”=“2”=0' 1' 012C C C C C ++ “3”=(2C +1C +' 0C )(2C +0C +'1C )(2C +'1C +' 0C ) “4”=“5”=2C “6”=2C +1C +02C C 2、新建一个 quartusII 工程,用以在DE2_70平台上实现所要求的电路。 建立一个BDF 文件,基于SSI ,实现七段译码器电路,用SW3_SW1作为输入C2C1C0, DE2_70平台上的的数码管分别为HEX0~HEX7,输出接HEX1。 参照de2_70_pin_assignments.csv 中的引脚分配表配置引脚。 新建仿真文件,给出输入信号,观察输出信号是否符合要求。 编译工程,完成后下载到FPGA 中。 拨动波段开关并观察七段数码管HEX0的显示,以验证设计的功能是否正确。 基于3-8译码器和4-1选择器重复上述2.、中的步骤完成设计。

LED数码管显示实验

信息工程学院实验报告 课程名称:单片机原理及接口 实验项目名称:LED 数码管显示实验 实验时间:2016年3月11日 班级:通信141 姓名: 学号: 一、实 验 目 的: 熟悉keil 仿真软件、proteus 仿真软件、软件仿真板的使用。了解并熟悉一位数码管与 多位LED 数码管的电路结构、与单片机的连接方法及其应用原理。学习proteus 构建LED 数 码管显示电路的方法,掌握C51中单片机控制LED 数码管动态显示的原理与编程方法。 二、实 验 设 备 与 器 件 硬件:微机、单片机仿真器、单片机实验板、连线若干 软件:KEIL C51单片机仿真调试软件,proteus 系列仿真调试软件 三、实 验 原 理 LED 显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七 段LED ,这种显示器有共阴极与共阳极两种。 共阴极LED 显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发 光二极管则点亮;共阳极LED 显示器的发光二极管阳极并接。 七段LED 数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引 脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制 成 绩: 指导老师(签名): a f b e g c d dp 1 2 3 4 5 10 9 8 7 6 g f a b e d c dp (a) 共阴极 (b) 共阳极 (c) 管脚配置

发光二极管的8位字节数据称为段选码。 多位七段LED数码管与单片机连接时将所有LED的段选线并联在一起,由一个八位I/O 口控制,而位选线分别由相应的I/O口线控制。如:8位LED动态显示电路只需要两个八位I/O口。其中一个控制段选码,另一个控制位选。 由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,多位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I/O口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。 不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。 四、实验内容与步骤 1、电路图的设计。 (1)打开proteus软件,单击P,打开搜索元器件窗口,如图 1-1 所示: 图1-1 搜索元器件 (2)添加元器件AT89C51、CAP、BUTTON、LED-BLUE、RES、CRYSTAL、7SEG-MPXI1CC,修改元器件的参数,绘制电路图,如图1-2 所示:

基于单片机C语言交通灯数码管显示的设计完整版

基于单片机C语言交通灯数码管显示的设计完整版 /* P2口位控口,P0口段控口, P1口按键,P3口发光二极管*/ #include #define uchar unsigned char #define uint unsigned int /*共阳数码管字型码数组*/ /*0,1,2,3,4,5,6,7,8,9,P.,灭*/ char code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0x21,0xff}; /*共阳数码管位控码数组(从右往左点亮,反向驱动)*/ char code weikong_code[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; char find_code[8]; sbit S2=P1^0; //S1键启动交通灯控制器 sbit S3=P1^1; //S2键回归“P.”状态 sbit S4=P1^2; //S3键处理紧急状况 uchar time; void DelayX1ms(uint count) //1ms延时函数 { uint j; while(count--!=0) { for(j=0;j<80;j++); } } /*********************显示函数*****************************/ void disp() { char i; char k; for(i=0;i<8;i++) { P2=weikong_code[i]; k=find_code[i]; P0=dis_code[k]; DelayX1ms(1); } } /********************1s延时********************************/ void delay1s() { TMOD=0X01; EA=1; ET0=1; TH0=0x3C; //定时器定时50Ms

6位7段LED数码管显示实验

6位7段LED数码管显示实验 【实验要求】1)初始化时,使6位LED均显示8,显示时间为1s。2)从第一个LED开始,从0显示到9,0.5s刷新一次。直到最后一个LED。【实验目的】1)熟悉并进一步掌握定时器中断的使用和时基信号的使用。2)进一步巩固I/O口的使用方法。3)了解6位7段LED数码管的使用。【实验设备】1)装有u’nsp IDE仿真环境的PC机一台。2)μ’nSP?十六位单片机实验箱一个。【实验原理】通过对I/O口的控制,初始化时点亮所有的数码管,即6位LED数码管均显示8。1s 后,从第一位数码管开始从0显示到9,刷新时间为0.5s。直到最后一个数码管。1s的时间使用定时器A (FIQ);0.5s的时间使用2HZ的时基信号(IRQ5)。【硬件连接图】A0—A6 接A---G A8—A13 接CS1—CS6 B0—B7 接KEY 【实验步骤】⑴按硬件电路原理图进行连接。⑵画程序流程图。⑶编写程序。⑷调试程序。⑸结合硬件调试,实现最终功能。【主程序流程图】 广告灯设计(利用取表方式) 桂林电子工业学院孙安青 https://www.360docs.net/doc/221736728.html, 1.实验任务 利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。 2.电路原理图 3.系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L 1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。 4.程序设计内容 在用表格进行程序设计的时候,要用以下的指令来完成 (1).利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。 (2).利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。 因此,只要把控制码建成一个表,而利用MOVC工,@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如下图所示:

微机原理课设带数码管显示的交通灯模拟控制系统设计

南京工程学院Array课程设计说明书(论文) 题目带数码管显示的交通灯模拟控制系统设计 课程名称微机原理及应用 院系 专业 班级 学生姓名 学号 设计地点 指导教师 设计起止时间:2013年12月23日至2017年12月27日 目录 一、方案说明 (2) 1、硬件设计 (2) 1.1、硬件接线图 (2)

1.2、主机接线说明 (3) 2、软件设计 (3) 2.1、程序流程图 (4) 二.源程序清单 (5) 三、调试现象 (10) 四、心得体会 (12)

一、设计说明 硬件方面:8253产生1HZ的方波,脉冲到8259的IR1端,产生中断,调中断服务子程序。在加入紧急车道后,单脉冲()连到8259的IRO端,产生一个高级的中断请求信号。 软件方面:主程序先对各个硬件初始化,在开CPU中断,然后空操作,等待中断。执行低级中断(IR1)时,8255的PA口负责选数码管,PB口负责显示数字,用查表法可查到0~9的数码管编码。 采用循环扫描方法,人眼即可看到连续的二位数。当倒计时减到零时,对红绿灯取反。若

手动上下拨动单脉冲()一次,则产生一个高级中断(IR0),程序转而执行此中断处理程序,处理完后返回继续执行低级中断(IR1)。 1、硬件设计 1.1、硬件接线图 1.2连线说明: C5区:CS、A0、A1————A3区:CS3、A0、A1

C5区:OUT0————C5区:CLK1 C5区:GATE0、GATE1————C1区:VCC C5区:CLK0————B2区:2M C5区:OUT1————B3区:IR1 B3区:CS、A0————A3区:CS2、A0 B3区:INT、INTA————ES8688:INTR、INTA B3区:IR0————B2区:单脉冲() B4区:CS、A0、A1————A3区:CS1、A0、A1 B4区:PA口、PB口————G5区:C口、B口B4区:PC口———— G6区:JP65(LED灯) 1.3实物连线图 2、软件设计

单片机实验——数码管显示

单片机实验——数码管显示

数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输

入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图

发送数据 二、数码管动态显示 1、电路图

图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R

排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数

实验一 七段数码显示译码器

实验一七段数码显示译码器 一、实验目的 1.学会的破解quartusII方法并破解机房电脑。 2.掌握七段数码管显示的工作原理并能够用verilog语言编程。 3.初步了解quartusII建立程序编译、仿真及下载的操作流程并学会七段数码显示译码器的 Verilog硬件设计。 二、实验原理 7段数码管是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能做十进制BCD译码,然而数字系统中的处理和运算都是二进制,所以输出表达都是十六进制的,为了满足十六进制数的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。本实验中的7段译码管输出信号LED7S的7位分别接数码管的7个段,高位在左,低位在右 三、实验内容 1、实现BCD/七段显示译码器的“ Verilog ”语言设计。 说明:7段显示译码器的输入为:IN0…IN3共4根, 7段译码器的逻辑表,同学自行设计,要求实现功能为:输入“ 0…15 ”(二进制)输出“ 0…9…F ”(显示数码),输出结果应在数码管(共阴)上显示出来。 2、使用工具为译码器建立一个元件符号 3、设计仿真文件,进行验证。 4、编程下载并在实验箱上进行验证。 四、实验步骤 第一步破解quartusII 1.在安装目录找到本机中关于quartusII的证书文件 2.运行未破解的quartusII,在【tools】>【license setup】路径下的倒数第三行中找到本机 网卡号并复制; 3.以记事本方式打开证书文件,在编辑替换中将证书文件中host id后面的号码替换为上一 步复制的内容,保存退出; 4.在quartusII中打开【tools】>【license setup】中找到证书所在路径并打开单击ok即完成 破解。 证书所在目录license setup选项

实验四八位七段数码管动态显示电路的设计

八位七段数码管动态显示电路的设计 一、实验目的 1、了解数码管的工作原理。 2、学习七段数码管显示译码器的设计。 3、学习VHDL的CASE语句及多层次设计方法。 二、实验原理 七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-4-1所示。 图4-1 静态七段数码管 由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 三、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1024HZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。 四、实验步骤 1、打开QUARTUSII软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。 3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光 盘中提供的示例程序。 4、编写完VHDL程序后,保存起来。方法同实验一。

5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。 6、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译 一次,以使管脚分配生效。 7、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。 如果是调用的本书提供的VHDL代码,则实验连线如下: CLK:FPGA时钟信号,接数字时钟CLOCK3,并将这组时钟设为1024HZ。 KEY[3..0]:数码管显示输入信号,分别接拨动开关的S4,S3,S2,S1。 LEDAG[6..0]:数码管显示信号,接数码管的G、F、E、D、C、B、A。 SEL[2..0]:数码管的位选信号,接数码管的SEL2、SEL1、SEL0。 8、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与 自己的编程思想一致。 五、实验现象与结果 以设计的参考示例为例,当设计文件加载到目标器件后,将数字信号源模块的时钟选择为1464HZ,拨动四位拨动开关,使其为一个数值,则八个数码管均显示拨动开关所表示的十六进制的值。

数码管显示倒计时时间的交通灯控制设计

第1章总体设计方案 1.1.设计思路 课程设计的目的 (1).进一步熟悉和掌握单片机的结构及工作原理。 (2).掌握单片机的接口技术及相关外围芯片的外特性,控制方法。 (3).通过课程设计,掌握以单片机核心的电路设计的基本方法和技术。 (4).通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。 (5).通过完成一个包括电路设计和程序开发的完整过程,了解开发一单片机应用系统的全过程,为今后从事相应开发打下基础。 设计任务和内容 1设计任务 单片机采用用AT89C51芯片,使用LED(红,黄,绿)代表各个路口的交通灯,用8段数码管对转换时间进行倒时(东西路口,南北路口各10秒,黄灯时间3秒)。 2设计内容 (1)设计并绘制硬件电路图。 (2)编写程序并将调试好的程序在proteus软件中仿真 。 3方案设计与论证 显示界面方案 该系统要求完成倒计时、状态灯等功能。按照任务要求采用数码管和MAX7219驱动芯片 设计方框图 整个设计以AT89C51单片机为核心,由数码管显示,LED数码管显示,MAX驱动芯片。 硬件模块入图2-1。

4交通管理的方案论证 东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。指示灯燃亮的方案如表2。 表2说明: (1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯, 此道车辆通过,行人禁止通行。时间为5秒。 (2)黄灯5秒,警示车辆和行人红、绿灯的状态即将切换。 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过, 行人通行。时间为5秒。 (4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全 畅通的通行。 5芯片简介 1)AT89C51单片机简介 AT89C51单片机 LED 数码管显示 LED 红绿灯 MAX 驱动芯片

拨码开关输入数码管显示实验

综合课程设计实验报告 班级: 姓名: 学号:11 指导老师:

实验名称: 拨码开关输入数码管显示实验 实验要求: 1. 掌握数码管显示原理 2. 掌握拨码开关工作原理 3. 通过FPGA用拨码开关控制数码管显示 实验目标: 4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。 实验设计软件 Quartus II 实验原理 1.数码管显示模块 电路原理图:

如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。 2.拨码开关模块 电路原理图: 拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。 程序代码 module bomakaiguan(out,key_in,clk); assign p='b1111; output[7:0] out=8'b; input[7:0] key_in; input clk; reg[7:0] out; always @(posedge clk) begin case(key_in) 8'b: out=8'b;

八段数码管显示实验

八段数码管显示实验报告 一.设计目的 1.掌握数码管动态显示的原理; 2.学会用总线方式控制数码管显示; 3.熟悉利用单片机驱动数码管的电路及编程原理。 二.设计内容 利用实验箱提供的显示电路,设计一个能够动态显示一行数据的系统。实验箱一般提供了6位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。能够正常显示数据之后,请改变一下数字的变化速度或者LED显示的方向。 三.实验原理 1.原理:当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O方式驱动八段显示管时,请将开关拨到“外驱”位置。 本实验仪提供了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。 七段数码管的字型代码表如下表:

2. 3.程序 OUTBIT equ 08002h ; 位控制口

OUTSEG equ 08004h ; 段控制口 IN equ 08001h ; 键盘读入口 LEDBuf equ 60h ; 显示缓冲 Num equ 70h ; 显示的数据 DelayT equ 75h ; ljmp Start LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop: mov dptr, #OUTBIT mov a, #0 movx @dptr, a ; 关所有八段管 mov a, @r0 mov dptr, #OUTSEG movx @dptr,a

单片机的交通灯显示系统

单片机课程设计 基于单片机的交通灯显示系统 交通灯是日常生活中常见的自动控制产品,人们的日常出行及人身安全等都与交通灯有着密切的联系。本文提出一种基于单片机的交通灯设计,系统包含三个功能模块: (1)交通灯LED显示模块,实时显示东西、南北两个路口红、黄、绿三种灯的状态; (2)定时器模块,中断计算绿灯剩余时间; (3)独立按键模块,分为紧急制动按钮和夜间模式按钮两个按钮; (4)LCD液晶显示模块,显示绿灯亮的剩余时间 系统结构如下图所示: 关键词:定时器;液晶显示;独立按键

山东经济学院课程设计 目录 摘要...................................................................................................... 错误!未定义书签。引言. (1) 1.交通灯的概述 (2) 1.1交通灯的结构 (2) 1.2 工作原理 (3) 1.3功能应用 (3) 1.4工作流程 (4) 2 交通灯显示系统组成 (5) 2.1 定时器TR1模块的选择与设计 (5) 2.2 LCD液晶显示模块的选择与设计 (5) 2.3独立按键模块的选择与设计 (7) 2.4LED模块的选择与设计 (8) 3 实验结果演示 (9) 结论 (10) 参考文献.................................................................................................. 错误!未定义书签。附录.. (11) 1.原件明细表 (11) 2.源程序清单 (11) 致谢 (17)

七段数码管显示实验

单片机实验报告

实验九七段数码管显示实验 一、实验目的 1.学习七段数码管的工作原理; 2.学习数码管与8051单片机的接口方法; 3.掌握动态扫描显示技术。 二、实验原理 如图4.9-1所示,LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮 共阴极接法共阳极接法 图4.9-1 暗的不同组合,可以显示多种数字、字母以及其它符号。LED数码管中的发光二极管共有两种连接方法: 1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。实验中使用的LED显示器为共阴极接法 2)共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。 为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp 8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7,则用共阴极LED数码管显示十六进制数时所需的字形代码如表4.9-1所示。

表4.9-1 共阴极LED 数码管字形代码 字型 共阴极字形代码 字型 共阴极字形代码 字型 共阴极字形 代码 0 3FH 6 7DH C 39H 1 06H 7 07H d 5EH 2 5BH 8 7FH E 79H 3 4FH 9 6FH F 71H 4 66H A 77H 灭 00H 5 6DH b 7CH *实际上试验中使用的是共阳极数码管,这里就不一一列出。 2、动态显示 按图4.9-2(b )连接线路,通过交替选中LED1和LED0循环显示两位十进制数。七段数码管段码连接不变,位码驱动输入端S1、S0接8255A C 口的PC1、PC0,通过C 口的这两位交替输出1和0,以便交替选中LED1和LED0,从而实现两位十进制数的交替显示。请编程实现在两个LED 数码管上循环显示00 99,程序流程图如图4.9-3(b)所示。 (a) 静态显示程序流程图 (b) 动态显示程序流程图 图4.9-3 十位数的段码至A 口 个位数的段码至A 口 开始 开始 返回DOS 返回DOS 延时并修改要显示的数字

带数码管显示交通灯

带数码管显示的交通灯 大 型 作 业 实 习 报 告 系别:电子工程系 班级:应用电子0901 学号:0503090136 姓名:邵景荣 指导老师:刘彦华

前言 当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。而计算机技术怎样与实际应用更有效地结合并有效地发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。交通信号灯的出现,是交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。随着中国加入WTO,我们不但要在经济、文化、科技等各方面与国际接轨,在交通控制方面也应与国际接轨。俗话说“要想富,先修路”,但路修好了如果在交通控制方面做不好道路还是无法保障畅通安全。作为交通控制的重要组成部分的交通信号灯也应国际化,随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。 交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现在城市交通监控指挥系统中最重要的组成部分。 随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效的改善了交通情况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路的交通状况必然受高速道路与普通道路耦合处交通情况的制约。 所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。 本文主要从单片机的应用上来实现十字路口交通灯智能化的管理,用以控制过往车辆的正常运作。这次设计的主要任务是设计一个单片机控制的交通灯控制系统的设计。首先设计出各个功能模块、在搭建出完整的硬件系统,选好合适的单片机型号并依照硬件链接图设计出相应的软件系统,通过编译软件编译出可执行的目标文件,最后做出原理图并在仿真软件上仿真出设计结果。

BCD七段显示译码器

BCD七段显示译码器 1.什么是BCD码? 2.理解二进制?十进制?十六进制? BCD码(Binary-Coded Decimal?)也称二进码十进数或二-十进制代码。用4位二进制数来表示1位十进制数中的0~9这10个数码。是一种二进制的数字编码形式,用二进制编码的十进制代码。BCD码这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。这种编码技巧最常用于会计系统的设计里,因为会计制度经常需要对很长的数字串作准确的计算。相对于一般的浮点式记数法,采用BCD码,既可保存数值的精确度,又可免却使电脑作浮点运算时所耗费的时间。此外,对于其他需要高精确度的计算,BCD编码亦很常用。 发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成0-9字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。只要按规律控制各发光段的亮、灭,就可以显示各种字形或符号。 LED数码管有共阳、共阴之分。图 (a)是共阴式LED数码管的原理图,图 (b)是其表示符号。使用时,公共阴极接地,7个阳极a~g由相应的BCD七段译码器来驱动(控制),如图 (c)所示。 数字显示译码器

BCD七段译码器的输入是一位BCD码(以D、C、B、A表示),输出是数码管各段的驱动信号(以Fa~Fg表示),也称4—7译码器。若用它驱动共阴LED数码管,则输出应为高有效,即输出为高(1)时,相应显示段发光。例如,当输入8421码DCBA=0100时,应显示,即要求同时点亮b、c、f、g段,熄灭a、d、e 段,故译码器的输出应为Fa~Fg=0110011,这也是一组代码,常称为段码。同理,根据组成0~9这10个字形的要求可以列出8421BCD七段译码器的真值表,见表4 - 12(未用码组省略)。 BCD七段译码器就是根据上述原理组成的,只是为了使用方便,增加了一些辅助控制电路。这类集成译码器产品很多,类型各异,它们的输出结构也各不相同,因而使用时要予以注意。图(c)是BCD七段译码器驱动LED数码管(共阴)的接法。

七段数码管循环显示

(封面) 天津理工大学中环信息学院 电子技术课程设计 设计题目:七段数码管循环显示控制电路设计 姓名:诸钦峰学号: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 七段数码管显示的基本方框图

7段数码管实验报告

EDA 实验报告 实验名称: 7段数码管控制接口学院:信息工程学院 专业: 11级电子信息工程2班年级、班: 2009级2班 学生姓名:王璐 指导教师:郭华 2014 年 6 月24 日

7段数码管控制接口 一、实验要求。 用设计一个共阴7 段数码管控制接口,要求:在时钟信号的控制下,使 6 位数码管动态刷新显示0—F,其中位选信号为8-3 编码器编码输出。 二、实验内容。 在实验仪器中,8 位7 段数码显示的驱动电路已经做好,并且其位选信(SEL[7..0])为一3-8 译码器的输出,所以我们在设计7 段数码管控制接口时,其位选信号输出必须经8-3编码。 显示控制器的引脚图如图40-1: 图1 图中CP 为时钟输入端,SEGOUT[7..0]为段驱动输出;SELOUT[2..0]为位选信号输出;NUMOUT[3..0]为当前显示的数据输出。 图40-2 7段显示控制器仿真波形图 从图40-2可以看出,6位数码管是轮流点亮的,我们以NUMOUT=1 这段波形为参考:当SELOUT为000时,点亮第一位显示器,显示的数字为1,同时,NUMOUT 输出的数据也为“0001”。同理,当SELOUT 为001 时,点亮第二位显示器,显示数字为1,直到 6 位显示器全都显示完毕,等待进入下一个数字的显示。 同时,还有一个问题不可忽视,位扫描信号的频率至少需要多少以上,才能使显示器不闪烁?简单的说,只要扫描频率超过眼睛的视觉暂留频率24HZ以上就可以达到点亮单个显示,却能享有6个同时显示的视觉效果,而且显示也不闪烁。当我们输入频率为5MHZ时,我们通过加法计数器来产生一个约300HZ 的信号,并且由它来产生位选信号,请参考下面程序段:

基于单片机C语言交通灯数码管显示的设计完整版

基于单片机C语言交通灯数码管显示的设计完整版

基于单片机C语言交通灯数码管显示的设计完整版/* P2口位控口,P0口段控口, P1口按键,P3口发光二极管*/ #include #define uchar unsigned char #define uint unsigned int /*共阳数码管字型码数组*/ /*0,1,2,3,4,5,6,7,8,9,P.,灭*/ char code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8 ,0x80,0x90,0xbf,0x21,0xff}; /*共阳数码管位控码数组(从右往左点亮,反向驱动)*/ char code weikong_code[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf, 0x7f}; char find_code[8]; sbit S2=P1^0; //S1键启动交通灯控制器 sbit S3=P1^1; //S2键回归“P.”状态 sbit S4=P1^2; //S3键处理紧急状况

uchar time; void DelayX1ms(uint count) //1ms延时函数{ uint j; while(count--!=0) { for(j=0;j<80;j++); } } /*********************显示函数*****************************/ void disp() { char i; char k; for(i=0;i<8;i++) { P2=weikong_code[i]; k=find_code[i]; P0=dis_code[k]; DelayX1ms(1); }

数码管显示实验报告

三、数码管显示实验 一、实验目的及要求 理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管J3641AS通过DP1668与CPU的接线图。 理解8段数码管原理,运行与理解各子程序,编制一个4连排8段数码管程序,CPU 的P2口接左、右两个DP1668的控制引脚,各DP1668接LED的数据线hgfedcba,在4 连排8段数码管显示编程的日期。 熟悉结构后,自行编程左边四个数码管,显示分钟和秒,当计时达到一个小时,就重新从00:00开始计时。另外,指定计时的开始值。 二、实验原理(图) 8段数码管一般由8个发光二极管(Llight-emitting diode,LED)组成,每一个位段就是一个发光二极管。一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)组成。根据公共端所接电平的高低,可分为共阳极和共阴极两种。 三、实验设备(环境): 1、电脑一台 2、STC-ISP(V6.85I)烧写应用程序 3、Keil应用程序 四、实验内容(算法、程序、步骤和方法): #include //此文件中定义了STC15系列的一些特殊功能寄存器 #include"intrins.h" #define uchar unsigned char #define uint unsigned int

sbit TM1668R_DIO_H = P4^4; //左边数码管宏定义 sbit TM1668R_CLK_H = P2^0; sbit TM1668R_STB_H = P2^1; sbit TM1668L_DIO_H = P2^2; //左边数码管宏定义 sbit TM1668L_CLK_H = P2^3; sbit TM1668L_STB_H = P2^4; sbit LIGHT = P0^1; uchar Today_data[8]; uint temp,kk; const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void Send_Data(uchar dat,uchar n); void DIS_data_1668(uchar data1,uchar data2,uchar data3,uchar data4,uchar n); /****************************************************************************** * * 函数名: Send_Data * 函数功能: TM1668发送一字节数据函数 * 输入: 无 * 输出: 无 ******************************************************************************/ void Send_Data(uchar dat,uchar n) { uchar i; for(i = 0;i<8;i++) //1个字节 { if(n==0) TM1668R_CLK_H = 0; else TM1668L_CLK_H = 0; if(dat&(1<

相关文档
最新文档