数电实验实验报告
更新时间:2023-10-30 23:19:01 阅读量: 综合文库 文档下载
数电实验报告
一、实验目的
1、 了解交通灯的状态转换规律,学会用硬件描述语言来建立交通灯的模块。 2、 利用该软件进行可编程逻辑器件设计,完成交通灯的逻辑仿真功能。
3、 使用编译器将设计实现,下载到JDEE—10 实验箱上进行调试和验证所设计的十字
路口交通管理信号灯的功能。
二、实验设计
实验的主要任务是模拟十字路口信号灯的工作原理。信号灯工作主要分为以下几部分: 1、 时钟部分
利用硬件提供的4MHz晶振,经过21次分频后得到1Hz的信号源。
2、 计数部分
利用时钟产生的1Hz的信号,通过一个模为24的计数器即可实现每一盏红绿灯的24秒的循环状态。
计数器采用软件提供的计数器,模为24,其中有一个异步清零端,主要用途是为了实现拓展4,利用计数器的清零从而实现整个过程的清零,该清零端接在一个微动开关上,利用开启开关时产生的一个脉冲信号,使计数器异步清零。 3、 主红绿灯的控制部分
利用计数器提供的状态信息,每一个状态(即每一秒)对应一个数码管显示的信息。所以,该模块输入即为计数线,输出有数码管十位和个位的显示数字,以及确定数码管是否亮灯的信息(亮灯则输出高电平)。
该模块的源文件:
SUBDESIGN main ( incount[4..0]: INPUT; %模为24的1Hz的计数器% out1[3..0]: OUTPUT; %十位% out2[3..0]: OUTPUT; %个位%
digselect: OUTPUT; %确定是否在数码管上显示% ) begin table
incount[4..0] => out1[3..0], out2[3..0], digselect; h\h\h\h\h\h\h\h\
h\h\h\
h\h\
h\h\h\h\h\h\h\h\h\h\h\end table; end;
4、 主红绿灯点阵显示控制部分
由于需要实现扩展1,所以需要用到点阵,点阵的控制原理与数码管大致相同,即每一个状态(每一秒)对应一个亮灯信息(是否亮灯及亮什么颜色的灯)。所以,该模块输入为计数线和时间控制线(主要实现扩展3,功能将在下面介绍),点阵形状控制线(确定点阵上的形状),输出为对应点阵的红色及绿色借口。
当时间控制线为1,即白天,则每一秒对应亮灯信息,即绿灯先亮8秒,绿灯闪烁3秒,黄灯(即红绿一起点亮)亮2秒,红灯亮11秒。
该模块的源文件:
SUBDESIGN display_main ( time_control: INPUT; %1=normal,0=night% incount[4..0]: INPUT; %1Hz的计数器% color[8..1]: INPUT; %确定点阵显示形状% dataout_red1[8..1]: OUTPUT; %红色启动点阵1% dataout_green1[8..1]: OUTPUT; %绿色启动点阵1% ) begin
if time_control==1 then
case incount[] is
when h\
dataout_green1[]=color[8..1]; %green flash%
when h\when h\when h\when h\when h\when h\when h\when h\tringle%
when h\when h\when h\dataout_green1[]=color[8..1]; %yellow flash%
when h\dataout_green1[]=color[8..1];
when h\dataout_green1[]=h\
when h\when h\when h\when h\when h\when h\when h\when h\when h\when h\end case; end if;
if time_control==0 then if incount[0] then dataout_red1[]=color[8..1]; dataout_green1[]=color[8..1];
else dataout_red1[]=h\end if; end if; end;
5、 白天黑夜控制部分
为了实现扩展3,需要增加这个模块。该模块的目的主要是产生时间信息,当时间在7点到21点时,确保红绿灯正常工作;当时间在22点到6点时,控制点阵显示为闪烁黄灯(对于数码管,由于在夜间其没有作用,故忽略对其在夜间的控制)。所以,该模块输入为时间线(该时间线不同于上面的由1Hz的信号产生,而是可以由微动开关控制,以实现题目的要求。当点击一次微动开关时,则触发模为24的计数器计数一次),输出为时间控制线(正常输出1,黑夜输出0),以及提供显示在数码管上的信息(包括显示时间的十位和个位数字)。
该模块的源文件:
SUBDESIGN normal_or_night ( time_count[4..0]:INPUT; %模为24的可自己控制的计数器% time_control: OUTPUT; %控制正常或者夜晚模式1=normal0=night% out5[3..0]: OUTPUT; %十位% out6[3..0]: OUTPUT; %个位% ) begin table
time_count[4..0] => out5[3..0], out6[3..0], time_control; h\h\h\h\h\h\h\h\h\h\
h\h\h\h\h\h\h\h\h\h\h\h\h\h\end table; end;
6、 数码管选择部分
该部分内容为基本功能,由于显示的时间包括主灯的秒数、副灯的秒数、小时数共6个,所以不能直接用一个方波信号确定显示哪一位,需要将4MHz晶振加在模为6的计数器,产生6个不同的状态,每种状态对应1个数码管的显示,由于频率极高,所以依次显示在人眼看来就是正常的一次显示6个数字。另外,由于黄灯时数码管不显示,所以也需要考虑这个输入。所以,输入有主副两个灯的亮灯信息、模为6的计数器,主副亮灯的个十位显示数字,以及小时数的个十位显示数字。
该模块的源文件:
SUBDESIGN digselector ( digselect1: INPUT; %确认第1个数字是否显示在数码管% digselect2: INPUT; %确认第2个数字是否显示在数码管% count_6[2..0]: INPUT; %模为6的4MHz计数器% digin1[3..0]: INPUT; %第1个数十位% digin2[3..0]: INPUT; %第1个数个位% digin3[3..0]: INPUT; %第2个数十位% digin4[3..0]: INPUT; %第2个数各位% digin5[3..0]: INPUT; %时间数字十位%
正在阅读:
数电实验实验报告10-30
台湾洪国晟——台湾期权交易策略经验分享06-02
上兵伐谋:从《孙子兵法》看企业营销03-08
邻里中心专题研究报告4.2606-01
教育部基础教育资源中心函件08-19
“十三五”重点项目-无纺布西服套项目可行性研究报告 - 图文09-25
边坡稳定性分析方法综述09-09
重点单位建筑消防设施维护保养报告备案表05-10
浅析新时期医院工会管理制度创新03-12
- 5.按章行路才安全
- 英美口语俚语&习惯用法汇集
- 《狐狸和乌鸦》教学设计(苏教版) -
- 刑法简答题及其论述题
- 期中测试卷2018-2019最新人教版部编版小学语文四年级上册期中测试卷含参考答案(精编版)
- 《归去来兮辞》理解性默写(含答案)可直接打印
- 病毒式营销
- 渤海公司与金世纪公司、宝玉公司、宝玉集团建设工程施工合同纠纷案
- 微机原理试题库及答案2013N修改版 - 图文
- 2016年小升初语文试卷及答案(精品四套)
- 氯化物测定方法
- 广西鲜湿米粉生产许可审查细则(0523)
- 高一上期必修一综合练习题讲义
- 001-小微金融运营及团队管理课后测试
- 《骆驼祥子》练习题及答案(知识点最全)
- 青岛版四年级上册科学 每课一练
- 品牌培育管理体系第一部分实施指南
- 商人过河的数学模型及编程解决
- 119消防指挥中心可研报告
- 209 饮用水水表卫生安全评价规范