扩展8个输入端口设计.docx
- 文档编号:30723375
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:22
- 大小:631.34KB
扩展8个输入端口设计.docx
《扩展8个输入端口设计.docx》由会员分享,可在线阅读,更多相关《扩展8个输入端口设计.docx(22页珍藏版)》请在冰豆网上搜索。
扩展8个输入端口设计
课程设计说明书
课程名称:
《单片机技术》
设计题目:
扩展8个输入端口设计
院系:
电子信息与电气工程学院
学生姓名:
学号:
专业班级:
指导教师:
2012年5月18日
摘要:
本次课程设计的主要内容是扩展8个并行输入端口;硬件设计的电源部分由桥堆2W10和三端稳压集成电路实现,实现并入串出的电路部分主要由移位寄存器芯片74LS165与AT89S52构成,输入信号通过74LS165芯片串行传送给单片机;编写程序通过对串行口接收中断标志位RI状态的查询控制程序的执行顺序并利用P1口输出低电平驱动发光二极管显示结果;电路系统的主要功能是扩展8个并行输入端口;该电路系统各模块工作正常,能够实现设计要求。
关键词:
7805;AT89S52;74LS165;并行输入;串行通信
课程设计任务书
设计题目
扩展8个输入端口设计
学生姓名
所在院系
电子信息与电气工程学院
专业、年级、班
设计要求:
1.单片机串行口工作于方式0,使用并入串出移位寄存器芯片74LS165扩展出8个输入口,接八只拨动开关,作为单片机数据输入端,控制单片机输出端口P1所接的8个LED;
2.具有电源开关及指示灯,有复位按键;
3.使八只拨动开关可以分别控制一个LED灯的工作状态;
4.正常工作时,拨动开关,即可以看到相应的二极管点亮与熄灭。
学生应完成的工作:
1.用AltiumDesigner完成扩展8个输出端口的原理图设计;
2.在Keil上用汇编语言完成扩展8个输入端口的实现程序;
3.根据原理图完成实物焊接,将程序烧进单片机之后进行调试,直到达到设计要求;
4.完成课程设计说明书;
5.实习结束时,提交设计实物与课程设计说明书(打印版和电子稿);
6.该生应完成原理图的设计、软件的调试、电路板的焊接工作和电路系统的最后调试工作。
参考文献阅读:
[1]张毅刚,彭喜元,彭宇.单片机原理及应用.北京:
高等教育出版社,2003.12
[2]杜树春.单片机C语言和汇编语言混合编程实例详解.北京:
北京航空航天大学出版社,2006.6
[3]徐爱钧.智能化测量控制仪表原理与设计.北京:
北京航空航天大学出版社,2007.8
[4]于永,戴佳,常江.51单片机实例精讲.北京:
电子工业出版社,2006.4
[5]朱宇光.单片机应用新技术教程.西安:
电子工业出版社,2004.
工作计划:
5月7号——5月9号完成原理图设计;
5月10号——5月11号完成程序设计;
5月14号——5月16号电路板的焊接和调试;
5月17号——5月18号完成课程设计说明书。
任务下达日期:
2012年5月7日
任务完成日期:
2012年5月18日
指导教师(签名):
学生(签名):
目录
1.设计背景1
2.设计方案1
2.1方案一1
2.2方案二1
3.方案实施2
3.1硬件设计2
3.1.1方案比较与选择2
3.1.2系统框图2
3.1.3主要元器件简介2
3.1.4对AltiumDesigner软件的简单介绍3
3.1.5电源电路的设计3
3.1.6复位电路设计4
3.1.7时钟电路设计4
3.1.8并行输入8位移位寄存器74LS165工作原理5
3.1.9单片机与移位寄存器74LS165的串行通信5
3.2软件设计6
3.2.1软件流程图设计6
3.2.2程序的编写8
3.3实物焊接9
4.结果与结论9
5.收获与致谢10
6.参考文献11
7.附件12
附件一:
系统电路原理图12
附件二:
程序流程图13
附件三:
源程序14
附件四:
元器件清单15
附件五:
系统实物图16
1.设计背景
AT89S5x系列单片机有4个并行口(P0,P1,P2,P3口),但对一个稍微复杂的应用系统来说,真正可供用户使用的并行口数量是有限的,况且常常因扩展I2C和SPI的器件需占用某些并行口,这就迫使我们不得不扩展并行口以满足实际的需要。
在RXD和TXD没被使用的情况下,可以利用RXD和TXD端口和移位寄存器74LS165将串行口扩展为多组八位的并行输入口,这样就可以用本来闲置不用的端口进行并行口的扩展,能充分利用单片机有限的I/O资源,并扩展了并行口的数量。
随着微电子技术的发展,越来越多的电子产品的设计都向数字化、智能化、自动化方向发展,各种电子设备及通信系统的复杂度、集成度越来越高,大批主导电子产品,如计算机、数字音响、数字电视、数控机床等都广泛应用了单片机技术。
为了赶上时代的步伐,同时也为了培养大学生的实际动手能力、开发能力、独立思考能力分析实践能力,将理论应用于社会生产实践的能力,故而开展此次课程设计活动。
2.设计方案
2.1方案一:
使用74LS165实现并入串出查询方式和P1口低电平输出
通过拨动开关将信号传送给移位寄存器芯片74LS165,实现信号的并行输入,然后将AT89S52的(RXD)P3.0和(TXD)P3.1与移位寄存器芯片74LS165的QH非和CP相接当S/L非=1时且时钟禁止端(第15脚)为低电平时,允许TXD(P3.1)串行移位脉冲输入,这时在移位脉冲作用下,数据由右向左方向移动,以串行方式进入串行口的接收缓冲器中;编写程序通过对串行口接收中断标志位RI状态的查询控制程序的执行顺序并利用P1口输出低电平驱动发光二极管显示结果。
2.2方案二:
使用74LS165实现并入串出中断方式和P1口高电平输出
通过拨动开关将信号传送给移位寄存器芯片74LS165,实现信号的并行输入,然后将AT89S52的(RXD)P3.0和(TXD)P3.1与移位寄存器芯片74LS165的QH非和CP相接当S/L非=1时且时钟禁止端(第15脚)为低电平时,允许TXD(P3.1)串行移位脉冲输入,这时在移位脉冲作用下,数据由右向左方向移动,以串行方式进入串行口的接收缓冲器中;编写程序通过对串行口接收中断标志位RI状态的查询产生中断请求,控制程序的执行顺序并利用P1口输出高电平驱动发光二极管显示结果。
3.方案实施
3.1硬件设计
3.1.1方案比较与选择
由于AT89S52单片机本身的中断数量仅有5个,为了以后功能的扩展、节省中断源且本设计对效率要求不高,故采用查询方式。
又考虑到灌电流与拉电流的优缺点,利用P1口输出低电平驱动发光二极管。
基于以上两方面的考虑,本设计采用方案一实现设计要求。
3.1.2系统框图
根据课程设计要求,作为控制模块的AT89S52单片机要工作需要最小系统,而最小系统由晶振电路部分、复位电路部分和电源模块组成,由于要扩展八位并行输入口必定有扩展部分,作为扩展成功的标志输出,显示部分是必不可少的,故系统框图如图3-1所示。
图3-1系统框图
3.1.3主要元器件简介
下面对AT89S52单片机进行和74LS165移位寄存器进行简介。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
74LS165是八位并行输入/串行输出移位寄存器。
当1脚为低电平时,将输入数据D0-D7存入Q0-Q7,数据存入后,使1脚为高电平,10脚=0,15脚=0,CP2脚的8个时钟脉冲就能将并行数据从Q7=9脚串行移出。
/Q7=7脚移出的数据是反相的。
3.1.4对AltiumDesigner软件的简单介绍
先对AltiumDesigner进行一下简单的介绍,AltiumDesigner环境是一个软件集成平台,汇集了所有必要的工具来创建一个单一的应用程序中的电子产品开发完整的环境。
AltiumDesigner包括所有设计任务的工具:
从原理图和HDL设计输入,电路仿真,信号完整性分析,PCB设计以及基于FPGA的嵌入式系统设计和开发。
此外,AltiumDesigner环境可定制,以满足用户的各种需求。
在本次课程设计中主要使用AltiumDesigner软件绘制原理图。
3.1.5电源电路的设计
利用桥堆2W10对变压器输出的9V交流电压进行整流并利用三端稳压器7805对其稳压和变压输出稳定的5V电压。
注意在电路中接上开关和电源指示灯,指示灯要串接一个680欧姆的电阻。
其中C4、C5、C6、C7作为旁路电容,滤除高频分量使输出稳定。
具体电路原理图如图3-2所示。
图3-2电源电路
3.1.6复位电路设计
为了防止程序出错(如程序跑飞)或操作错误使系统处于死锁状态,需设计复位电路使AT89S52能够摆脱“跑飞”或“死锁”状态而重新启动程序。
当给复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可以使AT89S52复位,使程序从0000H单元开始执行。
复位电路可采用上电自动复位和按键手动复位两种方式,而按键手动复位又可以分为按键电平复位和按键脉冲复位两种方式。
本设计采用按键电平复位方式,电路图如下图3-3所示.
图3-3复位电路
3.1.7时钟电路设计
时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式,本设计采用内部时钟方式。
AT89S52内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。
C1和C2的典型值通常选择为30pF,本设计采用的电容值为33pF。
电容大小会影响振荡器频率高低、振荡器的稳定性和起振的快速性。
晶振频率范围通常是1.2~12MHz,本设计采用晶振的频率为11.0592MHz。
晶体频率越高,单片机速度就越快。
速度快对存储器的速度要求就高,则要求线间的寄生电容要小。
晶体和电容应尽可能与单片机靠近,以减少寄生电容,保证振荡器稳定、可靠地工作。
本设计的时钟电路图如图3-4所示。
图3-4时钟电路
3.1.8并行输入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-5所示。
图3-574LS165芯片
3.1.9单片机与移位寄存器74LS165的串行通信
图3-6为串行口外接一片8位并行输入串行输出的寄存器74LS165扩展一个8位并行输入口的电路。
当74LS165的S/L非端由高到低跳变时,并行输入端的数据被置入寄存器;当S/L非=1,且时钟禁止端(第15脚)为低电平时,允许TXD(P3.1)串行移位脉冲输入,这时在移位脉冲作用下,数据由右向左方向移动,以串行方式进入串行口的接收缓冲器中。
TXD(P3.1)作为移位脉冲输出与75LS165的移位脉冲输入端CP相连;RXD(P3.0)作为串行数据输入端与74LS165的串行输出端QH相连;P2.0与S/L非端相连,用来控制74LS165的串行移位或并行输入;74LS165的时钟禁止端(第15脚)接地,表示允许时钟输入。
在方式0,SCON中的TB8、RB8位没有用到,发送或接收完8位数据由硬件使TI或RI中断标志位置“1”,CPU响应TI或RI中断,在中断服务程序中向发送SBUF中送入下一个要发送的数据或从接收SBUF中把接收到的1B存入内部RAM中。
注意,TI或RI标志位必须由软件清“0”,采用如下指令:
CLRTI;TI位清“0”
CLRRI;RI位清“0”
方式0时,SM2位(多机通信控制位)必须为0。
图3-6单片机与移位寄存器74LS165的串行通信
3.2软件设计
3.2.1软件流程图设计
根据课题要求,进行分析:
(1)单片机工作在串行口方式0则需要对SCON设置,SM0、SM1必须置0;
(2)串行口中断,需要对RI,TI清零;(3)要使拨动开关能够控制相应的LED的工作状态,则需要通过串行口向外依次向单片机输出不同的数据;(4)由晶振为11.0592MHZ,频率过高,需要编写延时程序,每次对串行口输出数据后调用,才能够看清设计的结果是否满足课题要求。
利用查询方式查询串行口接收中断标志位RI状态控制程序的执行顺序,若RI=1,则调用服务子程序,否则继续查询;并通过特殊功能寄存器A将数据送入P1口控制发光二极管的状态。
软件流程图如图3-7所示。
图3-7程序流程图
3.2.2程序的编写
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVSP,#30H;设置堆栈指针
LCALLDELAY;调用延时子程序
START:
CLRP2.0;并行置入数据
SETBP2.0;允许串行移位
MOVSCON,#10H;设置串口方式0,允许接收,启动接收
SINT:
JNBRI,SINT;未接收完一帧,等待
CLRRI;RI标志清零,准备下一次接收
MOVA,SBUF;读入数据并送至P1口
MOVP1,A
LCALLDELAY0;调用延时子程序
SJMPSTART
SJMP$
DELAY:
MOVR6,#100;延时子程序设计
DEL0:
MOVR5,#100
DEL1:
MOVR4,#50
DEL2:
DJNZR4,DEL2
DJNZR5,DEL1
DJNZR6,DEL0
RET
DELAY0:
MOVR3,#0FFH;延时子程序设计
DEL00:
MOVR2,#0FFH
DEL01:
DJNZR2,DEL01
DJNZR3,DEL00
RET
END
3.3实物焊接
在完成所有的准备工作之后,接下来就是实物焊接了;由于此次用的是万能板,所以我需要先对元器件有一个合理的布局,使焊接更容易的同时也要保证元器件的布局美观大方。
焊接的技术要领:
一,烙铁头同时接触元件的引脚和板子上要焊接的部位。
二,送入焊锡丝。
将焊锡丝向烙铁头上推送,可以看到焊锡边送边化,等焊锡量正好时停止送焊锡。
三,保持烙铁头不动的状态,在焊锡完全熔化后继续加热3到5秒时间。
四,烙铁头离开焊点。
经验是让烙铁头的尖对着焊点退出。
注意不要拉出焊锡的尖状毛刺。
五,剪去多余的引脚。
由于此次使用的是万能板,所以对于导线的焊接是少不了的,下面简单叙述一下焊接导线的技术要领。
导线的焊接,在焊接前一定先对导线处理,让导线上先挂上焊锡,需要焊接的板子上的相应部分也应该上锡。
然后一只手拿导线对着要焊接的位置,另一只手拿烙铁,在烙铁头上熔化适量的焊锡去接触导线和板子的焊接部位。
如果是焊接导线和开关等元件的连接,应该对导线和开关的引脚都进行上锡处理,这样才能保证焊接成功。
最终经过两天的焊接工作,实物焊接顺利完成。
在实物焊接完成之后,在不插入单片机的情况下,对电路板进行调试,用万用表检查一下电路是否有短路或者断路的情况。
在初步调试结束之后,可以向单片机内烧写程序,然后把单片机插到40脚底座上,在没有接通电源之前,再次对电路进行调试,检查一下电路是否有短路或者断路的情况,以确保整个电路的安全可靠,在检查没有问题的情况下,接通电源。
最终我们做的整个电路系统可以正常工作,并且满足设计要求。
4.结果与结论
最终在我们小组的共同努力之下,我们完成了整个电路板的制作,在接上9V的交流电之后,然后打开电源开关,电源的指示灯亮,这说明电源模块可以正常工作(与此同时,我们看到8个LED灯都瞬间亮了一下,然后又都熄灭了,这是因为在接通电源开关时,发光二极管的阳极瞬间得电,但是由于单片机需要一定的反应时间,在发光二极管的阳极得电的时候单片机的P1口还处于低电平,此时会有电流流过发光二极管,所以发光二极管会亮,但是瞬间亮一下就灭了,因为单片机已经处于正常工作的状态了);接下来我拨动8只拨动开关,对应的LED灯会点亮,这说明我们的扩展模块可以正常工作,,把8个拨动开关都拨到接通的位置,然后按下复位按键,8个LED灯都灭了,松开复位按键后,过了几秒钟,8个LED灯才重新点亮;因为8个LED灯都是共阳极接法,而单片机在复位时,对应的I/O口都输出高电平,所以8个LED灯都灭了,这是合理的,
但是在松开复位按键时,8个LED灯并不会立即点亮,这是因为在复位电路中有一个10uF电容和10K的电阻;在按下复位按键后,电容充电,在松开复位按键后,电容有一个放电的过程,在放电的过程中电容依然会保持一个使单片机复位的的电压,所以8个LED灯不会立即点亮时正常的,这说明复位电路是可以正常工作的。
根据以上各个模块的工作情况,我们可以得出结论:
我们最终完成的电路系统可以满足设计要求。
电路的部分工作
状态如图3-8、图3-9、图3-10所示。
图3-8实物图展示图3-9实物图展示图3-10实物图展示
5.收获与致谢
这次时间为两个星期的课程设计试验大大培养了我的动手能力和同学间的相互合作精神。
从一开始我看到自己选定的题目,就在思考怎样才能设计出一个正确的原理图,这个很重要,也是所有工作的基础,如果要完成原理图设计工作,这就要求我们有足够的理论知识储备;原理图的设计是理论与实践的交叉点,也是这次课程设计的重中之重,所以我们必须确保原理图的百分百正确。
在本次课程设计中,系统的原理图部分由我完成,在设计原理图的过程中,我查阅了大量的参考资料,对各个芯片的管脚功能和电路模块进行了深入的研究,这样才可以是我对原理图的设计有一个整体上的把握;在查阅资料的过程中,一方面加深了我对单片机系统的理解,另一方面增强了我对设计成功的信心。
最终在我们组的努力下,一张完整并且正确的原理图绘制工作完成。
在硬件原理图设计完成之后,接下来的工作是设计软件部分,这一部分工作由我们组共同完成,本次软件设计我们使用汇编语言进行编写,首先我们要进行需求分析,找出编写程序的思路,然后画出程序流程图,这样我们就可以按照流程图编写程序,最终我们编写的程序调试通过了,在编写程序的过程中,我们更深入的理解了一些基本的指令的使用方法和汇编语言的语法规则,同时使我们对单片机上的硬件资源有了更深入的理解。
在一切准备工作都完成之后,接下来的任务就是实物的制作,由于原理图是由我绘制的,所以实物焊接的工作也由我来完成,由于本次课程设计使用的是万能板,跳线比较多,焊接工作有一定的难度;所以在实焊接的过程中一定要找准对应的管脚,不能接错,这份工作是对一个人细心程度的考验;最终经过两天的焊接工作,实物焊接顺利完成。
并且我们做的整个电路系统可以正常工作,并且满足设计要求。
通过焊接在电路板上焊接电子元器件,我再一次提高了自己的动手能力。
在本次课程设计中我们组做的电路系统可以正常工作,并且满足设计要求,这个结果是对我们组所有成员的努力付出的肯定,与此同时这次课程设计要特别感谢XXX老师的耐心辅导以及在设计中给出的宝贵建议和意见,在此我表示深深的感谢!
6.参考文献
[1]张毅刚,彭喜元,彭宇.单片机原理及应用.北京:
高等教育出版社,2003.12
[2]杜树春.单片机C语言和汇编语言混合编程实例详解.北京:
北京航空航天大学出版社,2006.6
[3]徐爱钧.智能化测量控制仪表原理与设计.北京:
北京航空航天大学出版社,2007.8
[4]于永,戴佳,常江.51单片机实例精讲.北京:
电子工业出版社,2006.4
[5]朱宇光.单片机应用新技术教程.西安:
电子工业出版社,2004.
7.附件
附件一:
系统电路原理图
附件二:
程序流程图
附件三:
源程序
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
MOVSP,#30H;设置堆栈指针
LCALLDELAY;调用延时子程序
START:
CLRP2.0;并行置入数据
SETBP2.0;允许串行移位
MOVSCON,#10H;设置串口方式0,允许接收,启动接收
SINT:
JNBRI,SINT;未接收完一帧,等待
CLRRI;RI标志清零,准备下一次接收
MOVA,SBUF;读入数据并送至P1口
MOVP1,A
LCALLDELAY0;调用延时子程序
SJMPSTART
SJMP$
DELAY:
MOVR6,#100;延时子程序设计
DEL0:
MOVR5,#100
DEL1:
MOVR4,#50
DEL2:
DJNZR4,DEL2
DJNZR5,DEL1
DJNZR6,DEL0
RET
DELAY0:
MOVR3,#0FFH;延时子程序设计
DEL00:
MOVR2,#0FFH
DEL01:
DJNZR2,DEL01
DJNZR3,DEL00
RET
END
附件四:
元器件清单
元器件名称
型号规格
数量
备注
电阻
680Ω
17
电阻
10K
1
瓷介电容
33pF
2
瓷介电容
104pF
2
电解电容
100uF
2
电解电容
10uF
4
7805
1
74LS165
1
16脚底座
AT89S52
1
红色发光二极管
8
绿色发光二极管
1
桥堆2W10
1
按键开关
1
拨动开关
9
晶振
11.0592MHz
1
40脚底座
1
Header2
1
、
附件五:
系统实物图
指导教师评语:
课程设计报告成绩:
,占总成绩比例:
30%
课程设计其它环节成绩:
环节名称:
考勤,成绩:
,占总成绩比例:
20%
环节名称:
综合,成绩:
,占总成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 扩展 输入 端口 设计