四位拨动开关控制数码管显示系统设计 - 图文

更新时间:2024-02-27 23:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课 程 设 计 任 务 书

设计题目 学生姓名 设计要求: 1.具有电源开关及指示灯,有复位按键; 2.用拨码开关的低四位为输入,控制输出端数码管显示器的输出,高四位开关屏蔽。实现如下功能:上电后默认为“8”,调整4位拨码开关按二进制输入,按确定键后数码管显示对应的数字“0”-“F”。 学生应完成的工作: 1. 认真理解课程设计书所要求的工作; 2. 查找并收集相关书籍资料; 3. 根据要求设计出完整的硬件电路; 4. 设计汇编程序; 5. 烧录程序; 6. 焊接电路,调试并修改; 7. 学会撰写课程设计总结报告。 参考文献阅读: [1] 张毅刚,彭喜元,彭宇.单片机原理及应用[M].北京:高等教育出版社,2003.12 [2] 何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,1993.1 [3] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996 [4] 施隆照.数码管显示驱动和键盘扫描控制器CH451及其应用[J].国外电子元器件,2004.12(1) 4位拨动开关控制数码管显示系统设计 钱慧琼 所在院系 电气学院 专业、年级、班 11电子信息专升本 工作计划: 5月7日~5月8日 理解课题搜集资料 5月9日~5月10日 完成硬件设计 5月13日~5月14日 完成程序设计并烧录程序 5月15日~5月16日 焊接电路板并调试验证

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

摘 要:使用AT89S52芯片,辅以时钟、复位、电源模块等必要的电路,利用汇编语

言编写了一段控制数码管显示器的程序,设计出了一个用拨码开关控制数码管显示的系统,该系统由220V~12V电源供电,用拨码开关的低四位为输入,控制单片机输出端数码管的显示。该系统可以实现如下功能:上电后默认为“8”,调整4位拨码开关按二进制输入,数码管显示对应的数字“0”~“F”,复位后仍显示“8”。

关键词:AT89S52芯片 拨码开关 数码管

目 录

1.设计背景 ............................................................................................................ 1 2.设计方案 ............................................................................................................ 1 2.1方案一 ....................................................................................................... 1 2.2方案二 ....................................................................................................... 1 3.方案实施 ............................................................................................................ 1 3.1输入输出电路设计 ................................................................................... 1 3.2电源电路设计 ........................................................................................... 2 3.3时钟电路设计 ........................................................................................... 4 3.4复位电路设计 ........................................................................................... 5 3.5软件设计 ................................................................................................... 5 4.实物制作 ............................................................................................................ 9 5.结果与结论 ........................................................................................................ 9 7.收获与致谢 ...................................................................................................... 11 7.参考文献 .......................................................................................................... 12 8.附件 .................................................................................................................. 13 附件1.元器件清单 ............................................................................................. 13 附件2.原理图 ..................................................................................................... 14

1.设计背景

单片机具有人机对话功能,开关,键盘是实现人机对话的主要输入设备,也是最常用的设备,通过它能发出各种控制指令和数据到单片机。而二极管,数码管,LED显示器是常用的输出设备,单片机接受一系列指令到,执行一定功能后,可通过这些设备输出。为了更好的掌握单片机的硬件特性以及用汇编语言进行编程设计,我们运用目前所学的知识,来设计了一个单片机最小系统——用拨码开关控制数码管显示系统。

2.设计方案

2.1方案一

使用单片机P1口,由4位DIP开关从P1口低四位输入,高四位输出,译码部分采用74LS247译码器,送往共阳极数码管显示。本方案编程简单,占用I/O端口少,但电路设计较复杂,硬件增多,成本增高。

2.2方案二

本方案的译码部分由单片机编程实现,P1口接共阳数码管,由4位DIP开关从P0口低四位输入,经软件译码,送往P1口,在数码管显示相应的数字。由于译码部分采用了软件实现,省去了译码电路,成本降低,电路设计简单,但编程较方案一复杂,而且占用I/O端口多,占用系统资源。

