扩展8个输入端口的设计毕业设计(论文)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
1.设计背景 (1)
2.设计方案 (1)
2.1方案一:查询方式和P1口低电平输出 (1)
2.2方案二:中断方式和P1口高电平输出 (1)
3.方案实施 (1)
3.1硬件设计 (1)
3.1.1 电源电路的设计 (1)
3.1.2 复位电路设计 (1)
3.1.3 时钟电路设计 (2)
3.1.4并行输入8位移位寄存器74LS165设计 (2)
3.2软件设计 (3)
3.2.1 流程图设计 (3)
3.2.2 程序的编写与仿真 (4)
3.3实物制作 (5)
4.结果与结论 (5)
4.1设计结果 (5)
4.2设计结论 (5)
5.收获与致谢 (5)
6.参考文献 (5)
7.附件 (5)
附件一:程序 (5)
附件二:电路原理图 (6)
附件三:程序流程图 (7)
附件四:元器件清单 (8)
附件五:实物图照片 (9)
1.设计背景
单片机的应用越来来越广泛,扩展并行口只是为了单片机更复杂的应用,作为将来的相关技术人员,应该时刻关注单片机的的发展现状和未来的发展趋势,首先先将动手能力和理论知识的结合起来,锻炼动手能力,扎实掌握基础知识,为将来更深入学习和工作做准备
随着微电子技术的发展,越来越多的电子产品的设计都向数字化、智能化、自动化方向发展,各种电子设备及通信系统的复杂度、集成度越来越高,大批主导电子产品,如计算机、数字音响、数字电视、数控机床等都广泛应用了单片机技术。

为了赶上时代的步伐,同时也为了培养大学生的实际动手能力、开发能力、独立思考能力分析实践能力,将理论应用于社会生产实践的能力,故而开展此次课程设计活动。

2.设计方案
2.1方案一:查询方式和P1口低电平输出
编写程序通过对串行口接收中断标志位RI状态的查询控制程序的执行顺序并利用P1口输出低电平驱动发光二极管显示结果。

2.2方案二:中断方式和P1口高电平输出
编写程序通过对串行口接收中断标志位RI状态的查询产生中断请求,控制程序的执行顺序并利用P1口输出高电平驱动发光二极管显示结果。

由于AT89S52单片机本身的中断数量仅有5个,为了以后功能的扩展、节省中断源且本设计对效率要求不高,故采用查询方式。

又考虑到灌电流与拉电流的优缺点,利用P1口输出低电平驱动发光二极管。

基于以上两方面的考虑,本设计采用方案一实现设计要求。

3.方案实施
3.1硬件设计
利用并行输入8位移位寄存器74LS165、型号为AT89S52的单片机、电容、电阻、拨动开关、11.0592MHz晶振、桥堆2W10、三端集成稳压器7805、发光二极管等器件完成硬件原理图的设计。

3.1.1 电源电路的设计
利用桥堆2W10对变压器输出的9V电压进行整流并利用三端稳压器7805对其稳压
和变压输出5V 电压。

其中C4、C5、C6、C7作为旁路电容,滤除高频分量使输出稳定。

,具体电路原理图如图3-1所示。

+Vcc BR1
2W10G VI 1VO
3G N D 2U27805
C4104p C5104p SW8SW-SPST R18680R D9
10A01C61000u 电源电路D8LED-RED
TR1TRAN-2P2S C71000u
3-1 电源电路原理图 3.1.2 复位电路设计
为了防止程序出错(如程序跑飞)或操作错误使系统处于死锁状态,需设计复位电路使AT89S51能够摆脱“跑飞”或“死锁”状态而重新启动程序。

当给复位脚RST 加上大于2个机器周期(即24个时钟振荡周期)的高电平就可以使AT89S52复位,使程序从0000H 单元开始执行。

复位电路可采用上电自动复位和按键手动复位两种方式,而按键手动复位又可以分为按键电平复位和按键脉冲复位两种方式。

本设计采用按键电平复位方式,电路图如下图3-2所示。

+VCC GND
RST
C3
104p
R17
10K
3-2 按键电平复位方式电路图
3.1.3 时钟电路设计
时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式,本设计采用内部时钟方式。

AT89S52内部有一个用于构成振荡器的高增益反相放大器,输入
端为芯片引脚XTAL1,输出端为引脚XTAL2。

这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。

C1和C2的典型值通常选择为30pF,本设计采用的电容值为33pF。

