ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:291.78KB ,
资源ID:7946402      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7946402.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(4位拨动开关控制数码管显示系统设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

4位拨动开关控制数码管显示系统设计.docx

1、4位拨动开关控制数码管显示系统设计务 书设计题目4位拨动开关控制数码管显示系统设计学生姓名设计要求:1.电源电路具有电源开关及指示灯,有复位按键;2.高4位开关屏蔽;3.用4位拨码开关为输入,控制数码管显示器的输出;4.实现功能:通电复位后数码管全显即显“8”,数码管对应4位DIP开关的二进制输入显示十六进制全部字符即从“0”到“F”。学生应完成的工作:1.了解单片机系统的设计方法,设计步骤;2.查找并收集相关资料书籍;3.完成硬件原理图设计;4.完成软件和流程图的设计;5.对系统进行仿真;6.焊接电路板,调试系统;7.认真撰写课程设计报告。8.孙晓界同学主要负责软件设计参考文献阅读:1 张毅

2、刚,彭喜元,彭宇. 单片机原理及应用M. 北京:高等教育出版社,2009.2 杜树春. 单片机C语言和汇编语言混合编程实例详解M. 北京:北京航空航天大学出版社,2006.3 童诗白,华成英. 模拟电子技术基础(第四版)M. 北京:高等教育出版社,2006.4 林志琦. 基于Proteus的单片机可视化软硬件仿真M. 北京:北京航空航天大学出版社,2006.工作计划:5月6日:查阅相关资料,拟定方案;5月7日:进行方案论证,完善设计方案;5月8日:完成硬件设计;5月9日:设计程序流程图;5月10日:完成软件设计,并进行仿真和调试;5月13日:进行焊接;5月14日:烧写程序;5月15日:调试电路

3、;5月16日:与辅导老师交流,写课程设计报告;5月17日:上交课程设计报告及实物。任务下达日期:2013 年5月 6 日 任务完成日期:2013 年5月 17 日指导教师(签名): 学生(签名): 4位拨动开关控制数码管显示系统设计摘 要:用AT89S52单片机作为核心,利用晶振,共阳极数码管,7805,桥堆2w10等器件进行设计,由电源电路、复位电路、时钟电路、输入输出电路等设计一个控制电路。利用汇编编写控制程序,程序使用查表法进行编写。设计一个由4位拨动开关控制共阳极数码管的系统。它以9V交流电源供电,用拨动开关作为输入,控制输出端数码管的输出。使用Proteus软件进行仿真,系统能够实现

4、如下功能:通电复位后数码管全显即显“8”,数码管对应4位拨动开关的二进制输入显示十六进制全部字符即从“0”到“F”。关键词:4位拨动开关;单片机;共阳极数码管;复位目录1. 设计背景 11.1 单片机设计价值 11.2 设计意义 12. 设计方案 22.1 方案一 22.2 方案二 22.3 方案三 23. 方案实施 33.1 原理图设计 33.2 软件设计 73.3 电路仿真 83.4 实物制作 94. 结果与结论 114.1 结果 114.2 结论 115. 收获与致谢 136. 参考文献 147. 附件 157.1 系统硬件电路图 157.2 元器件清单 167.3 软件程序 177.4

5、 系统实物照片 20 1. 设计背景 1.1 单片机设计价值单片机具有人机对话功能,开关,键盘是实现人机对话的主要输入设备,也是最常用的设备,通过它能发出各种控制指令和数据到单片机。而二极管,数码管,LED显示器是常用的输出设备,单片机接受一系列指令,执行一定功能后,可通过这些设备输出。目前单片机渗透到我们生活的各个领域。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理等等。1.2 设计意义 为了更好的掌握单片机的硬件特性以及用汇编语言进行编程设计,我们运用目前所学的知识,来设计了一个单片机系统用拨码开关控制数码管显示系统。在理论学习的基础上

6、,通过完成一个单片机系统设计与编程应用,能够增强我们理论联系实际的能力,进一步熟悉相关专业基础知识的综合应用,提高实际动手能力和设计能力。对电路、电子器件等方面进一步加深认识,锻炼自己在编程、调试、焊接、万用表的使用等方面得到全面的锻炼和提高。2. 设计方案2.1 方案一由4位DIP开关作为输入,共阳极数码管作为输出,以硬件代替软件进行译码,译码部分采用74LS247译码器。本方案编程只需将输入信号原样输出即可,占用I/O端口少,但电路硬件增多,成本增高。2.2 方案二本方案的译码部分由软件实现,由4位DIP开关作为输入,共阳极数码管作为输出,经软件译码,使用查表法编写,在数码管显示相应的数字

7、。由于译码部分采用了软件实现,省去了译码电路,成本降低,电路设计简单,但编程较复杂,而且占用I/O端口多。2.3 方案三本方案的译码部分仍由软件实现,由4位DIP开关作为输入,共阳极数码管作为输出,软件译码按照译码器实现原理编写,在数码管显示相应的数字。由于译码部分软件采用译码器原理编写,使得编程非常复杂,占用系统内存,不符合精简系统的思想。综合考虑,确定采用方案二实现。3. 方案实施3.1 原理图设计1、系统组成图 图3.1 系统组成图设计系统组成图如图3.1所示。由AT89S52单片机、复位电路、时钟电路、输入输出电路等组成。2、输入输出电路用AT89S52芯片作为核心,AT89S52有4

8、个双向的8位并行I/0口,分别记为P0、P1、P2和P3口。本次设计中主要使用P1作为输入口,P0作为输出口,因此仅对P0、P1口作简要说明。P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4个TTL 逻辑电平。

9、RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。VCC:电源。GND:接地。P0.0P0.6分别接数码管的af,P1.0P1.3分别与拨码开关的4位相连。同时P0口和P1口都要接上拉电阻。P1口作为输入口接上拉电阻,是为了保证按键释放时,输入检测线上有稳定的高电平,当某一按键按下时,对应的检测线就变成了低电平,与其他按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判别哪一条I/O输入线为低电平,就很容易识别出哪个键被按下。P0口内部无上拉电阻,在外加上拉电阻,使P0口能够产生高电平。但本设计采用共阳极数码管,只需低电平有效即可,因此无需上拉电阻。但

10、考虑到电路的适应性(对共阴极数码管同样适用),而外加上拉电阻。电路如图3.2所示。图3.2 输入输出电路3、电源电路本系统需要稳定的5V直流电源供电,单向交流电经过电源变压器、整流电路、滤波电路和稳压电路转换成稳定的直流电压。设计提供9V交流电,整流电路选用桥堆2W10单相桥式整流电路将交流电压变成脉动的直流电压,整流主要通过二极管的单向导电性来实现的。整流电路的输出电压虽然是单一方向的,但是含有较大的交流成分。因此,一般在整流后,还需要滤波电路将脉动的直流电压变为平滑的直流电压。本设计采用电容滤波电路,在整流电路输出端并联1000uF的电解电容C5进行滤波。经过滤波后得到的输出电压还会随电网

11、电压波动、负载和温度的变化而变化,因此,在整流、滤波电路之后,还需要稳压电路,以维持输出电压的稳定。本设计中采用稳压器7805进行稳压,C6用于防止电路产生自激振荡,取33pF,C4用于消除输出电压中的高频噪声,D2为电源指示灯,R2为限流电阻。输出为5V直流电压,使单片机系统能够稳定工作。电源电路如图3.3所示。图3.3 电源电路4、复位电路复位电路如图3.4所示。图3.4 复位电路AT89S52的复位是由外部的复位电路实现的。复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个机器周期的S5P2,施密特触发器的输出电平有复位电路采样一次,然后才能得到内部复位操

12、作所需要的信号。本设计采用按键电平复位电路。通过RST端经电阻与电源Vcc接通来实现,具体电路如图4所示。本设计的晶振选用11.0592MHZ,机器周期约为1us。复位电路利用RC微分电路产生的正脉冲来实现。电阻R和电容C的参数选取,应保证给复位引脚RST能够加上大于两个机器周期的高电平。本设计中电容C3取10uF,R1取2K,即可保证单片机复位电路可靠运行。5、时钟电路AT89S52单片机各功能部件的运行都以时钟控制型号为基准,有条不紊、一拍一拍地工作。时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性,分为内部时钟方式和外部时钟方式。本设计中的时钟电路采用内部时钟方式

13、。AT89S52内部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体和微调电容,构成一个稳定的自激振荡器,图5是AT89S52内部时钟方式电路。时钟电路由2个33pF的瓷片电容C1、C2和1个11.0592MHZ晶振组成,电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体振荡器的频率越高,系统的时钟频率越高,单片机的运行速度也就越快。另外,在连接电路时,晶体与电容尽可能安装的与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。将此电路连接到AT89S52的第18、19引脚,两电容之间通过导线

14、接地。如图3.5所示。图3.5 时钟电路6、共阳极数码管常见的LED数码管为“8”字形的,共计8段。每一个段对应一个发光二极管。本设计采用共阳极数码管,如图3.6所示。共阳极数码管里面的发光二极管阳极接在一起作为公共引脚,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示。共阳极8段LED数码管显示字符从“0”到“F”的段码为:0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH图3.6 共阳极数码管引脚图3.2 软件设计根据要求:程序先给数码管送数字“8”,然后等待

15、四位拨码开关键按下,当DIP开关键按下时,从P1口读入电平信号,由查表法送段码代码到P0口使数码管显示相应的符号。查表程序是一种常用的程序,查表就是根据自变量x,在表格中寻找y。本程序采用“MOVC A,A+DPTR” 查表指令,使用该指令时不必计算偏移量,表格可以设在64KB程序存储器空间内的任何地方。程序中在检测信号输入中加入了延时1ms的子程序,是为了用软件延时来消除按键抖动,基本思想是:在检测到有按键按下时,该键所对应的行线为低电平,执行一段延时子程序后,确认该行线时否仍是低电平,如果仍是低电平,则确认该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时子程序后,检测该

16、行线为高电平,说明按键确实已经松开。程序流程图如图3.7所示。图3.7 程序流程图3.3 电路仿真在各单元电路设计的基础上,用Proteus软件把各单元电路连接起来,画出符合软件要求的系统整体逻辑电路图。系统整体电路设计完成后,对系统整体进行仿真,验证设计的正确性。在各单元电路设计的基础上,按照总体电路图在仿真软件Proteus上一一选择元件并进行连接,然后启动开关观察。将电路在Proteus上连接好后,为各个电阻和电容选取适当值,为各个开关设置好适当的键盘打开数值连接,然后打开Proteus的开关,判断电路是否正常。通过仿真,我们的电路原理图无误,可以实现功能通电复位后数码管全显即显“8”,

17、数码管对应4位DIP开关的二进制输入显示十六进制全部字符即从“0”到“F”。因此,可以进行焊接。仿真图如图3.8所示。图3.8 电路仿真图在仿真中发现复位中的R1不能超过1K电阻,否则仿真复位失效,这是Proteus软件原因,在实际制作中R1使用2K电阻。另外,本设计未在数码管后加上限流电路,容易导致数码管烧毁,但在仿真中并不会出现这种情况,这也是仿真的不足之处。3.4 实物制作按照图3.1所示的原理图,对元器件进行布局,布局尽可能合理,跳线最少,板子尽可能小。在安装上,我们要注意一些元件的正负极是否正确如发光二极管、极性电容。然后将元件焊接在万能板上,焊接是要小心,谨慎,不要出现短路。在焊接

18、电路时,晶体与电容尽可能安装的与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。还有芯片容易被烧坏,等到焊接完成要调试时,再把AT89S52芯片安装上。然后安装好所有的芯片和电路原件后,按照电路图逐一检查电路有没有漏焊的问题,特别是各模块电路的地线和电源线应接好。接下来用万用表逐一检查有没有虚焊或线路断路或线路短路。在线路没有问题的情况下连接电源调试,之后用万用表逐个模块进行检查。4. 结果与结论4.1 结果焊接完成之后,将所编的汇编程序复制进Keil软件中生成后缀为hex的文件,将此文件烧写进AT89S52芯片,接通9V交流电源,电源指示灯亮,数码管显示全显即数字“8”,数

19、码管对应4位DIP开关的二进制输入显示十六进制全部字符即从“0”到“F”。4位DIP开关按二进制输入(“0”代表断开,“1”代表闭合):当DIP四位开关依次为“0000”,数码管显示字符“0”; 当DIP四位开关依次为“0001”,数码管显示字符“1”;当DIP四位开关依次为“0010”,数码管显示字符“2”;当DIP四位开关依次为“0011”,数码管显示字符“3”;当DIP四位开关依次为“0100”,数码管显示字符“4”;当DIP四位开关依次为“0101”,数码管显示字符“5”;当DIP四位开关依次为“0110”,数码管显示字符“6”;当DIP四位开关依次为“0111”,数码管显示字符“7”

20、;当DIP四位开关依次为“1000”,数码管显示字符“8”;当DIP四位开关依次为“1001”,数码管显示字符“9”;当DIP四位开关依次为“1010”,数码管显示字符“A”;当DIP四位开关依次为“1011”,数码管显示字符“b”;当DIP四位开关依次为“1100”,数码管显示字符“C”;当DIP四位开关依次为“1101”,数码管显示字符“d”;当DIP四位开关依次为“1110”,数码管显示字符“E”;当DIP四位开关依次为“1111”,数码管显示字符“F”;按动复位键,数码管能够恢复到全显即数字“8”。4.2 结论由系统设计的技术参数和要求,4位拨码开关控制数码管显示,设计出本系统的原理图

21、和程序,本系统所包含四种电路,分别为电源电路、复位电路、时钟电路、输入输出电路。共阳极数码管的段码产生原理,复位电路电阻R和电容C的选取计算方法,电源电路中的滤波、稳压等都有了更深刻的认识。并且了解到仿真实验并不能够真正的代替实际,仿真即使能够运行还是有可能存在错误的,如仿真中的复位电阻的阻值在仿真中出现错误。本系统的电源电路并不是非常安全的,当电源断电时,电容C4将从稳压器的输出端向稳压器放电,易使稳压器损坏。因此可在稳压器的输入端和输出端之间跨接一个二极管。设计的输出采用了AT89S52芯片的P0口,需要接上拉电阻,使电路的元件,线路增多。因此,我们可以把输出换为P2或P3口,去掉输出端的

22、上拉电阻,简化硬件电路连接。我主要负责软件设计方面,软件设计采用查表法寻找段代码,使数码管显示相应符号。在软件设计时考虑到按键可能抖动,因此程序中在检测信号输入中加入了延时1ms的子程序,用软件延时来消除按键抖动。基本思想是:在检测到有按键按下时,该键所对应的行线为低电平,执行一段延时子程序后,确认该行线是否仍是低电平,如果仍是低电平,则确认该行确实有键按下。当按键松开时,行线的低电平变为高电平,执行一段延时子程序后,检测该行线为高电平,说明按键确实已经松开。这样,按键抖动的问题用软件得到了解决,使系统的稳定性得到了提升。6. 参考文献1 张毅刚,彭喜元,彭宇. 单片机原理及应用M. 北京:高

23、等教育出版社,2009.2 杜树春. 单片机C语言和汇编语言混合编程实例详解M. 北京:北京航空航天大学出版社,2006.3 童诗白,华成英. 模拟电子技术基础(第四版)M. 北京:高等教育出版社,2006.4 林志琦. 基于Proteus的单片机可视化软硬件仿真M. 北京:北京航空航天大学出版社,2006.5 何立民. 单片机应用技术选编M. 北京:北京航空航天大学出版社,1993.6 施隆照. 数码管显示驱动和键盘扫描控制器CH51及其应用J. 国外电子元器件,2004.7 胡汉才. 单片机原理及其接口技术M. 北京:清华大学出版社,1996.8 杜尚丰. CAN总线测控技术及其应用M.

24、北京:电子工业出版社,2007.9 谢嘉奎. 电子线路. 北京:高等教育出版社M. 2004.10 臧春华. 电子线路设计与应用M. 北京:高等教育出版社,2005.11 王守中,聂元铭. 51单片机开发与典型事例M. 北京:人民邮电出版社,2009.12 陈粤初. 单片机应用系统技术与实践M. 北京:北京航空航天大学出版社,1991.7. 附件7.1 系统硬件电路图图7.1 系统硬件电路图7.2 元器件清单元器件清单如表7.1所示。表7.1 元器件清单元器件名称型号规格数量单片机AT89S521晶振11.0592MHZ1发光二级管1共阳极数码管1桥堆2W101底座AT89S521电解电容33

25、pf4极性电容10uf1极性电容1000uf1拨动开关1普通摁键2电阻2k1电阻1k13780517.3 软件程序A_BIT EQU 20HYI EQU 21HER EQU 22HSI EQU 23HBA EQU 24HP1_BUF EQU 25HORG 00HLJMP POWER_ONORG 30HPOWER_ON: ;上电程序从此处开始进行MOV A_BIT,#00H ;初始化寄存器MOV P0,#0FFH ;读端口前初始化端口 MOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFHMOV A,P1 ;读一下P1端口,保存当前端口状态 MOV P1_BUF,ALCALL

26、DELAY ;调延时PPT:MOV A,P1 ;再读端口状态CJNE A,P1_BUF,STARTMOV P0,#00H ;没变化,显示8LJMP PPT ;跳回重新检测START:LCALL DISP ;调显示子函数MOV YI,#0 ;清每个开关按下代表的值寄存器MOV ER,#0MOV SI,#0MOV BA,#0MOV A_BIT,#00H ;清开关值和寄存器MOV A,P1 ;读P0口ANL A,#0FH ;屏蔽高4位(pa7-pa4)LCALL DELAY ;调延时,按键消抖JB P1.0,START1 ;P1.0口没合上,跳转判断P1.1口MOV YI,#1 ;P1.0口开关合上

27、,键值赋1START1:JB P1.1,START2 ;P1.1口没合上,跳转判断P1.2口MOV ER,#2 ;P1.1口开关合上,键值赋2START2:JB P1.2,START3 ;P1.2口没合上,跳转判断P1.3口MOV SI,#4 ;P1.2口开关合上,键值赋4START3:JB P1.3,START4 ;P1.3口没合上,跳转键值累加MOV BA,#8 ;P1.3口开关合上,键值赋8START4:CLR C ;键值累加MOV A,YIADD A,ERADD A,SIADD A,BAMOV A_BIT,ALJMP START ;返回主循环DISP: MOV DPTR,#NUMTAB ;指定查表起始地址MOV A,A_BIT ;取和个位数MOVC A,A+DPTR ;查个位数的7段代码MOV P0,A ;送出个位的7段代码到P1口RET DELAY: ;1ms延时子程序MOV R4,#250 D1: NOPNOP DJNZ R4,D1 RET NUMTAB: ;对应数码管显示段码 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH END

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1