毕业论文-基于stc89c52单片机构成的实用定时器设计内容摘要:

P20~P23 口完成的按键 KEY_STKEY_UPKEY_DW 完成定时 器的暂停自加和自减功能而发光二极管 L2L4 则反映了选用的定时时间的不同 第四章 软件设计 本章首先对设计思想即主程序进行介绍然后对发光二极管指示程序键扫描程序和数码管的显示程序的设计分别进行说明 41 主程序 本次设计中由于要求有定时器 123 所以程序设计中使用了三个定时器分别进行定时数码管显示部分由于最大数是 99 所以使用两只数码管已绰绰有余为了分清使用的是哪一个数码管所以又用了三个发光二极管进行区分程序流程图如下图 41 所示 图 41 主程序流程图 42 发光二极管指示程序 发光二极管的亮灭指示了此刻数码管 显示的时间是使用了三个定时器中的哪一个进行的定时流程图如图 42 所示 图 42 发光二极管指示流程图 43 键扫描程序 键扫描程序中主要是扫描判断 KEYSTKEYUPKEYDW 这三个扫描程序如图43 所示 图 43 按键子程序流程图 44 定时器中断程序 程序设计中使用了单片机的三个定时器虽然定时时间各不相同但定时器中断流程图是相同的所以此处只画出定时器 0 的中断流程图如下图 44 所示 图 44 定时器 0 的中断流程图 第五章 设计调试 51 软件调试 Keil 软件及其调试功能简介 目前流行的 51 系列单片机开发软件是德国 Keil 公司推出的 Keil C51 软件它是一个基于 32 位 Windows 环境的应用程序支持 C 语言和汇编语言编程其 60以上的版本将编译和仿真软件统一为μ Vision 通常称为μ V2Keil 提供包括 C 编译器宏汇编连接器库管理和一个功能强大的仿真调试器等在内的完整开发方案由以下几部分组成μ Vision IDE 集成开发环境包括工程管理器源程序编辑器程序调试器 C51编译器 A51汇编器 LIB51库管理器 BL51连接定位器 OH51目标文件生成器以及 Monitor51RTX51 实时操作系统 应用 Keil 进行软件仿真开发的主要步骤为编写源程序并保存建立工程并添加源文件设置工程编译汇编连接产生目标文件程序调试 Keil 使用工程 Project的概念对工程而不能对单一的源程序进行编译汇编连接等操作工程的建立设置编译汇编及连接产生目标文件的方法非常易于掌握首先选择菜单 FileNew 在源程序编辑器中输入汇编语言或 C 语言源程序或选择 FileOpen 直接打开已用其他编辑器编辑好的源程序文档并保存注意保存时必须在文件名后加上扩展名asma51 或 c 然后选择菜单 ProjectNew Project 建立新工程并保存保存时无需加扩展名也可加上扩展名 uv2工程保存后会立即弹出一个设备选择对话框选择 CPU后点确定返回主界面这时工程管理窗口的文件页 Files会出现 Target1将其前面号展开接着选择 Source Group1 右击鼠标弹出快捷菜单选择 Add File to Group Source Group1 出现一个对话框要求寻找并加入源文件在加入一个源文件后该对话框不会消失而是等待继续加入其他文件加入文件后点 close 返回主界面展开Source Group1 前面号就会看到所加入的文件双击文件名即可打开该源程序文件紧接着对工程进行设置选 择工程管理窗口的 Target1 再选择 ProjectOption for TargetTarget1 或点右键弹出快捷菜单再选择该选项打开工程属性设置对话框共有 8 个选项卡主要设置工作包括在 Target 选项卡中设置晶振频率在 Debug 选项卡中设置实验仿真板等如要写片还必须在 Output 选项卡中选中 Creat Hex File其他选项卡内容一般可取默认值工程设置后按 F7键或点击编译工具栏上相应图标进行编译汇编连接以及产生目标文件 成功编译汇编连接后选择菜单 DebugStartStop Debug Session 或 按 CtrlF5键进入程序调试状态 Keil 提供对程序的模拟调试功能内建一个功能强大的仿真CPU 以模拟执行程序 Keil 能以单步执行按 F11 或选择 DebugStep 过程单步执行按 F10 或选择 DebugStep Over 全速执行等多种运行方式进行程序调试如果发现程序有错可采用在线汇编功能对程序进行在线修改 DebugInline Assambly 不必执行先退出调试环境修改源程序对工程重新进行编译汇编和连接然后再次进入调试状态的步骤对于一些必须满足一定条件如按键被按下等才能被执行的难以用单步执行方式进行调试的程序行可采 用 断 点 设 置 的 方 法 处 理DebugInsertRemove Breakpoint 或 DebugBreakpoints 等在模拟调试程序后还须通过编程器将 hex 目标文件烧写入单片机中才能观察目标样机真实的运行状况 Keil软件 Eval版免费产品的功能与商业版相同只是程序的最大代码量不得超过 2kB 但对初学者而言已是足够 Keil 软件由于其强大的软件仿真功能友好的用户界面以及易于掌握的特点而受到工程技术人员的欢迎有人甚至认为 Keil 是目前最好的 51 单片机开发应用软件 [12] 下图为 Keil 的工作界面 C 语言简介 单 片机的 C 语言是一种编译型程序设计语言它兼顾了多种高级语言的特点并具备汇编语言的功能 C 语言具有功能丰富的库函数运算速度快编译效率高有良好的可移植性而且可以实现直接对系统硬件的控制此外 C 语言程序具有完整的程序模块结构从而为软件开发中采用模块化程序设计方法提供了有力的保障 与汇编相比有如下优点 1 对单片机的指令系统不要求了解仅要求对 51 的存储器结构有初步了解至于寄存器分配不同存储器的寻址及数据类型等细节均由编译器管理 2 程序有规范的结构可分为不同的函数这种方式可使程序结构化将可变的选择与特殊操作组 合在一起改善了程序的可读性 3 编程及程序调试时间显著缩短从而提高效率 提供的库包含许多标准子程序具有较强的数据处理能将已编好程序可容易的植入新程序因为它具有方便的模块化编程技术 单片机 C 语言作为一种非常方便的语言而得到广泛的支持 C语言程序本身并不依赖于机器硬件系统基本上不做修改就可根据单片机的不同较快地移植过来 综上所述单片机的四种编程语言各有各的优缺点作为单片机初学者笔者认为还是应该先学习汇编语言不一定要学得很精很熟悉但要有一定的了解因为汇编语言程序除了具有简洁明快跳跃性强占 ROM 资源少等优点以 外还因它和单片机底层硬件紧密联系可以让初学者更加了解单片机硬件系统各种资源熟悉各个功能模块的作用从而为编出更高效率的程序打好扎实的基础 用单片机汇编语言编写的程序代码效率高但学习起来相对难度较大而且对于一个大型项目如果完全采用汇编语言来编程就显得很繁琐尤其是遇到算法方面的问题时汇编语言根本就应付不了况且现在单片机的主频在不断的提高在高频率时钟的作用下我们完全不需要那么高效率的代码另外单片机的 ROM 和 RAM 空间也在不断的增加足够装得下你用 C 语言写的任何程序代码单片机 C 语言相关的资料又多又好找可移植性非 常好比如只需要改变一个 IO 口写个温度传感器的程序在任何一个单片机上都能使用由此可见用单片机 C 语言进行程序设计已成为单片机软件开发的一个主流作为一个技术全面并涉足较大规模的软件系统开发的单片机开发人员最好能够掌握基本的 C 语言编程 当然有时候用单片机 C 语言也不能够实现所有要编写程序的功能比如当想编写一个精确控制的定时程序时用起汇编语言来还是比较方便的因此想成为一个优秀的单片机编程技术员最好就是能懂得单片机 C 语言和汇编语言混合编程 Keil 软件调试 软件的调试必须在开发系统的支持下进行虽然是分 别编写的各个模块程序但是除了定时中断数码管显示和初始化子程序外其他的如按键扫描程序等都是直接放在主程序中所以在调试时直接调试的总程序下面概略介绍本人认为最重要的子程序定时中断子程序 如下所示是定时中断子程序分为定时器 0定时器 1定时器 2三个中断子程序 void timer0 interrupt 1 TH0 6553650000 256 定时器 0 装初值 TL0 6553650000 256 t if t 20 t 0 num if num 1 num 99 if KEY_ST 暂停键按下 delay 5 按键消抖 if KEY_ST while KEY_ST 等待按键释放 TR0 0 void timer1 interrupt 3 TH1 6553650000 256 定时器 1 装初值 TL1 6553650000 256 t1 if t1 20 t1 0 num1 if num1 1 num1 88 if KEY_ST 暂停键按下 delay 5 按键消抖 if KEY_ST while KEY_ST 等待按键释放 TR1 0 void timer2 interrupt 5 TH2 6553650000 256 定时器 2 装初值 TL2 6553650000 256 t2 TF2 0 if t2 1200 t2 0 num2 if num2 1 num2 77 if KEY_ST 暂停键按下 delay 5 按键消抖 if KEY_ST while KEY_ST 等待按键释放 TR2 0 52 硬件调试 Protel 99 SE 简介 Protel99SE 是 Protel 公司近 10 年来致力于 Windows 平台开发的最新结晶能实现从电学概念设计到输出物理生产数据以及这之间的所有分析验证和设计数据管理因而今天的 Protel最新产品已不是单纯 的 PCB印制电路板设计工具而是一个系统工具覆盖了以 PCB为核心的整个物理设计 最新版本的 Protel软件可以毫无障碍地读 OrcadPadsAccel PCAD 等知名 EDA 公司设计文件以便用户顺利过渡到新的 EDA 平台 Protel99 SE 共分 5 个模块分别是原理图设计 PCB 设计包含信号完整性分析自动布线器原理图混合信号仿真 PLD设计 以下介绍一些 Protel99SE的部分最新功能 ◆可生成 30 多种格式的电气连接网络表 ◆强大的全局编辑功能 ◆在原理图中选择一级器件 PCB 中同样的器件也将被选中 ◆同时运行原理图和 PCB在打开的原理图和 PCB图间允许双向交叉查找元器件引脚网络 ◆既可以进行正向注释元器件标号由原理图到 PCB 也可以进行反向注释由 PCB 到原理图以保持电气原理图和 PCB 在设计上的一致性 ◆满足国际化设 计要求包括国标标题栏输出 GB4728 国标库 方便易用的数模混合仿真兼容 SPICE 3f5 ◆支持用 CUPL 语言和原理图设计 PLD 生成标准的 JED 下载文件 PCB 可设计 32 个信号层 16 个电源 地层和 16 个机加工层 ◆强大的规则驱动设计环境符合在线的和批处理的设计规则检查 ◆智能覆铜功能覆铀可以自动重铺 ◆提供大量的工业化标准电路板做为设计模版 ◆放置汉字功能 ◆可以输入和输出 DXFDWG 格式文件实现和 AutoCAD 等软件的数据交换 ◆智能封装导航对于建立复杂的 PGABGA 封装 很有用 ◆方便的打印预览功能不用修改 PCB 文件就可以直接控制打印结果 ◆强大的 CAM。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。