数码管动态显示EDA实验三
- 格式:doc
- 大小:1.61 MB
- 文档页数:9
一、实验目的1. 掌握动态数码显示的原理及实现方法;2. 熟悉单片机与数码管之间的接口连接;3. 学会使用C语言编写程序,实现数码管的动态显示;4. 提高对单片机硬件电路和编程的实践能力。
二、实验原理动态数码显示技术是通过减少段选线,分别控制位选线,交替显示各个数码管上的数字,同时确保在人眼无法分辨的时间间隔内刷新,通常不超过24ms。
这样,多个数码管可以共享段选线,从而降低硬件成本。
三、实验设备1. 单片机实验箱一台;2. 共阴极数码管8个;3. 74HC138译码器一个;4. 电阻若干;5. 连接线若干;6. 编程软件Keil uVision;7. 仿真软件Proteus。
四、实验步骤1. 设计电路图:根据实验要求,设计动态数码显示电路图,包括单片机、数码管、译码器等元件的连接方式。
2. 连接电路:按照电路图,将单片机、数码管、译码器等元件连接到实验箱上。
3. 编写程序:使用Keil uVision编写程序,实现数码管的动态显示。
主要步骤如下:(1)定义数码管段码表:根据数码管共阴极特性,定义0-9数字对应的段码。
(2)编写延时函数:实现动态显示的刷新间隔,通常不超过24ms。
(3)编写显示函数:实现逐位显示数字,包括位选和段选控制。
(4)编写主函数:实现循环调用显示函数,实现动态显示效果。
4. 仿真测试:使用Proteus软件对程序进行仿真,观察数码管动态显示效果。
5. 硬件调试:将程序烧写到单片机,连接实物电路,观察数码管动态显示效果。
五、实验结果与分析1. 实验结果:通过仿真和硬件调试,成功实现数码管的动态显示,数字0-9循环显示。
2. 结果分析:(1)动态显示效果:数码管动态显示效果良好,数字清晰,无闪烁现象。
(2)程序优化:在编写程序过程中,对延时函数和显示函数进行了优化,提高了程序运行效率。
(3)硬件连接:电路连接正确,元件性能良好,保证了实验的顺利进行。
六、实验总结本次实验成功实现了动态数码显示,掌握了动态数码显示的原理和实现方法。
试验四数码管动态显示试验一一、试验要求1.在Proteus软件中画好51单片机最小关键电路, 包含复位电路和晶振电路2.在电路中增加四个7段数码管(共阳/共阴自选),将P1口作数据输出口与7段数码管数据引脚相连 , P2.0~P2.3引脚输出选控制信号3.在Keil软件中编写程序,采取动态显示法,实现数码管分别显示数字1, 2, 3, 4二、试验目1.巩固Proteus软件和Keil软件使用方法2.学习端口输入输出高级应用3.掌握7段数码管连接方法和动态显示法4.掌握查表程序和延时等子程序设计三.试验说明本试验是将单片机P1口做为输出口, 将四个数码管七段引脚分别接到P1.0至P1.7。
因为电路中采取共阳极数码管, 所以当P1端口对应引脚为0时, 对应数码管段点亮。
程序中预设了数字0-9段码。
因为是让四个数码管显示不一样数值, 所以要用扫描方法来实现。
所以定义了scan函数, 接到单片机p2.0至p2.3在试验中, 预设数字段码表存放在数组TAB中, 因为段码表是固定, 所以存放类型可设为code。
在Proteus软件中根据要求画出电路, 再利用Keil软件按需要实现功效编写c程序, 生成Hex文件, 把Hex文件导到Proteus软件中进行仿真。
为了能够愈加好验证试验要求, 在编写程序时需要延时0.5s, 能让人眼愈加好分辨; 89C51一个机器周期包含12个时钟脉冲, 而我们采取是12MHz晶振, 每一个时钟脉冲时间是1/12us, 所以一个机器周期为1us。
在keil程序中, 子函数实现是用void delay_ms(int x), 其中x为1时是代表1ms。
四、硬件原理图及程序设计(一)硬件原理图设计电路中P1.0到P1.7为数码管七段端口控制口, 排阻RP1阻值为220Ω, p2.0到p2.3为数码管扫描信号。
AT89c51单片机9脚(RST)为复位引脚, 当RST为高电平时间达成2个机器周期时系统就会被复位; 31引脚(EA)为存取外部存放器使能引脚, 当EA为高电平是使用单片机内部存放器, 当EA为低电平时单片机则使用外部存放器。
竭诚为您提供优质的服务,优质的文档,谢谢阅读/双击去除[宇宙与人观后感]宇宙与人观后感3000字《宇宙与人》是由忻迎一导演的科教电影;也是他所著的一本书籍,于20XX年湖北少儿出版社出版。
下面是小编给大家整理的宇宙与人观后感,供大家参阅!宇宙与人观后感篇1在前几天的一节马哲课上,我们观看了一部非常有教育意义的科普片《宇宙与人》。
电影中详细的介绍了人类的起源:人类是从宇宙中的核子结构产生核聚变,形成了基因,基因也是一切生命的起源,我们人类就是由基因组成的。
既然是宇宙给了我们生命,是小小核子给了我们生命。
我们应该感谢它们,应该让它们继续去创造比我们更伟大的生命。
也许保护宇宙是我们力所不能及的事情,但是,保护地球是我们应该做的,是我们能够做的,更是我们必须做的。
科学家已经证实:白色垃圾是不能被大自然所分解的。
所谓白色垃圾就是泡沫、塑料制品等。
而这些白色垃圾在我们的日常生活中是能够经常看到的,比如:在某个巷子里,几个人推着车子买盒饭,那些饭盒就是白色垃圾。
再比如:在商场里买东西,或在菜市场买菜他们总会给你一个塑料袋,塑料袋也是白色垃圾。
象这样的例子还有很多很多……在生活中既然有很多白色垃圾的存在,那么,为什么我们不采取保护措施呢?作为一个泱泱大国,我们的环保为什么还远没有一些比我们小得多的国家做的好呢?在芬兰,商场买东西不会给你塑料袋,为了环保;在意大利,铝和塑料的再造可以节省能源、钢和纸的再加工可节省能源、玻璃的再生产可节省能源;在日本,每天都有白色垃圾处理车,收集各大商场,零售店的泡沫塑料等白色垃圾在车内处理,他们把橘子汁烧到一定温度,把白色垃圾弄成象铁一样的东西,再经过特殊的处理,变成了纤维,又把纤维经过纺织,织成一件衣服,拿到市场上去卖,这样废品再利用了,并且没有给大自然带来一点污染。
这些方法,不是都很好吗?这些方法,极大的保护了环境,甚至,有的还可以赢利。
而中国呢?目前国内城市垃圾处理主要采用填埋法、堆肥法、、焚烧法极少,由于我国城市生活垃圾治理工作开展较晚,全国垃圾无害化处理设施严重不足,只有少数城市借助国际援助建成一些达到无害化处理标准的现代化垃圾处理设施。
实验名称八位七段数码管动态显示电路的设计一、实验目的1、了解数码管的工作原理。
2、学习七段数码管显示译码器的设计。
3、学习Verilog的CASE语句及多层次设计方法。
二、实验原理七段数码管是电子开发过程中常用的输出显示设备。
在实验系统中使用的是两个四位一体、共阴极型七段数码管。
其单个静态数码管如下图4-1所示。
图4-1 静态七段数码管由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。
反之则不亮。
共阳极性的数码管与之相么。
四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。
八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。
三、实验内容本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。
在实验中时,数字时钟选择1KHZ作为扫描时钟,用四个开关做为输入,当四个开关置为一个二进制数时,在数码管上显示其十六进制的值。
实验箱中的拨动开关与FPGA的接口电路,以及开关FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。
数码管显示模块的电路原理如图4-2所示,表4-1是其数码管的输入与FPGA的管脚连接表。
图4-2 数字时钟信号模块电路原理信号名称对应FPGA管脚名说明7SEG-A G6 七段码管A段输入信号7SEG-B G7 七段码管B段输入信号7SEG-C H3 七段码管C段输入信号7SEG-D H4 七段码管D段输入信号7SEG-E H5 七段码管E段输入信号7SEG-F H6 七段码管F段输入信号7SEG-G J4 七段码管G段输入信号7SEG-DP L8 七段码管dp段输入信号7SEG-SEL0 G5 七段码管位选输入信号7SEG-SEL1 G3 七段码管位选输入信号7SEG-SEL2 F4 七段码管位选输入信号表4-1 数码管与FPGA的管脚连接表四、实验步骤1、打开QUARTUSII软件,新建一个工程。
单片机数码管动态显示实验报告单片机数码管动态显示实验程序(汇编)单片机数码管动态显示实验程序org 00hajmp headorg 0030hhead:mov sp,#0070hnum equ p0 ;p0口连接数码管reset:mov dptr ,#tabmov r0,#4sh:acall show_tabcall dptr_adddjnz r0,shmov r0 ,#4sjmp resetdptr_add:inc dptrinc dptrinc dptrinc dptrrettab :db0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH;;;;;;;;;;;;;;;;;;;;; 函数的功能是用来动态显示dptr上的四个数据 ;;;;;;;;;;;;;;;;;;;;;; show_tab:clr amov r2,#0mov r3,#148mov p2,#238loop:movc a,@a+dptrmov num ,aacall delay_5msinc r2mov a,r2;调用片选函数前注意A的变化acall select_movcjne r2,#4,loopmov r2,#0clr adjnz R3,loopret;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;select_mov:;p2的初值238push 0e0hmov a,p2rl amov p2,apop 0e0hretdelay_5ms:mov r6,#5signed_5ms:call delay_1msdjnz r6,signed_5msret篇二:单片机动态数码显示设计实验报告微机原理与接口技术实验报告实验题目:指导老师:班级:计算机科学与技术系姓名:动态数码显示设计2014年 12月3日实验十三动态数码显示设计一、实验目的1.掌握动态数码显示技术的设计方法。
EDA 第一次实验报告实验目的:利用QuartusⅡ软件,采用自上而下或自下而上的模块化层次设计数码管扫描显示电路,通过仿真波形及硬件实验平台验证设计,从而熟悉QuartusⅡ的数字系统设计流程以及FPGA开发模式。
一、实验设计方案1.原理说明:几个数码管在同一时间进行显示利用人眼的视觉暂留效应,把多个数码管按一定顺序(从左至右或从右至左)循环进行点亮,当点亮的频率足够高时,我们可以看到全部同时显示(点亮)。
因此,我们只要给数码管驱动电路一个足够高的扫描工作频率,就可以实现几个数码管同时点亮。
而用来产生这个扫描频率的驱动电路,可以通过BCD七段译码器的输入数据切换电路,通过计数器的输出来控制几个多路数据选择器电路的实现,只要计数频率足够高,就可以实现我们的要求。
2.结构框图:其中,3选1多路选择器以及2-3译码器的输入信号是由模4计数器统一输出控制,以达到数码管的位选以及段选同时变化的效果。
二、实验流程:1、模4计数器设计并进行仿真,下载到电路板上测试2、3选1多路选择器设计3、2-3译码器设计并进行仿真4、综合利用模4计数器,3选1多路选择器以及2-3译码器完成数码管扫描显示电路的设计并进行仿真,下载到电路板上测试模4计数器与2-3译码器大同小异。
所以,我就以2-3译码器为例简单的讲述一下演示工程的创建过程。
3选1多路选择器:1)打开Quartus,创建工程,点击File->New Project WizardEDA 实验报告王丹计科一班 2注意工程文件名一定要和顶层实体名一致,否则到后面编译的时候就有可能会报错并且还很难找出错误原因。
2)点击Next,下一步是添加工程所需子模块设计源文件及设置用户库,我们目前不需要,直接单击Next。
3)选择目标器件我在实验室里截了图,其实可以看出,上面器件的选取和电板上的芯片型号相同。
因此,一定要根据实际情况对器件进行选取,否则,仿真时就会出现问题。
实验三数码管动态显示
姓名:赵佳伟学号:1002100449
一、实验目的
l、实现实现0~9十个数的动态显示。
2、掌握数码管的工作状态。
二、实验的硬件要求
1、输入:CLK时钟信号
2、输出:LED灯
3、主芯片:ALTERA下载板
三、实验内容
用VHDL语言输入法设计一个数码管动态显示电路,要求能够使之在0~9循环显示。
四、实验步骤
(1)进入windows操作系统,打开MAX+PLUSⅡ10.0。
1、启动File/Project Name菜单,输入设计项目的名字。
点Assign/Device菜单,选择器件(本设计全选用EPM7128) 。
见图2.2.1。
2、启动菜单File/New,选择Text Editor file,打开编程编辑器,进行原理图设计输入。
图2.2.1
(2)输入代码(下图2.2.2)
3、保存
单击保存按钮,扩展名为.vhd,本实验中取名为:p4_5.vhd。
(3)编译
启动MAX+PLUS II\COMPILER菜单,按START开始编译,生成.SOF和.POF等文件,以便硬件下载和编程时调用,同时生成.RPT文件,如图2.2.3。
图2.2.3
(4)仿真
1、创建波形文件:
①首先,将设计指定为当前项目。
②创建一个波形文件。
选择菜单MAX+PLUSⅡ\Waveform Editor,打开仿真工具Waveform Editor,或选择新建一个Waveform Editor文件,将创建一个新的无标题波形文件,如图2.2.4所示:
③储存波形文件。
选择File\Save As,在File Name框中,输入相应文件名,单击OK 按钮存盘。
④设定时间轴网格大小。
选择菜单Option\Grid Size,输入时间间隔(20ns),单击OK 按钮。
⑤设定时间轴长度。
选择菜单File\End Time并输入文件的结束时间(1s )。
图2.2.4
2、选择欲仿真的引线端子:
①选择菜单Node\Enter Nodes Nodes from SNF出现如图2.2.5所示对话框。
也可在窗口空白处右击鼠标,在快捷菜单中,同样选择Enter Nodes Nodes from SNF。
②在Type框中选中Inputs和Outputs选项,然后单击List按钮。
③在A vailable Nodes﹠Groups列表中将出现所有的节点,选择所需节点,用右移键将它们移到右边的Selected Nodes﹠Groups列表中。
这时出现如图2.2.6所示结果。
④单击OK按钮完成。
图2.2.5
图2.2.6
3、编辑输入节点的仿真波形:
将输入节点的某段用鼠标选中(变黑)后,单击左边工具栏的有关按钮,进行设置,实现依次仿真出对应a为0~9时sg相对应的变为1,实现数码管显示的波形曲线。
编辑完成后如图2.2.7所示。
图2.2.7
4、仿真:
保存文件后,在MAX+PLUS II中选择Simulator菜单,出现Simulator对话框,如图2.2.8所示,单击Start按钮开始仿真,检查正确后,单击“确定”按钮。
图2.2.8
5、分析仿真结果
在仿真器窗口中选择Open SCF,即打开当前当前项目的仿真结果文件p4_5.scf如图2.2.9所示。
经检验是正确的。
图2.2.9
(5)管脚的重新分配锁定:
启动MAX+PLUSⅡ\FLOORPLIN EDITOR菜单命令,出现如图2.1.10所示的画面:
图2.2.10
FLOORPLAN EDITOR显示该设计项目的管脚分配,这是由软件自动分配的。
用户可随意改变管脚分配。
管脚编辑过程如下(见图2.2.11):
1.按下CURRENT ASSIGNMENTS FLOORPLAN,所有的输出都会出现在UNASSIGNED NODES栏框内。
2.用鼠标按住某输入输出门名称,并拖到下面芯片的某一管脚上,松开鼠标左键,使完成一个管脚的分配。
(6)实验电路板上的连线与真值表
d接6脚,clk接83脚,sg0~sg1分别接到33、34、35、36、37、39、40、41引脚。
(我
们实验例程的管脚分配结果)
注意:以上实验电路板上的连线可根据自己对管脚的锁定情况而定。
图2.2.11
(7)器件的下载与配置
1.启动MAX+PLUSⅡ\PROGRAMMER菜单,出现如图2.2.12所示对话框。
2.选择JTAG\MULTI—DEVICE JIAG CHAIN菜单项。
3.启动JTAG\MULTI—DEVICE JTAG CHAIN SETUP..菜单项。
4.点击SELECT PROGRAMMING FILE..按扭,选择要下载的.pof文件(对于MAx7000S 系列),然后按ADD加到文件列表中。
5.如果不能正确下载,可点击DETECT JTAG CHAIN INFO按扭进行测试,查找原因。
最后按OK退出。
6.这时回到图2.2.12的状态,按CONFIGURE按扭完成下载。
图2.2.12
三、实验总结
l、通过本次试验,学习并了解了MAX+PLUSⅡ10.0 Altera CPLD软件开发平台的使用。
MAX+PLUSⅡ中一个完整的VHDL语言程序通常包含实体、结构体等几个不同的部分组成。
2、通过用VHDL语言输入法设计一个数码管动态显示电路,要求能够使之在0~9循环显示,熟悉了CPLD软件开发平台VHDL语言输入法设计的使用方法。
与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,具有丰富的仿真语句和库函数。
3、继续熟悉了组合逻辑电路设计和静态显示测试方法。
与原理图输入相比,用VHDL 语言进行输入使我们可以在不知道原理图的情况下也可以进行设计,且VHDL语言可以类比于C语言,降低了学习难度,对于我们初学者来说比较容易上手。
所以实验设计时显得不是很难,代码设计出来之后也显得较容易。