综合考虑,确定采用方案二实现。

3.方案实施

3.1输入输出电路设计

该设计以AT89S52单片机为核心部件,AT89S52单片机有4个双向的8位并行I/0口,分别记为P0、P1、P2和P3口。本次设计中主要使用P0作为输入口,P1作为输出

1

口。

P0口:P0口为一个8位漏级开路双向I/O口,每个脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

本次设计中主要使用P0作为输入口,P1作为输出口,P1.0~P1.7分别接数码管的a~f及dp,P0.0~P0.3分别与拨码开关的4位相连,P0.4~P0.7接地屏蔽。同时P0口和P1口都要接上拉电阻。电路如图3-1所示 。

图3-1 输入输出电路 3.2电源电路设计

本设计中需要用直流电源提供能量,而把交流电源变换为直流稳压电源一般需要经过变压、整流、滤波和稳压四个工作步骤。

设计中采用220V~12V变压器提供12V交流电。

本设计通过2W10桥堆单相桥式整流电路将交流电压变成脉动的直流电压,整流主

2

要利用二极管的单向导电作用来实现的。

由于整流后的电压还有较大的交流成分,因此必须通过滤波电路加以滤除,从而得到比较平滑的直流电压。常见的有电容滤波、电感滤波等电路形式。本设计中采用1000uF的电容C1并联在负载两端进行滤波。

经过滤波后得到的输出电压还会随电网电压波动、负载和温度的变化而变化,因此,在整流、滤波电路之后,还需要稳压电路,以维持输出电压的稳定。本设计中采用三端集成稳压器7805进行稳压,C3用于防止稳压器自激,取0.1uF,C2和C5用于抑制稳压器的纹波,D1为电源指示灯。

电源电路如图3-2所示。

图3-2 电源电路

3

3.3时钟电路设计

AT89S52单片机各功能部件的运行都以时钟控制型号为基准,有条不紊、一拍一拍地工作。该设计中的时钟电路采用内部时钟方式。AT89S52内部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片19引脚XTAL1,输出端为18引脚XTAL2。这两个引脚跨接石英晶体和微调电容,构成一个稳定的自激振荡器,图3-3是AT89S52内部时钟方式电路。

图3-3 AT89S52内部时钟方式电路

电路中的电容C1和C2的选择典型值30pF。该电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性。晶体振荡器的频率选择12MHz,晶体振荡器的频率越高,系统的时钟频率越高,单片机的运行速度越。另外,在连接电路时,晶体与电容尽可能安装的与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。

4

3.4复位电路设计

AT89S52的复位是由外部的复位电路实现的。复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声,在每个机器周期的S5P2,施密特触发器的输出电平有复位电路采样一次,然后才能得到内部复位操作所需要的信号。

本设计采用的是按键电平复位方式。通过AT89S52的9引脚RST段经电阻与电源VCC接通来实现,具体电路如图3-3所示。复位电路中的R和C参数的选取要统一考虑,以保证可靠复位。即要要给AT89S52的复位引脚RST加大于两个时钟周期的高电平信号。本设计中电容C取22uF,R取1K,就可保证单片机可靠复位。

图3-4 按键电平复位电路

3.5软件设计

根据要求:程序先给数码管送数字“8”,然后拨动DIP开关,数码管显示对应的数字“0”-“F”。程序流程图如图3-5所示:

5

开始 数码管显示8 YES 复位键是否按下 NO DIP开关输入数据 查表送数码管显示 图3-5 程序流程图

根据要求,用汇编语言编写的程序如下:

A_BIT EQU 20H B_BIT EQU 21H YI EQU 22H ER EQU 23H SI EQU 24H BA EQU 25H P1_BUF EQU 26H ORG 00H LJMP POWER_ON ORG 30H

POWER_ON: ;上电程序从此处开始进行 MOV A_BIT,#00H ;初始化寄存器 MOV B_BIT,#00H

