




免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆大学城市科技学院重庆大学城市科技学院 电气信息学院电气信息学院 单片机课程设计报告单片机课程设计报告 姓名姓名陈睿陈睿 学号学号2006000520060005 专业专业电子信息工程电子信息工程 班级班级20062006 级级 0101 班班 指导教师指导教师杨丽清杨丽清 1 目 录 一一 任务要求任务要求 2 2 二 总体方案设计过程二 总体方案设计过程 2 2 一 硬件系统设计 一 硬件系统设计 2 二 软件系统设计 二 软件系统设计 4 三 所遇到的问题及解决三 所遇到的问题及解决 5 5 四 总结四 总结 5 5 五 附录五 附录 6 源程序代码源程序代码 6 元件清单元件清单 9 六 参考文献六 参考文献 9 2 二二 任务要求任务要求 交通灯控制系统交通灯控制系统 采用 51 系列单片机 AT89C51 为中心器件设计交通灯控制系统 发光二极管代表红 绿灯 数码管显示时间 车道状态时间 s南行北行西行东行 10 39 红红绿绿 240 79 绿绿红红 通过按键实现以下情况处理 1 紧急情况处理 设置紧急处理键和恢复键 模拟意外事故等实际情况导致交通突然瘫痪 此时就 需要手动对交通状况进行紧急情况下的处理 待意外事故结束后按下恢复键恢复交通 当按下紧急情况处理键时 系统实现车道人行道红灯全部亮起 禁止一切车辆和行人 通行 LED 数码管显示 88 发光二极管全亮 2 交通遇忙调整 为了增加交通灯指示的灵活性 提高交通的流通效率 可根据调查交道口的车流 量或交警的经验来重设各交通灯的点亮时间 为简化处理 我们假设了两种情况 南 北路段忙和东西路段忙 状况东西道车行时间 s 南北道车行时间 s 东西路段忙 6020 南北路段忙 2060 二 二 总体方案设计总体方案设计过程过程 一 硬件系统设计 一 硬件系统设计 1 基本电路的构成 80C51 单片机 数码管显示 时间模块 LED 红绿灯 键盘输入模块 应急键 恢复 键 时间调整键 3 2 用 protel 做出电路元器件原理图 3 用 protel 生成 PCB 电路板 4 用 Proteus 7 Professional 做出软件仿真的原理图 4 二 软件系统设计 二 软件系统设计 1 软件流程图 5 2 软件编写思路 根据功能划分模块 1 初始化程序段 对红绿灯及内部的变量及 LED 数码显示 定时计数器初始化 2 按键及 LED 扫描程序段 实现 LED 的动态显示及按键状态的查询 3 定时器中断程序段 实现 1s 的计时功能 4 数码显示处理模块 实现计数器的计数和数字到段码的转换处理 5 状态处理模块 实现对特殊情况的处理操作和红绿灯状态的转换 三 所遇到的三 所遇到的问题及解决问题及解决 1 编写按键处理子程序时 发现若采用直接把整个端口的值读进来 要用比较程序进行挨个 比较 而且如果有几个按键同时按下的情况也需要考虑 使得整体的运行速度降低 解决 因为单片机有强大的位处理功能 所以对按键的查询采用了位操作语句 大大简化 程序 提高了运行的速度 2 LED 动态显示的位选口和交通灯控制口共用一个端口 造成移位的困难 解决 要实现动态显示通常是要用移位指令进行移位操作 这里 由于输出口也要做交通 灯的控制端 用移位操作的话会使问题变得非常复杂 同样是用位操作语句 进行动态的位选输出 而不改变交通灯控制端的值 四四 总结 总结 通过这次独立完成课程设计 确实学到了很多东西 一个看似单一的功能 做起来却是由许许 多多的波折 平常很少注意的一些细节 造成了严重的错误 往往因为一个符号 进度就停止了 通过对问题的分析 和对网上类似程序的阅读发现了经典的 16 进制数装换成 10 进制数并分开存放 的方法 通过这次实践让我懂得了 个人的知识总是有局限性的 书本上的内容知识也是有限的 只有通过通过上网查找资料和与同学的交流 分析问题 解决问题才能学到真正的东西 在这次程序设计中因为采取了正确的设计模式 分析要实现的功能 硬件的安排 软件功能块 的划分 子功能块的开发 子功能块的调试 主程序开发 软件仿真 硬件验证功能 大大减少 了错误率 提高整体编写的效率 因为事先经过了软件仿真 避免了因为硬件本身的损坏和连接的 不牢固所造成的一些错误 使得上机硬件调试能够一次性通过 软件的编写中采取了分功能块的做法 分步完成每个功能 块的开发 最后进行总程序的编写 因为把问题进行了细化 所以使得复杂问题简单话了 每个功能块之间是独立的 而且功能都是单 独验证的 所以避免了出现错误却无法定位到程序的尴尬 总之 这次实践活动中 我深刻体会到 只有科学的安排与耐心地分析才能够最有效率地解决 问题 完善的功能是通过一次次的改正错误来实现的 6 五 附录五 附录 附录一附录一 源程序代码源程序代码 WE CROSSEQU60H 东西路口计时寄存器 NS CROSSEQU70H 南北路口计时寄存器 WE BUFF 0EQU40H 显示码缓冲区 1 WE BUFF 1EQU41H 显示码缓冲区 2 NS BUFF 0EQU42H 显示码缓冲区 2 NS BUFF 1EQU43H 显示码缓冲区 2 STATE BUFFBIT00H 交通灯状态寄存器 LED WE RBITP1 4 东西红灯 LED WE GBITP1 5 东西绿灯 LED SN RBITP1 6 南北红灯 LED SN GBITP1 7 南北绿灯 LED 1BITP1 0 南北 1 位选 LED 2BITP1 1 南北 2 位选 LED 3BITP1 2 东西 1 位选 LED 4BIT P1 3 东西 2 位选 KEY1EQUP0 0 紧急情况处理键 KEY2 EQUP0 1 恢复 KEY3 EQUP0 2 东西忙 KEY4 EQUP0 3 南北忙 初始化程序段 ORG0000H AJMPMAIN ORG 000BH AJMP IP0 ORG 0030H MAIN MOV TMOD 01H MOVTH0 3CH MOVTL0 0B0H SETB ET0 SETB EA 初始化定时计数器 MOV P0 0FFH 初始化 P0 口 MOVR2 014H 写入定时器重复次数 SETB TR0 定时器开始计时 MOV WE CROSS 40D 时间初值设定 MOVR5 WE CROSS 时间初值设定 MOV NS CROSS 40D 时间初值设定 MOV R6 NS CROSS 时间初值设定 LCALLSTATE1 开机状态东西通行 按键及 LED 扫描程序段 SCAN MOV P2 WE BUFF 1 输出段吗 CLR LED 1 输出位选 ACALL CLR LED 调用清显示 MOV P2 WE BUFF 0 输出段吗 CLRLED 2 输出位选 ACALLCLR LED 调用清显示 MOV P2 NS BUFF 1 输出段吗 CLRLED 3 输出位选 ACALLCLR LED 调用清显示 MOV P2 NS BUFF 0 输出段吗 CLR LED 4 输出位选 ACALL CLR LED LED 扫描 JBKEY3 KEY3 PRC 7 JBKEY4 KEY4 PRC 键盘扫描 SJMP SCAN CLR LED SETBLED 1 清显示子程序 SETB LED 2 SETBLED 3 SETB LED 4 RET 特殊情况处理 子程序 KEY1 PRC LCALL STATE2 转换成紧急状态 JB KEY2 k2 恢复键是否按下 SJMP KEY1 PRC k2 LCALL STATE1 若恢复键按下则恢复成状态 1 SJMP SECOND KEY3 PRC CLRTR0 暂停计时器 MOV WE CROSS 60D MOV R5 WE CROSS MOV NS CROSS 20D MOV R6 NS CROSS 更改 LED 计数初值 MOV TMOD 01H MOVTH0 3CH MOVTL0 0B0H SETBET0 SETBEA MOV P0 0FFH MOV R2 014H SETBTR0 重新初始化并打开计时器 LCALL STATE1 设置当前状态为状态 1 SJMP SCAN 返回 LED 扫描及键盘扫描程序段 KEY4 PRC CLRTR0 MOV WE CROSS 20D MOV R5 WE CROSS MOV NS CROSS 60D MOV R6 NS CROSS MOV TMOD 01H MOV TH0 3CH MOV TL0 0B0H SETB ET0 SETB EA MOV P0 0FFH MOV R2 014H SETB TR0 重新初始化并打开计时器 LCALL STATE1 设置当前状态为状态 1 LJMP SCAN 返回 LED 扫描及键盘扫描程序段 定时器中断程序 IP0 PUSH ACC 把 A 压入堆栈 保护 A DJNZ R2 RET0 时间寄存器 R2 自减 MOV R2 013H 若到一秒则重新恢复 R2 ACALL SECOND 每过一秒调用 second 子程序 RET0 MOV TH0 3CH MOV TL0 0B0H 定时器初始化 SETB TR0 定时器启动 POP ACC 弹出 A RETI 返回到中断点 交通状态状态处理子程序 SECOND JB KEY1 KEY1 PRC 每秒检测紧急按键是否按下 按下则处理 SECON JB STATE BUFF SECOND2 若处于东西通行状态 0 则跳转到 SECOND2 DJNZ R6 SE2 若 LED 计时器不为零则跳转 SE2 MOV WE BUFF 1 3FH 若计数器已经计完则显示 MOV WE BUFF 0 3FH 8 MOV NS BUFF 0 3FH MOV NS BUFF 1 3FH 计时器都显示 0 LCALL STATE TRUN 红绿灯状态转换 MOV R5 WE CROSS MOV R6 NS CROSS 重装计数初值 RET SE2 LCALLSAVE 进行数码的转换 RET SECOND2 DJNZ R5 SE1 自减若没计完则跳转到 SE2 MOV WE BUFF 1 3FH 若减完就显示 MOV WE BUFF 0 3FH MOV NS BUFF 0 3FH MOV NS BUFF 1 3FH 计时器都为 0 LCALL STATE TRUN 红绿灯状态转换 MOV R5 WE CROSS MOV R6 NS CROSS 重装计数初值 RET SE1 LCALL SAVE 进行数码的转换 RET 把数字拆开并转化为段码存入缓存 SAVE JB STATE BUFF SAVE2 根据当前红绿灯状态进行不同处理 MOV A R6 东西路口计时寄存器 R6 SJMP SAVE3 SAVE2 MOV A R5 SAVE3 MOV B 10 16 进制数拆成两个 10 进制数 DIV AB LCALL NUM2CODE 高位的 10 进制数转换成段码 MOV WE BUFF 1 A MOV NS BUFF 1 A 段码存入缓存 MOV A B LCALL NUM2CODE 高位的 10 进制数转换成段码 MOV NS BUFF 0 A MOV WE BUFF 0 A 拆开存入缓存 RET NUM2CODE MOV DPTR NUM 查表将数字转换段码 MOVC A A DPTR RET 状态转换子程序 STATE TRUN JB STATE BUFF TRUN1 如果是状态 1 则变为状态 0 LCALL STATE1 RET TRUN1 LCALL STATE0 如果是状态 0 则变为状态 1 RET STATE0 状态 0 南北通行 SETBLED WE R 东西红灯亮 CLRLED WE G 东西绿灯灭 CLRLED SN R 南北红灯灭 SETBLED SN G 南北绿灯灭 CLRSTATE BUFF RET STATE1 状态 1 东西通行 SETBLED SN R 南北红灯亮 CLRLED SN G 南北绿灯灭 CLRLED WE R 东西红灯灭 SETBLED WE G 东西绿灯灭 SETBSTATE BUFF RET STATE2 状态 2 交通事故处理状态 SETBLED SN R 南北红灯亮 CLRLED SN G 南北绿灯灭 9 CLRLED WE G 东西绿灯灭 SETBLED WE R 东西红灯灭 MOV P2 7FH 段码 8 CLR LED 1 红灯全亮 CLRLED 2 CLRLED 3 CLRLED 4 RET NUM DB 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 0 9 段码表 END 附录二附录二 元件清单元件清单 序号 元 件型 号位 号数 量 110 FC1 1 只 2 瓷片电容 30pF C2 C31 只 3晶振12MHzCRYSTAL 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年量子计算在金融风险模拟中的风险管理与技术创新案例研究报告
- 煤炭场地的租赁合同协议
- 矿山转买卖中介合同范本
- 混凝土供应服务合同范本
- 锻造设备出售合同协议书
- 窑厂购买合同协议书模板
- 粤菜厨房承包合同协议书
- 由第三方履行的合同协议
- 电力安全许可转让协议书
- 舞蹈收费培训合同协议书
- 全国计算机等级考试《二级MySQL数据库程序设计》专用教材【考纲分析+考点精讲+真题演练+强化习题】
- 《中国北斗卫星导航系统》白皮书
- 临床用血管理制度课件
- 新疆干部网络学院官网登录入口
- 低钾血症的治疗护理
- 偏瘫足内翻的治疗
- 2025届河北省石家庄市普通高中学校毕业年级教学质量摸底检测英语试卷
- 永安污水处理厂工程可行性研究报告
- 自查研发加计扣除情况说明模板-企业管理
- 机动车检测站设备维护管理制度
- 企业内部举报制度实施细则
评论
0/150
提交评论