电容大小会影响振荡器频率高低、振荡器的稳定性和起振的快速性。

晶振频率范围通常是1.2~12MHz,本设计采用晶振的频率为11.0592MHz。

晶体频率越高,单片机速度就越快。

速度快对存储器的速度要求就高,则要求线间的寄生电容要小。

晶体和电容应尽可能与单片机靠近,以减少寄生电容,保证振荡器稳定、可靠地工作。

本设计的时钟电路图如图3-3所示。

时钟电路
XTAL1
C1
33p
11.0592MHz
C2
33p
XTAL2
3-3 时钟电路
3.1.4并行输入8位移位寄存器74LS165设计
当74LS165的端口1由高到低跳变时,并行输入端的数据被置入寄存器;当端口1为高电平,且时钟禁止端(第15脚)为低电平时,允许TXD(P3.1)串行移位脉冲输入,这时在移位脉冲作用下,数据由右向左方向移动,以串行方式进入串行口的接收缓冲器中。

TXD(P3.1)作为移位脉冲输出与所有75LS165的移位脉冲输入端CP相连;
RXD(P3.0)作为串行数据输入端与74LS165的串行输出端7相连;P2.0与端口1相连,用来控制74LS165的串行移位或并行输入;74LS165的时钟禁止端(第15脚)接地,表示允许时钟输入。

74LS165原理图如下图3-4所示。

S I
10D 011D 112D 213D 314D 43D 54D 65D 76S O 9
C L K 2
Q H 7I N H 15S H /L D 1U 374L S 165 3-4 74LS165原理图 3.2软件设计 利用查询方式查询串行口接收中断标志位RI 状态控制程序的执行顺序,若RI=1,则调用服务子程序,否则继续查询;并通过特殊功能寄存器A 将数据送入P1口控制发光二极管的状态。

3.2.1 流程图设计
开始
设置堆栈指针
先后将P2.0清零置1
设置串口方式0且
REN=1
数据接收完
毕?
将RI 清零
读入数据并送至P1口
调用延时子程序
数据采集结
束?
结束调用延时子程序
N Y
N Y
3.2.2 程序的编写与仿真 建立工程项目和文本文件利用汇编语言编写程序并保存为文件名为“扩展8个输入端口设计.A51”文件。

调试程序时出错,由于不存在指令DEC DPTR ,未能编译成功,后来将其删除并利用其他指令完成了相同的功能,调试且编译成功。

程序见附件一。

打开仿真软件Proteus,按照预先画好的电路原理图在Proteus软件中绘制相应图形。

绘制完毕后将由Keilc51生成的.hex文件导入单片机进行仿真。

电路图见附件二。

3.3 实物制作
元器件布局并按照原理图在万能板上安装器件,将晶振紧靠AT89S52以减少寄生电容,保证振荡器稳定、可靠地工作。

且将拨动开关与其所对应的发光二极管相对应。

安装完毕后进行焊接并检查是否有虚焊和漏焊。

4.结果与结论
4.1设计结果
设计完成任务且实物电路能很好的实现设计要求中所规定的内容。

4.2设计结论
在元器件的布局中未设计电源线和地线的多点接入出,使得焊接过程中电源线和地线的焊接困难,将书友电源线接至一点,地线接到一点,致使电路板的美观性下降。

改进措施:可以将万能电路板上的矩形铜条割断,一侧为电源,一侧为地即可。

5.收获与致谢
通过这次单片机实习,我们小组完成的实物电路板完全实现了任务书预期的要求。

在实习的过程中也遇到了很多麻烦:第一,编写程序时感到知识不熟练不能熟悉地写出程序,而且没有编程的思想,经我们多方查阅资料,分析相关例子,并在一起研究探讨以及和指导老师的指导矫正最终完成了程序;第二,在焊接过程中由于长时间没有进行焊接而使焊接的结果不是很美观,要焊接的芯片引脚太多太乱而感到无处下手,尤其是74LS164不尽管脚多而且小;第三,由于第一次使用万能板焊接元器件排线比较乱;尽管麻烦很多最终还是完成了电路板的焊接和调试,达到了预期要求。