6

MOV P0,#0FFH ;读端口前初始化端口 MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH

MOV A,P1 ;读一下P1端口,保存当前端口状态 MOV P1_BUF,A

LCALL DELAY PPT:

MOV A,P1 CJNE A,P1_BUF,START MOV P0,#00H LJMP PPT START:

LCALL DISP MOV YI,#0 MOV ER,#0 MOV SI,#0 MOV BA,#0

MOV A_BIT,#00H MOV B_BIT,#00H

MOV A,P1 ANL A,#0FH LCALL DELAY JB P1.0,START1 MOV YI,#1 START1:

JB P1.1,START2 MOV ER,#2 START2:

JB P1.2,START3 7

;调延时 ;再读端口状态

;没变化,显示8 ;跳回重新检测 ;调显示子函数

;清每个开关按下代表的值寄存器 ;清开关值和寄存器 ;读P0口

;屏蔽高4位(pa7-pa4) ;调延时,按键消抖

;P1.0口没合上,跳转判断P1.1口 ;P1.0口开关合上,键值赋1 ;P1.1口没合上,跳转判断P1.2口 ;P1.1口开关合上,键值赋2 ;P1.2口没合上,跳转判断P1.3口

MOV SI,#4 ;P1.2口开关合上,键值赋4 START3:

JB P1.3,START4 ;P1.3口没合上,跳转键值累加 MOV BA,#8 ;P1.3口开关合上,键值赋8 START4:

CLR C ;键值累加 MOV ADD ADD ADDC MOV JNC MOV LJMP START5:

MOV LJMP DISP:

MOV MOV MOVC MOV RET

DELAY: NOP

MOV D1: MOV DJNZ DJNZ RET

A,YI A,ER A,SI A,BA A_BIT,A

START5 ;没进位,跳转 B_BIT,#1 ;有进位,和高位赋1 START ;返回主循环 B_BIT,#0 ;和高位赋0 START ;返回主循环 DPTR,#NUMTAB ;指定查表起始地址 A,A_BIT ;取和个位数

A,@A+DPTR ;查个位数的7段代码 P0,A ;送出个位的7段代码到P1口 ;1ms延时子程序 R4,#2 R5,#248 R5,$ R4,D1 8

NUMTAB: ;对应数据代码

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH END

4.实物制作

按照附件2所示的原理图,根据连线优美简单的原则进行电路设计,然后进行电路的焊接。由于本设计中元器件比较多,线路较为复杂,焊接是要小心,谨慎,不要出现短路。在焊接电路时,晶体与电容尽可能安装的与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定、可靠地工作。还有芯片容易被烧坏,等到焊接完成要调试时,再把AT89S52芯片安装上。焊接后的实物如图4-1所示。

图4-1 焊接实物图

5.结果与结论

把上述源程序在Medwin软件中进行编译后,把生成的16进制文件烧写到AT89S52单片机中,然后接上12V的电源进行调试。调试结果如下所示。

上电后默认为“8”,调整4位DIP开关按二进制输入:

9

当DIP开关为“0000”,数码管显示“0”; 当DIP开关为“0001”,数码管显示“1”; 当DIP开关为“0010”,数码管显示“2”; 当DIP开关为“0011”,数码管显示“3”; 当DIP开关为“0100”,数码管显示“4”; 当DIP开关为“0101”,数码管显示“5”; 当DIP开关为“0110”,数码管显示“6”; 当DIP开关为“0111”,数码管显示“7”; 当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”。

当DIP开关为“0111”,数码管显示“7”的实物照片如4-2所示。

图4-2 数码管显示“7”时的实物照片

10

该系统所实现的功能与要求一致,接上电源后,电源指示灯亮,数码管显示“8”,拨动DIP开关后,数码管显示“0”~“F”,按下复位键后,数码管仍显示“8”。

7.收获与致谢

