基于单片机的扩展8个输入端口的设计.doc_第1页
基于单片机的扩展8个输入端口的设计.doc_第2页
基于单片机的扩展8个输入端口的设计.doc_第3页
基于单片机的扩展8个输入端口的设计.doc_第4页
基于单片机的扩展8个输入端口的设计.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

扩展扩展 8 8 个输入端口设计个输入端口设计 摘摘 要 要 本设计主要利用型号为 AT89S52 的单片机及并行输入 8 位移位寄存器 74LS165 扩展了 8 个单片机的输入端口 并利用编程软件 Keilc51 及仿真软件 Proteus 编写与设计要求匹配的程序并进行了仿真 由于利用汇编语言编写单片机程序循环次 数最大为 255 故循环次数受限 而利用 C 语言无限循环语句编写程序则循环次数可以 达到很大 可解决此问题 关键词 关键词 AT89S52 74LS165 扩展 串行口通信 目目 录录 1 设计背景 1 2 设计方案 1 2 1 方案一 查询方式和 P1 口低电平输出 1 2 2 方案二 中断方式和 P1 口高电平输出 1 3 方案实施 1 3 1 硬件设计 1 3 1 1 电源电路的设计 1 3 1 2 复位电路设计 2 3 1 3 时钟电路设计 2 3 1 4 并行输入 8 位移位寄存器 74LS165 设计 3 3 2 软件设计 4 3 2 1 流程图设计 5 3 2 2 程序的编写与仿真 5 3 3 实物制作 6 4 结果与结论 6 4 1 设计结果 6 4 2 设计结论 6 5 收获与致谢 6 6 参考文献 6 7 附件 6 附件一 程序 6 附件二 电路原理图 8 附件三 程序流程图 9 附件四 元器件清单 10 附件五 实物图照片 11 1 设计背景 随着微电子技术的发展 越来越多的电子产品的设计都向数字化 智能化 自动 化方向发展 各种电子设备及通信系统的复杂度 集成度越来越高 大批主导电子产 品 如计算机 数字音响 数字电视 数控机床等都广泛应用了单片机技术 为了赶 上时代的步伐 同时也为了培养大学生的实际动手能力 开发能力 独立思考能力分 析实践能力 将理论应用于社会生产实践的能力 故而开展此次课程设计活动 2 设计方案 2 12 1 方案一 查询方式和方案一 查询方式和 P1P1 口低电平输出口低电平输出 编写程序通过对串行口接收中断标志位 RI 状态的查询控制程序的执行顺序并利用 P1 口输出低电平驱动发光二极管显示结果 2 22 2 方案二 中断方式和方案二 中断方式和 P1P1 口高电平输出口高电平输出 编写程序通过对串行口接收中断标志位 RI 状态的查询产生中断请求 控制程序的 执行顺序并利用 P1 口输出高电平驱动发光二极管显示结果 由于 AT89S52 单片机本身的中断数量仅有 5 个 为了以后功能的扩展 节省中断 源且本设计对效率要求不高 故采用查询方式 又考虑到灌电流与拉电流的优缺点 利用 P1 口输出低电平驱动发光二极管 基于以上两方面的考虑 本设计采用方案一实 现设计要求 3 方案实施 3 13 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 1 VO 3 GND 2 U2 7805 C4 104p C5 104p SW8 SW SPST R18 680R D9 10A01 C6 1000u 电源电路 D8 LED RED TR1 TRAN 2P2S C7 1000u 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 XTAL2 C1 33p C2 33p 11 0592MHz 时钟电路 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 所示 SI 10 D0 11 D1 12 D2 13 D3 14 D4 3 D5 4 D6 5 D7 6 SO 9 CLK 2 QH 7 INH 15 SH LD 1 U3 74LS165 3 4 74LS165 原理图 3 23 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 33 3 实物制作实物制作 元器件布局并按照原理图在万能板上安装器件 将晶振紧靠 AT89S52 以减少寄生 电容 保证振荡器稳定 可靠地工作 且将拨动开关与其所对应的发光二极管相对应 安装完毕后进行焊接并检查是否有虚焊和漏焊 4 结果与结论 4 14 1 设计结果设计结果 设计完成任务且实物电路能很好的实现设计要求中所规定的内容 4 24 2 设计结论设计结论 在元器件的布局中未设计电源线和地线的多点接入出 使得焊接过程中电源线和 地线的焊接困难 将书友电源线接至一点 地线接到一点 致使电路板的美观性下降 改进措施 可以将万能电路板上的矩形铜条割断 一侧为电源 一侧为地即可 5 收获与致谢 通过两周的课程实习 理解了 纸上得来终觉浅 绝知此事要躬行 的道理 理 论和实际间的差距相当大 平常学习的原理大多在理想的条件下 在实际的情况下不 能完全适用 而要想克服实际与理论间的沟壑 必须对课本知识有深刻的理解 虽然 课本知识不能完全的解决现实中的问题 但实际问题的解决绝对离不开课本知识 此 外 在这次实习中我要感谢给予我帮助和指导的杨欣老师以及我的同学 离开了他们 的帮助我不可能又快又好的完成设计任务 在此 我要将最真挚的感谢送给他们 6 参考文献 1 张毅刚 单片机原理与应用 北京 高等教育出版社 2004 1 2 何立民 单片机应用技术选编 北京 北京航空航天大学出版社 1993 6 3 侯玉宝 基于 Proteus 的 51 系列单片机设计与仿真 西安 电子工业出版社 2009 8 7 附件 附件一 程序附件一 程序 ORG 0000H LJMP MAIN ORG 0100H MAIN MOV SP 30H 设置堆栈指针 LCALL DELAY 调用延时子程序 START CLR P2 0 并行置入数据 SETB P2 0 允许串行移位 MOV SCON 10H 设置串口方式 0 允许接收 启动接收 SINT JNB RI SINT 未接收完一帧 等待 CLR RI RI 标志清零 准备下一次接收 MOV A SBUF 读入数据并送至 P1 口 MOV P1 A 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 附件二 电路原理图附件二 电路原理图 VCC GND GND VCC Vcc C1 33p C2 33p SI 10 D0 11 D1 12 D2 13 D3 14 D4 3 D5 4 D6 5 D7 6 SO 9 CLK 2 QH 7 INH 15 SH LD 1 U3 74LS165 SW7SW6 SW5SW4SW3SW1SW0 R1 680R R2 680R R3 680R R4 680R R5 680R R6 680R R7 680R R8 680R R9 680R R10 680R R11 680R R12 680R R13 680R R14 680R R15 680R R16 680R 11 0592MHz C3 104p R17 10K SW2 BR1 2W10G VI 1 VO 3 GND 2 U2 7805 C4 104p C5 104p SW8 SW SPST R18 680R D9 10A01 C6 1000u 电源电路 复位电路 时钟电路 D1 LED RED D2 LED RED D3 LED RED D4 LED RED D5 LED RED D6 LED RED D7 LED RED D10 LED RED D8 LED RED XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0 0 AD0 39 P0 1 AD1 38 P0 2 AD2 37 P0 3 AD3 36 P0 4 AD4 35 P0 5 AD5 34 P0 6 AD6 33 P0 7 AD7 32 P1 0 T2 1 P1 1 T2EX 2 P1 2 3 P1 3 4 P1 4 5 P1 5 6 P1 6 7 P1 7 8 P3 0 RXD 10 P3 1 TXD 11 P3 2 INT0 12 P3 3 INT1 13 P3 4 T0 14 P3 7 RD 17 P3 6 WR 16 P3 5 T1 15 P2 7 A15 28 P2 0 A8 21 P2 1 A9 22 P2 2 A10 23 P2 3 A11 24 P2 4 A12 25 P2 5 A13 26 P2 6 A14 27 U4 AT89S52 TR1 TRAN 2P2S C7 1000u 附件三 程序流程图附件三 程序流程图 开始 设置堆栈指针 先后将P2 0清零置1 设置串口方式0且 REN 1 数据接收完 毕 将RI清零 读入数据并送至P1口 调用延时子程序 数据采集结 束 结束 调用延时子程序 N Y N Y 附件四 元器件清单附件四 元器件清单 名称 型号与规格 数量 电阻 680R17 电阻 10K1 电容 32p2 电容 104p3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论