6.参考文献
[1] 张毅刚.单片机原理与应用.北京:高等教育出版社,2004.1
[2] 何立民.单片机应用技术选编.北京:北京航空航天大学出版社,1993.6
[3] 侯玉宝.基于Proteus的51系列单片机设计与仿真.西安:电子工业出版社,2009.8
7.附件
附件一:程序
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN : MOV SP,#30H ;设置堆栈指针
L CALL DELAY ;调用延时子程序
START: CLR P2.0 ;并行置入数据
SETB P2.0 ;允许串行移位
MOV SCON , #10H ;设置串口方式0,允许接收,启动接收SINT: JNB RI ,SINT ;未接收完一帧,等待
CLR RI ;RI标志清零,准备下一次接收
MOV A,SBUF ;读入数据并送至P1口
CPL A ;对累加器A中的内容取反
MOV P1,A ; 将数据送到端口P1
LCALL DELAY0 ;调用延时子程序
SJMP START
SJMP $
DELAY : MOV R6,#100 ;延时子程序设计
DEL0 : MOV R5,#100
DEL1 : MOV R4,#50
DEL2 : DJNZ R4,DEL2
DJNZ R5,DEL1
DJNZ R6,DEL0
RET
DELAY0 : MOV R3,#0FFH ;延时子程序设计
DEL00 : MOV R2,#0FFH
DEL01 : DJNZ R2,DEL01
DJNZ R3,DEL00
RET
END
附件二:电路原理图
+V C C
G N D G N D
+V C C +V c c C 133p
C 2
33p
S I 10
D 011D 112D 213D 314D 43D 54D 65D 76S O 9
C L K 2
Q H
7I N H 15S H /L D 1U 3
74L S 165
S W 7S W 6S W 5S W 4S W 3S W 1S W 0
R 1
680R
R 2
680R
R 3
680R
R 4680R
R 5680R
R 6
680R
R 7
680R
R 8
680R
R 9
680R
R 10680R
R 11
680R
R 12
680R
R 13
680R
R 14
680R
R 15
680R
R 16
680R
11.0592M H z
C 3
104p
R 17
10K
S W 2B R 1
2W 10G
V I 1V O 3G N D
2
U 2
7805C 4
104p
C 5
104p
S W 8
S W -S P S T
R 18
680R D 9
10A 01
C 6
1000u
电源电路
复位电路
时钟电路
D 1
L E D -R E D
D 2L
E D -R E D
D 3
L E D -R E D
D 4
L E D -R E D
D 5
L E D -R E D
D 6
L E D -R E D
D 7
L E D -R E D
D 10
L E D -R E D
D 8
L E D -R E D
X T A L 2
18X T A L 1
19A L E 30E A
31
P S E N 29R S T
9P 0.0/A D 039P 0.1/A D 138P 0.2/A D 237P 0.3/A D 336P 0.4/A D 435P 0.5/A D 534P 0.6/A D 633P 0.7/A D 7
32
P 1.0/T 21P 1.1/T 2E X 2P 1.23P 1.34P 1.45P 1.56P 1.67P 1.78P 3.0/R X D 10P 3.1/T X D 11P 3.2/I N T 012P 3.3/I N T 113P 3.4/T 014P 3.7/R D
17
P 3.6/W R 16P 3.5/T 115P 2.7/A 15
28
P 2.0/A 821P 2.1/A 922P 2.2/A 1023P 2.3/A 1124P 2.4/A 1225P 2.5/A 1326P 2.6/A 1427U 4
A T 89S 52
T R 1
T R A N -2P 2S
C 7
1000u
附件三:程序流程图
开始
设置堆栈指针
先后将P2.0清零置1
设置串口方式0且
REN=1
数据接收完毕?
将RI 清零
读入数据并送至P1口
调用延时子程序
数据采集结束?
结束
调用延时子程序
N
Y N
Y
附件四:元器件清单
名称型号与规格数量
电阻680R 17
电阻10K 1
电容32p 2
电容104p 3
电容1000u 2
7805 1
74LS165 1
AT89S52 1 绿色发光二极管 1
黄色发光二极管8
红色发光二极管 1 桥堆2W10 1
按键开关 1
拨动开关9
12MHz晶振 1
40脚底座 1
附件五:实物图照片
指导教师评语:
课程设计报告成绩:,占总成绩比例: 30%
课程设计其它环节成绩:
环节名称:考勤,成绩:,占总成绩比例: 20% 环节名称:综合,成绩:,占总成绩比例: 50% 总成绩:
指导教师签字:
年月日本次课程设计负责人意见:
负责人签字:
年月日。

相关文档
最新文档