




已阅读5页,还剩68页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现代电子技术工程设计与实践 7 3AT89S52单片机编译及仿真环境 7 3 1KeilC51软件及应用7 3 2Proteus单片机开发及仿真环境 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 1 软件简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统 同时保留了汇编代码高效 快速的特点 目前 C51编译器的功能不断增强 C51已被完全集成到uVision2的集成开发环境中 这个集成开发环境包含编译器 汇编器 实时操作系统 项目管理器和调试器 可以完成编辑 编译 连接 调试 仿真等整个开发流程 C51IDE可以支持所有8051的衍生产品 也可以支持所有兼容的仿真器 同时支持其他第三方开发工具 开发人员可用C51IDE或其他编辑器编辑C或汇编源文件 然后分别由C51及A51编译器编译生成目标文件 OBJ 目标文件可由LIB51创建生成库文件 与库文件一起经L51连接定位生成绝对目标文件 ABS ABS文件由OH51转换成标准的Hex文件 以供调试器dScope51或tScope51使用 进行源代码级调试 也可由仿真器使用 或者直接对目标板进行调试 直接写入程序存储器如E2PROM中 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 5KeilC51的编辑界面 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 2 基于KeilC51软件的单片机开发应用 1 新建一个工程项目1 建立一个新的工程 单击菜单命令 Project NewProject 2 选择要保存的路径 输入工程文件的名字 保存到C51目录里 工程文件的名字为C51 如图7 6所示 然后单击 保存 按钮 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 6新工程取名保存 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 3 保存后会弹出一个对话框 要求选择单片机的型号 用户可以根据使用的单片机来选择 KeilC51几乎支持所有的51核的单片机 这里以Atmel的AT89C52来说明 如图7 7所示 选择AT89C52之后 右边栏是对单片机的基本说明 然后单击 确定 按钮 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 7选择单片机型号 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 4 完成上一步骤后 界面如图7 8所示 完成了新工程的建立 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 8完成新工程的建立 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 2 建立新文件 1 单击菜单命令 File New 新建文件后的界面如图7 9所示 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 9建立文件编辑窗口 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 此时光标在编辑窗口里闪烁 这时可以输入用户的应用程序了 但最好先保存该空白文件 单击菜单命令 File SaveAs 在 文件名 栏右侧的编辑框中输入欲使用的文件名 注意必须输入正确的扩展名 如果用C语言编写程序 扩展名为 C 如果用汇编语言编写程序 扩展名必须为 asm 然后单击 保存 按钮 2 添加文件到项目中在编辑界面 单击 Target1 前面的 号 再在 SourceGroup1 上单击右键 弹出的快捷菜单如图7 10所示的对话框 选择菜单上的选项 AddFiletoGroup SourceGroup1 再选中前面保存的源文件Text1 c 然后单击 Add 按钮 界面如图7 11所示 此时 SourceGroup1 文件夹中多了一个子项 Text1 c 子项的数量与所增加的源程序的数量相同 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 10添加文件菜单 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 11添加文件到文件夹 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 3 输入程序 输入如下的C语言源程序 例 编程在屏幕上显示 Iwillbeyourfriend include 包含头文件 include 包含输入输出库文件voidmain void 主函数 SCON 0 x52 TMOD 0 x20 TH1 0 xf3 TR1 1 启动printf函数所必须的串行口1printf Iwillbeyourfriend n 打印程序执行的信息while 1 在输入上述程序时 Keilc51会自动识别关键字 并以不同的颜色提示用户加以注意 这样会使用户少犯错误 有利于提高编程效率 程序输入完毕后 如图7 12所示 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 12输入文件后界面 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 4 编译文件 单击菜单命令 Project BuildTarget 编译成功后 再单击菜单命令 Debug Start Stopdebugsession 界面如图7 13所示 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 13调试界面 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 5 调试程序 在上述步骤下单击菜单命令 Debug Go 运行程序 然后再单击菜单命令 Debug StopRunning 停止执行程序 再单击菜单命令 View SerialWindows 1 就可以看到程序运行后的结果 如图7 14所示 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 14程序运行结果 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 至此 在KeilC51上完成了一个工程的全过程 但这只是纯软件的开发过程 如果想使用硬件仿真或程序下载器观察程序运行的结果 则继续下一步 6 生成HEX文件 单击菜单命令 Project optionsfortarget target1 如图7 15所示 在图中Output标签页下选中CreateHEXFile选项 使程序编译后产生HEX文件 HEX文件即单片机编程所要的结果 将该文件下载到单片机内 便可以运行程序了 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 15生成HEX文件 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 7 对于C51程序设计和KeilC51软件调试实例 将通过下面的例子做进一步的说明 例 已知x 10 y 20 编程计算z x y的结果 include 包含文件main 主函数名 主函数体开始 intx y z 主函数体的内部变量类型说明 x 10 变量赋值 y 20 z x y 计算z x y的值 while 1 程序结束 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 本例中main是主函数名 要执行的主函数的内容称为主函数体 主函数体用花括号 围起来 函数体中包含若干条将被执行的程序语句 每条语句都必须以分号 为结束符 为了使程序便于阅读和理解 可以给程序加上一些注释 C语言的注释部分由符号 开始 以符号 结束 注释内容可在一行内写完 也可以分成几行来写 注释部分不参加编译 编译时注释的内容不产生可执行代码 注释在程序中的作用很重要 一个优秀的程序设计者应该在程序设计中使用足够的注释来说明整个程序的功能 有关算法和注意事项等 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 用KeilC51调试该程序 当操作到上面第 5 步时 界面如图7 16所示 单击菜单命令 Debug Go 再单击菜单命令 Debug StopRunning 界面如图7 17所示 图7 16右下角显示了变量z的值为0 x001E 转换为十进制数就是30 正是程序中x y的结果 至于图7 17右下角的显示框 可以通过单击菜单命令 View Watch CallStackWindow 来打开或关闭 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 16调试界面 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 17程序运行结果 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 例 编程将P1 0置位 P1 1清零 include 包含文件voidmain void pragmaASMSETBP1 0CLRP1 1 pragmaENDASMWhile 1 本例在C51文件中直接嵌入了汇编代码 若用KeilC51调试该程序 应按如下步骤 1 在程序编辑窗口 输入程序 文件保存为9 c 2 在Project窗口中9 c栏目条上单击右键 弹出快捷菜单如图7 18所示 3 在弹出的右键快捷菜单中选择OptionsforFile 9 c 然后在出现的对话框中选择右边的GenerateAssemblerSRCFile和AssembleSRCFile选项 使检查框由灰色变成黑色 有效 状态 界面如图7 19所示 单击 确定 按钮确定 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 18Text1 C栏目条上的右键快捷菜单 现代电子技术工程设计与实践 图7 19设置对话框 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 4 根据选择的编译模式 默认模式为Small 把相应的库文件 如Small模式时 库文件为Keil C51 Lib C51S Lib 加入工程中 单击Project窗口中 Target1 栏目条前面的 号 再在 SourceGroup1 上单击右键 弹出菜单如图7 20所示 然后选择右键快捷菜单上的选项 AddFiletoGroup SourceGroup1 再选中源文件Keil C51 Lib C51S Lib 然后单击 Add 按钮 界面如图7 21所示 此时 注意到 SourceGroup1 文件夹中又多了一个子项 C51S Lib 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 20SourceGroup1栏目条上的右键快捷菜单 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 21添加文件到文件夹 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 5 单击菜单命令 Project BuildTarget 若编译成功 则单击菜单命令 Debug Start Stopdebugsession 进入调试界面 再单击菜单命令 Debug Go 运行程序 最后单击菜单命令 Debug StopRunning 停止执行程序 此时界面如图7 22所示 注意屏幕右下角的显示框 这里选择的是Watch 1显示栏 可见显示框中有 typeF2toedit 显示条 单击它 然后按F2键 该显示条变成可选 此时 选P1 0后按回车键 可看到程序运行后P1 0的值 用同样的方法可查看P1 1的值 界面如图7 23所示 程序运行后的结果是P1 0的值为1 P1 1的值为0 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 22调试界面 现代电子技术工程设计与实践 7 3 1KeilC51软件及应用 图7 23程序运行后结果 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 1 Proteus软件简介Proteus软件是由英国LabCenterElectronics公司开发的EDA工具软件 它除了具有和其他EDA工具一样的原理编辑 印制电路板及电路仿真功能外 最大的特色是其电路仿真是交互的 可视化的 通过Proteus软件的VSM 虚拟仿真技术 用户可以对基于微控制器的系统连同所有的外围接口电子器件一起仿真 配合系统配置的虚拟仪器如示波器 逻辑分析仪等可以测量仿真的波形及记录仿真数据 在不需要硬件设备投入的情况下 Proteus软件可以建立完整的电子学习设计开发环境 图7 24是Proteus的主界面 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 图7 24Proteus主界面 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 软件的菜单栏 工具栏和其它常用软件类似不再介绍 元件 仪表工具栏的各部分如图7 25所示 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 图7 25Proteus软件工具栏 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 2 基于Proteus软件单片机电路设计下面通过一个简单的例子来说明Proteus电路的设计方法 例 用单片机与DS1302构成时钟电路 并用数码管显示输出 1 创建单片机仿真文件 并保存 2 放置元件把所需要的器件放置到原理图编辑区上 点击挑选元件按钮P会弹出PickDevices对话框 如图7 26所示 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 图7 26挑选元件对话框 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 在Keywords中输入AT89C52并回车 右边的对话框会显示出与输入字样匹配的结果 如图7 27所示 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 图7 27单片机查找元件结果 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 选中其中一个后 右边上面的窗口会显示出该芯片的预览图 下面是该芯片的封装图 如图7 28所示 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 图7 28单片机选择预览对话框 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 然后点击OK代表选用该芯片 此时窗口切换回主界面 可以看到元件列表区中已经显示出刚才所选用的芯片 如图7 29所示 现代电子技术工程设计与实践 图7 29选用器件列表 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 此时在原理图编辑窗口点鼠标左键 会调出AT89C52芯片 移动鼠标将其放置到合适的位置上 如果想删除元件 最好的方法则是在元件上双击鼠标右键 如图7 30所示 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 图7 30单片机放置结果 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 如果对放置的位置不满意 可以用鼠标左键拖动元件重新放置 按照上面所述 将晶振 CRYSTAL 八位一体的共阳极七段数码管 7SEG MPX8 CA BLUE 电池 BATTERY DS1302 上拉排阻 RESPACK 8 放置到编辑区上 如图7 31所示 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 图7 31器件放置结果 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 在元件上双击鼠标左键可弹出该元件的编辑窗口 进行修改 例如双击电池弹出如图7 32的窗口 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 图7 32电池属性修改窗口 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 ComponentReferer是元件的标号 Voltage是电池的电压 将它改为3V 后面的Hidden 如果选中则表示在原理图中不显示对应的属性 3 连线 把各元件连接起来 完成后的效果如图7 33所示 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 图7 33数码显示电路图 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 4 在KeilC51下输入下面所示的电子万年历的程序代码 编译 生成Hex文件 include include defineucharunsignedcharsbitSIO P3 0 sbitSCLK P3 1 sbitSRST P3 2 ucharcodeshuju 0 xc0 0 xf9 0 xa4 0 xb0 0 x99 0 x92 0 x82 0 xf8 0 x80 0 x90 0 xbf 10为 ucharcodescan 0 x80 0 x40 0 x20 0 x10 0 x08 0 x04 0 x02 0 x01 依次选中数码管的12345678 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 ucharmiao g ucharmiao s ucharfen g ucharfen s ucharshi g ucharshi s ucharri g ucharri s ucharyue g ucharyue s ucharmiao ucharfen ucharshi 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 voiddelay uchari voidwrite ucharcommand uchardat ucharread ucharcommand voidinitial voidupdata voiddisplay 1ms延时 voiddelay uchari ucharj k 0for j 0 j i j for k 0 k 125 k 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 向1302指定的地址中写入一个数据 voidwrite ucharcommand uchardat uchari SRST 0 SCLK 0 SRST 1 令复位置位 允许数据传输for i 0 i 1 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 for i 0 i 1 SRST 0 复位置零 不能进行数据传输delay 1 SCLK 0 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 从指定的地址中读出一个数据 ucharread ucharcommand uchari j 0 SRST 0 SCLK 0 SRST 1 令复位置位 允许数据传输for i 0 i 1 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 SIO 1 for i 0 i 1 if SIO j 0 x80 SRST 0 SCLK 0 return j 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 voidinitial SCLK 0 SRST 0 write 0 x8e 0 x00 打开写保护write 0 x82 0 x00 设置分钟 00write 0 x84 0 x16 24小时制 初值为16点write 0 x86 0 x19 设定日期19号write 0 x88 0 x09 设定月份9月write 0 x8a 0 x02 设定星期2write 0 x8c 0 x20 设定年2000write 0 x90 0 xa6 写充电控制寄存器充电电流write 0 x80 0 x00 启动时钟 现代电子技术工程设计与实践 7 3 2Proteus单片机开发及仿真环境 voiddisplay P2 scan 7 P0 shuju shi s delay 1 P2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46023.2-2025汽车用智能变色玻璃第2部分:聚合物分散液晶调光玻璃
- GB 46033-2025粮食仓库安全操作规程
- 2025年安全生产安全生产法律法规考试题及答案
- 2025年安全生产填空题及答案大全
- 2025年宠物寄生虫防治师中级模拟题及答案
- 2025年创业实战案例分析及模拟题集
- 2025年企业安全管理员实操题集
- 2025年应急物资储备中心笔试模拟题库及解析
- 2025年金融IT工程师专业能力认证考试试题及答案解析
- 2025年建筑工程施工图设计师资格认证试题及答案解析
- QCSG1204009-2015电力监控系统安全防护技术规范
- 学校幼儿园消防安全风险自查检查指南
- 厚积落叶听雨声
- 《机械能及其转化》名师教案
- 开学第一课假期收心主题班会 课件
- 船员劳动合同
- 南城一中高三年级工作计划
- 企业重组改变组织结构以提高效率
- 植保无人机应急处置预案
- 《中国古代的服饰》课件
- 行业标准项目建议书
评论
0/150
提交评论