这次单片机课程设计真可谓是一波三折,刚开始确定电路方案时,由于我们的理论知识有所欠缺,确定的方案,电路设计较复杂,硬件较多,成本较高,后来在我们指导老师—范秋凤范老师的指导下,我们又确定了方案二,成本降低,电路设计也较为简单。在这里,我要对我们组的指导老师—范秋凤范老师表示衷心的感谢,我们这次设计的完成与她的悉心指导是分不开的,谢谢。

在后来焊接的电路时,我主要负责的是电源模块的焊接,由于我的疏忽大意,把2W10桥堆要接在变压器上的两个管脚接在了电源电路中,把要接电路中的两个管脚留作了接12V电源的线,这给我们后面调试造成一些困扰。整个电路的线路不算复杂,所以焊接也还算顺利。由于我们没有变压器,所以我们在下面调试时,采用了3节1.5V的干电池接到了单片机VCC和GND两端,电路供电后,拨动拨码开关,数码管不显示,第一次调试以失败告终。

第一次调试失败后,我们组成员就分工合作,来找出问题所在。我主要负责检查电路,由于我们焊接电路时为了追求美观,有些线路的焊接是从元器件底部拉的线,所以检修电路也比较麻烦,仔细对照原理图,确认焊接无误,我们组的其他成员也确认程序编写也无误后,我又把程序烧到单片机中,进行第二次调试,这次调试比上次稍好些,我们的数码管d和e这两段始终不亮,这就使我们要显示的结果只有1,4,7这三个数是正确的。准确的说,第二次调试又以失败告终。不过,这次调试让我们知道了具体问题出在了什么电路模块。我们用万用表测量数码管各个管脚与单片机连接的线路是否是通路,经测试发现所有线路都是通路。我们组一致认为是数码管坏了,为了验证我们的观点是正确的,我们特意在单片机P0.3口和数码管d脚之间接了一个发光二级管,接通电源后,发现二极管亮了,证明我们的观点是正确的。最终,由于没有多余的数码管,我们设计的系统显示的结果不够完整。

总之,通过两周的课程设计,我受益匪浅。首先,本次课程设计不仅加深了我对直流稳压电源电路的理解,而且也使我对单片机有了更深认识。同时在具体的制作过程中,我发现书本上的知识与实际应用存在着不小的差距,书本上的知识很多都是理性化后的

11

结论,忽略了很多实际的因素。我们不得不考虑这方面的问题,我们无法根据书上的理论轻易得到预想的结果。通过这次实践,使我深刻认识到理论联系实际的重要性。

7.参考文献

[1] 张毅刚,彭喜元,彭宇.单片机原理及应用[M].北京:高等教育出版社,2003.12 [2] 何立民.单片机应用技术选编[M].北京:北京航空航天大学出版社,1993.1 [3] 胡汉才.单片机原理及其接口技术[M].北京:清华大学出版社,1996

[4] 施隆照.数码管显示驱动和键盘扫描控制器CH451及其应用[J].国外电子元器件,2004.12(1)

12

8.附件

附件1.元器件清单

表1 元器件清单

元器件名称 AT89S52 40插座 2W10桥堆 7805 万能实验板 晶振 发光二级管 按键 开关 4位拨动开关 电阻 型号规格 数量 1 1 1 1 1 1 1 1 1 1 14 备注 11.0592M 1K电阻6个,680电阻8个 电容 4 30PF电容2个、0.1uF电容1个 极性电容 2 1000uF、22uF各一个 导线 若干 13

附件2.原理图

14

指导教师评语: 课程设计报告成绩: ,占总成绩比例: 30% 课程设计其它环节成绩: 环节名称: 考勤 ,成绩: ,占总成绩比例: 20% 环节名称: 综合 ,成绩: ,占总成绩比例: 50% 总 成 绩: 指导教师签字: 年 月 日 本次课程设计负责人意见: 负责人签字: 年 月 日

15

本文来源:https://www.bwwdw.com/article/fqea.html

Top