单片机实验指导书(共8篇)
单片机实验指导书 篇1
单片机实验指导书
实验说明
实验1:定时控制实验
要求:电路连接与编程相结合,控制灯按一定规律点亮和熄灭。注意:灯为低电平驱动。
实验报告:说明灯亮的方式;画出实际电路图、程序流程图和源程序(要有详细注释)。
实验2:密码锁实验
要求:三个数码键一个确认键,按设定的密码(开关顺序)使灯点亮。
注意:为消除开关触点抖动,判断时要加10毫秒左右的延时。
实验报告:说明密码顺序;画出实际电路图、程序流程图和源程序(要有详细注释)。
实验3:音乐发生器实验
要求:电路连接与编程相结合,使单片机演奏一段乐曲。
实验报告:画出实际电路图、程序流程图和源程序(要有详细注释)。
实验4:串口通讯实验
要求:两人为一组,一人为发一人为收,通过串口连接。用发者的开关控制收者的灯点亮或发出音响。之后二人交换收、发。实验报告:画出电路图、程序流程图和源程序(要有详细注释)。
硬件测试程序
main: mov p0,#0ffhmov p1,#0ffhmov p2,#0ffhmov p3,#0ffhacall spk1
mov p0,#00hmov p1,#00hmov p2,#00hmov p3,#00hacall spk2
sjmp main
spk1: mov r0,#0ffhmov r2,#0ffhacall spk
ret
spk2: mov r0,#0ffhmov r2,#0dfhacall spk
ret
spk:cpl p1.0
lp1:mov a,r2,mov r5,adjnz r5,$cpl p1.0djnz r0,lp1
ret
;端口设置 ;1-灯灭
;调音响1 ;端口清0 ;灯亮
;调音响2 ;返回重复
;设音响1 ;参数 ;调音响
;设音响2 ;参数 ;调音响
;P1.0翻转
;音调延时 ;P1.0翻转 ;音长延时
单片机实验指导书 篇2
单片机课程是一门实践性非常强的课程, 原理性非常抽象, 学生学习起来比较困难, 因此需要开设单片机实验实训课程辅助教学, 通过大量的实验项目帮助学生更好的理解课程理论知识, 同时不断提高学生的实践操作能力, 让学生真正掌握单片机在实际生活中的运用。近年来, 随着仿真技术的发展, 仿真单片机的建设已经在高校得到了广泛的应用。
1 仿真单片机实验室的建设方案
1.1 传统单片机实验室存在的不足
在传统的的单片机实验室中, 学校需要投入大量的资金建设各项设备, 随着高校招生规模不断扩大, 需要建设大量的实验设备, 者对学校来说是非常困哪的, 很多单片机教学仪器和设备都得不到及时的配置和更新, 一些硬件设备还停留在比较落后的阶段。此外, 由于仪器设备的重复使用, 很多仪器容易老化和发生故障, 而对仪器设备的维护和维修力度不够。在实验教学过程中, 教学内容往往局限了一些验证性实验, 缺乏对学生自主探究能力的提高和培养。在以往的实验教学过程中, 学生通常是在教师的引导下完成实验步骤, 从而掌握一定的实验技能。通过这种实验方式, 虽然学生对于单片机技术有一定的了解, 同时也掌握了相关的实验技能, 在一定程度上提高了学生的实践动手能力。但是, 学生在实验过程中, 依然没有进行主动学习, 无论是实验步骤还是实验探究目的都是固定的, 学生并没有经过自身的思考, 对于提高学生的实验探究能力并没有多大帮助。
1.2 仿真单片机实验室的优势
考虑到传统单片机实验室存在的多种问题, 基于仿真软件的单片机实验室建设的运用越来越广泛。通过单片机仿真实验室, 很多仿真的实验和工作都可以在软件的环境中得以实现, 不仅使学生的实验教学更加便捷, 同时还可以减少单片机实验室建设的大量资金, 解决了资金不足的困境。仿真单片机实验室的建设是以Proteus为软件平台设计制作的一套单片机实验系统, 在这套单片机实验系统中, 主要包括LCD模块、数码显示模块、板上集成LED模块、键盘模块、串口通信模块和蜂鸣器模块等, 可以实现串口通信系统、I/O口设计系统的应用等。在仿真单片机实验室中, 学生可以从简单到困难掌握单片机技术, 通过对复杂项目的分解, 可以帮助学生更直观的认识、更好的理解。在仿真单片机实验室中, 可以实现传统实验室的所有功能, 此外, 还可以提供开放性实验的服务, 学生可以利用自己所掌握的知识设计自己的电子产品。
1.3 Proteus软件的强大功能
Proteus软件是混合电路仿真软件, 具有数字电路、模拟电路和模/数混合电路的仿真平台和设计平台, 也是多种型号微控制器系统的仿真平台和设计平台。通过Proteus软件, 可以在计算机上进行电路分析和设计等。Proteus软件主要有两个部分组成, 智能原理图输入、模拟系统和高级布线及编辑软件。Proteus软件具有非常强大的功能, 可以提供非常丰富的元器件库, 共有三十多个库共八千多个元器件, 具有数字电路、模拟电路的仿真, 用户主要通过单机鼠标、可调电阻和电位器等外设的模型, 就可以根据输入的信号使单片机做出对应的响应, 并且将处理结果显示在动态的显示器中, 从而是吸纳了用户和系统的交互性仿真。其次, Proteus软件还可以提供多种虚拟仪器和各种调试信号, 例如信号发生器、示波器以及显示设备, 从而使系统的仿真调试更加方便。除此之外, Proteus软件还可以支持主流单片机系统的仿真, 比传统的单片机实验班支持的系统和芯片要多的多。Proteus软件具有调试功能, 具有设置断点、单步和全速等功能, 还可以通过第三方的软件编译和调试环境实现调试功能。Proteus软件还具有PCB设计功能和原理图绘制功能, 可以生成多种不同形式的文件, 并且提供专用的PCB设计工具, 从而进行设计。
2 仿真单片机实验室的建设过程
在构建仿真单片机实验室的过程中, 主要包括四个方面的过程, Proteus仿真软件的安装运行、设置实验室的硬件电路、由Proteus仿真软件提供实验室资源和Proteus仿真软件的调试。
2.1 Proteus仿真软件的安装运行
Proteus仿真软件的安装是在默认的目录下完成的, 安装完成之后就是要运行Proteus仿真软件的ISIS程序。ISIS程序的运行是在仿真软件的主页面上, 将system下的图形、颜色以及view菜单下的捕捉等设置好。选择工具栏中的p命令, 此时就可以在pick devices的窗口中选择实验室构建需要使用的元件, 并将这些元件放置在相应的位置, 设置好元件的参数, 并将不同的元器件之间用线连接。完成之后, 则需要在source菜单下选择Define code generation tools菜单命令, 选择编译程序的方法、扩展名和工具等, 在source菜单命令下加入单片机硬件电路的对应程序, 通过一定的命令仿真电路和程序的具体运行情况。用debug菜单下的execute菜单项或F12快捷键启动程序使其运行, 选择debug菜单下的pause健或者pause animation菜单项使系统的运行暂停, 而debug菜单下的stop animation菜单项则可以使系统的运行停止。
2.2 设置实验室的硬件电路
设置实验室的硬件电路需要从两个方面来完成, 包括系统扩展和系统配置。系统配置主要是按照系统的实际要求来对外周设备进行配置, 并且设计合适的电路接口。系统扩展是当单片机自身的功能单元不能满足应用系统的需求时使用的功能, 例如单片机的计数器、定时器等功能单元不能满足系统的需求, 就需要在片外进行扩展, 选择合适的芯片设计电路, 从而使容量满足系统的需求。
2.3 Proteus仿真软件提供实验室资源
Proteus仿真软件提供的实验室资源主要有三个方面的资源, 主要包括元件库、虚拟测量工具箱和图形显示功能模块。Proteus仿真软件可以提供三十多个元件库, 共有八千多个元器件。元件库主要包括二极管、三极管、电阻、电路和电容、交流电路、直流电路等各种元器件的元件库。正是因为Proteus仿真软件可以提供丰富的元器件库, 因此在进行原理布图时, 只需要通过对应的元器件之间的连线和调用就可以实现, 正确的设置每一个元件的属性, 就可以完成整个原理的绘图, 接下来就可以进行仿真实验和虚拟测量了。
Proteus仿真软件提供的虚拟测量工具箱就是提供虚拟测量功能的工具, 在单片机的实验室中, 仪器仪表的测量工作是一个非常关键的工作, 因此必须要具备一定数量的测量工具, 包括各种类型的, 才能保证对不同测量要求都可以进行测量工作, 为了保证测量的精密度, 还需要保证工具箱的质量。Proteus仿真软件的虚拟工具箱具有电路测试中常见的工具和仪器, 在仿真测量的过程中, 可以对相关的电路参数进行观测, 并且在测量过程中还可以实时观查测量的结果。
Proteus仿真软件还具有图形显示功能模块, 可以通过图形的形式将线路上的变化信号显示出来, 作用好示波器的功能差不多, 但是比示波器的功能更强大。操作人员可以利用图形显示功能模块观察电路的运行情况。
2.4 Proteus仿真软件的调试
Proteus仿真软件提供了多种测量信号, 可以实现对单片机硬件电路的测量和测试, 这些测量信号主要包括数字信号和模拟信号。Proteus仿真系统中具有调试功能, 具有设置断点、单步和全速等功能, 还可以通过第三方的软件编译和调试环境实现调试功能。虽然Proteus软件不支持C语言, 但是却可以连接C语言Keil C51集成开发环境, 可以将C语言编写的程序使用汇编进行编译, 然后进行系统的仿真。
3 结语
随着仿真技术的不断发展, 仿真单片机实验室建设已经成为了高校人才培养的新方向, 仿真单片机实验室的构建避免了传统单片机实验室的多项缺点, 满足了学生对单片机教学大量实验的要求, 并且可以有效减少学校的实验室建设的资金投入, 不用过多的考虑单片机实验设备和器材的维护和保养问题等, 取得比传统实验室更好的实践效果, 提高学生单片机实践能力和应用能力。
摘要:单片机是电子工程专业的一门关键学科, 也是一门实践性很强的学科, 因此在单片机教学过程中, 单片机实验室发挥着重要的作用。但是就目前而言, 单片机实验室教学存在着很多问题, 通常情况下只配置了数量有限的硬件设备, 不能提供数量足够的仿真器、编程器、实验电路等设备, 在理论课堂中也没有足够的辅助软件协助教学, 缺乏软环境的建设, 在设备维护保养方面也没有做出相应的重视。
关键词:单片机,实验室,建设
参考文献
[1]李学礼, 林海峰.基于Proteus软件的单片机实验室建设[J].单片机与嵌入式系统应用, 2005 (09) :5-6.
[2]孙万麟, 杨莲红, 宋莉莉.单片机虚拟实验室的构建及其应用[J].实验技术与管理, 2014 (07) :229-231.
单片机实验教学改革分析 篇3
关键词:单片机;教学改革;现状;措施
【中图分类号】TP368.1-4
单片机是一种最简单的电子计算机,在实际的生活中发挥着重要的作用,使得传统的电子设备具有智能化、自动化的功能,从而提高了设备的运行效率。同时单片机又因其结构简单、操作简便的特点,在各大高校中的自动化、通信等专业得到了普遍的应用。在实际的生产领域,单片机的性能的在不断的提高、其构造也在不断的复杂化,复杂数据的处理能力以及编程语言更加智能化,这就对单片机的实验教学提出了更高要求。
一、单片机实验教学的现状分析
目前,在单片机的实验教学的过程中,一般都是由老师在黑板或者是投影仪上,将在实验指导书中有关实验方面的内容讲解给学生,然后在试验箱中进行操作,将实验的结果演示给学生,最后让学生根据实验指导书的步骤进行实验。因单片机存在实践性很强的特点,老师只是采取口头讲解的方法,导致一些概念学生不理解,而试验箱的结果也会因学生的做法存在差别,从而影响其授课效果。
一般来说,现在单片机的实验教学设备大多采用实验箱或实验板的方式,其实验内容基本上是验证性的基本实验,如 I/O 口控制实验、串并转换、显示与键盘及 A / D等[1]。其实验的模式一般采用由实验老师选择一个实验,然后由学生编写程序,最后在实验箱上进行连线操作,验证其结果正确与否的方式。而在这其中就会存在一些问题,首先由于实验箱的限制,会使得实验的内容受到限制,重复性比较高,学生之间的抄袭现象严重。经常会出现一个做出来,全班都做出来了相同实验的现象,达不到实验的目的[2]。其次,由于实验箱的使用时间过长,存在接触不良等现象,就会导致实验效果出错,从而降低学生的兴趣。最后,由于试验箱只能放在实验室,对于一些爱好学习的学生来说,想做实验,会受到限制。因此必须对单片机的实验教学进行改革,使其适应当前社会发展的需要。
二、单片机实验教学改革措施
1、在单片机的实验教学中采用多媒体软件
多媒体教学的发展给实验教学带来了极大的便利,打破了传统的老师采用黑板教学的方式。教师可以利用多媒体软件直接进行各种实验的演示,让学生清楚的明白单片机的工作原理,实验的原理以及操作过程。利用多媒体软件技术,可以让学生清楚的看到每个实验的原理、步骤,从而实现了集语音、图像等一体的教学模式。这样不仅减轻了教师的负担,而且提高了教学效率,带动了学生的学习积极性。
例如在闪烁灯的实验中,教师就可以利用多媒体软件来进行教学。闪烁灯实验的任务就是在电路图中的P1.0端口上接一个发光二极管L1,使L1不停的一亮一灭,且时间间隔为0.2秒。如果是用传统的黑板教学,就会使得描述电路图中端口的接线比较繁琐,若利用多媒体软件教学则可以利用软件不仅可以将电路图中的接线过程清晰的呈现在学生的面前,而且可以将在闪烁灯这个实验中的实验原理、实验流程以及程序设计都可以清晰的表现出来,有利于学生的理解,便于学生掌握有关实验的知识,达到教学的目的。
2、引入 Proteus 仿真软件
由于在利用实验箱进行实验时,一般只有单片机I/O的接线示意图,学生只需要根据接线图接好线就可以进行实验,从而导致学生对外围电路一点也不了解。如果利用Proteus 仿真软件进行实验,就可以达到让学生熟悉单片机的外围电路以及了解常用元器件使用方法的目的。Proteus 仿真软件具有原理图设计、电路仿真、软件仿真的功能。Proteus虚拟仿真实验还具有不需要实验硬件设备就可以完成实验的优点。对于学生来说,计算机更容易普及,就可以不受实验室条件的限制可以自由的开展实验[3]。对教师而言,利用Proteus 仿真软件进行教学,使得教学目的更容易实现。
利用Proteus 仿真软件,可将复杂、难理解的概念形象化、具体化。例如在走马灯这个基本的实验,就牵扯到了中断的概念。在设计走马灯实验的时候共分为硬件设计和软件设计两个部分,其中硬件设计部分:首先使用89C2051单片机作为控制芯片,可以用P1端口作为控制端口,用来控制LED的點亮,其次用外部中断0控制走马灯的暂停和继续操作,最后用定时/计数器T0来控制走马灯闪烁的速度问题。这时教师可以利用Proteus 仿真软件演示给学生看,首先给学生演示不加中断的走马灯实验,可以看到由P1口控制LED灯的闪烁,其闪烁速度是由延时控制的。其次加上外端中断,即用外部的按键控制走马灯的暂停和继续操作。最后加上定时/计数器来控制走马灯的闪烁的速度,而此时的闪烁速度是由定时器控制[4]。其用Proteus 仿真软件仿真的效果图如图1所示。这样通过教师的演示操作,能够让了解中断的概念,以及对外端终端和定时器的使用方法,达到教学实验的目的。
结束语:
随着电子科学技术的不断发展,越来越多的芯片不断被研制出来并投入实际生产中,使得各种智能化的设备逐渐被带入人们的生活中,给人们的生活带来了极大的便利。随之带来的就是对硬件设备制造、嵌入式系统开发人才的大量需求[5]。各大院校通过对单片机实验教学的改革,使得学生更容易对单片机有关的知识进行掌握,从而使自身的专业能力得到提升,促进学生的就业能力。
参考文献:
[1]玄金红,郭振环. 单片机实验教学改革实例[J]. 科技信息(科学教研),2008,04:17.
[2]李莉. 单片机实验教学改革与创新能力的培养[J]. 电脑与电信,2008,04:71-72.
[3]冯刚. 单片机实验教学平台的改革[J]. 计算机教育,2010,02:144-146.
[4]郑晓霞. 浅谈单片机实验教学改革[J]. 青春岁月,2014,21:106.
单片机实验三 定时计数器实验 篇4
定时/计数实验
一、实验目的
1、理解单片机的定时/计数原理,掌握定时/计数程序的编写方法。
2、掌握定时/计数器在定时、计数、频率测量等方面的应用。
3、学会使用PROTEUS中VSM虚拟示波器观察波形。
二、实验设备
计算机一台;单片机实验仪一台;Keil C51和Proteus软件。
三、实验内容
利用定时计数器1,编程实现从P1.0、P1.1、P1.2三个I/O引脚分别输出频率为0.25Hz、50 Hz、1k Hz的方波信号。利用P1.0、P1.1、P1.2三个I/O引脚所接的三个LED灯或利用示波器进行观察。已知fosc=12MHz。
四、实验电路图
图1 8路LED灯控制原理图
五、实验接线
P1.0、P1.1、P1.2三个I/O引脚接J12的三个引脚(即三个LED灯)。
六、思考题
1、简要写出实现该实验的方案(要有必要的计算)。
2、单片机定时/计数器的“加一”操作和单片机运行主程序是同时工作(并行工作)的,还是有先后顺序的?单片机运行中断程序和运行主程序是同时工作(并行工作)的,还是有先后顺序的?
3、单片机定时/计数器的定时与计数的区别是什么,软件上分别应如何设置?
4、在该实验的基础上,输出的三路信号的占空比可以分别为1/2,1/3,1/4吗?
七、实验报告要求 实验目的
1、实验目的
2、实验设备
3、实验内容
4、实验流程图
5、实验源程序
7、思考题解答
单片机实验教案 篇5
Keil C51 u Vision2 是德国Keil公司开发的基于Windows环境的8051软件开发平台,它集项目管理、源程序编辑、程序调试于一体,是一个强大的集成开发环境。
u Vision2 支持Keil的各种8051工具,包括:C编译器,宏汇编译器、连接/定位器及Object-hex转换程序,可以帮助用户快速有效的实现嵌入式系统的设计与调试。
1.1 硬件安装
1、连接51CPU板,在实验箱右下角有三个插座:J1、J2、J3,用来连接51CPU板,在51CPU板上有一个小拨码开关:J18,是单片机的EA脚,是用来选择读片内还是片外ROM的,拨向左边为读片内ROM;拨向右边为读片外ROM。
2、KEIL仿真器与实验箱的连接:将KEIL仿真器40芯的排线连到51CPU板的40芯插座上,仿真器的USB连接线连到微机的USB口。
3、八段数码管右上角的两个拨码小开关是用来设置工作模式的,将两个拨码小开关同时拨向右边是选择51单片机工作模式,此时应拨向右边。
1.2 新建一个项目文件
首先点击 Keil uVision2,进入uVision2界面。点击工具栏Project选项中的New Project,准备开始建立自己的项目。
输入工程文件名称,并选择保存工程文件的目录。
为项目文件选择一个目标器件(如ATMEL89C51),如图所示。
用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择“为目标‘目标1’设置选项”如下图所示。
在“为目标‘目标1’设置选项”中,点击“调试”菜单,在此菜单中可选择是使用硬件仿真,还是软件仿真,连接实验箱做实验时选择硬件仿真,点击硬件仿真选项后面的[设置]选项,在此对对话框中选择串口和波特率,串口根据所连电脑来决定。波特率为38400。
软件仿真 硬件仿真 选择串口 选择波特率
点击“文件/新建”创建源程序文件并输入程序代码。
在文本框中输入原程序,如下图所示
点击“文件/保存“对程序进行保存
用鼠标对项目工作区的目标1,点击右键在弹出的菜单中选择添加文件到原代码组,如下图所示
在弹出的添加文件框中,选择需要添加到项目中的文件
点击编译连接的图标,对项目文件进行编译
点击“调试/启动/停止调试”进入调试界面
在调试界面中可以对程序进行单步或者全速运行的调试
连机/停止 全速运行
单步
若要查看内存中的数据,点击“视图/存储器窗口”
在此地址框中,输入不同的指令查看内部数据
如果需要查看一些内部数据,在菜单栏点击[视图/存储窗口]。
C:0X地址 显示程序存储区数据 X:0X地址 显示数据存储区中数据 D:0X地址 显示CPU内部存储区中数据
注意:仿真器使用者使用时应注意:
Keil C仿真器用户程序在全速运行时,如果需暂停运行,请按实验仪键盘“RST”,此时仿真器存储器数据清零。如果您要再次运行您所编写的程序,就必须重新装载运行。
1.3 实验指导使用说明
点击“帮助/使用手册”打开“HK系列实验指导”
选择“软件实验”右边的下三角可选择实验类别或者芯片查询
点击实验目的、实验电路、实验连线、实验程序可查看关于实验的具体介绍
在芯片查询中,可查看常用芯片的管脚定义
实验二 程序设计实验
C51中进行绝对地址访问:
(1)在头文件中加入
#include (2)可以使用 CBYTE XBYTE PWORD DBYTE CWORE
XWORD PBYTE DWORD 指向内存空间的绝对地址。(具体看课本Page 71~72)
(3)使用指针进行绝对地址访问(具体看课本Page68~71,课后用指针对下面实验程序进行修改)
例如:
#define ADDR
XBYTE[0x8000]
定义ADDR为 片外RAM地址0x8000的内容
Segment = CBYTE[0x0002]
将程序存储器的0002H地址的内容赋值给Segment
Segment = XBYTE[0x0002]
将向片外RAM的0002H地址的内容赋值给Segment
XBYTE[0x0002]=57
将57赋值给片外RAM0002H绝对地址
实验1:将片外8000H中的内容拆开,高位送8001H地址低位,低位送8002H的地址低位,8001H和8002H地址单元的高位清零。#include
#define a0 XBYTE[0x8000] #define a1 XBYTE[0x8001] #define a2 XBYTE[0x8002]
void main(){ a0 = 0xab;a1 = a0 & 0x0f;a2 = a0 >> 4;}
实验2:使用绝对地址进行char型数组赋值,数组的首地址为片外8000H #include
for(i=0;i<10;i++){
XBYTE[0x8000+i]=i;} }
请对上述实验进行修改:使用绝对地址进行int型数组赋值,数组的首地址为片外8000H
实验3:将内部RAM中的50H-5AH中的无符号数,按照从小到大的次序重新排列
#include
#define uint unsigned int #define uchar unsigned char uint i,j;uchar temp;void main(){ for(i=0;i<=10;i++)//赋初值
{
DBYTE[0x50+i]=10-i;} for(i=0;i<=10;i++){
for(j=i+1;j<10;j++)
{
if(DBYTE[0x50+i]>DBYTE[0x50+j])
{
temp=DBYTE[0x50+i];
DBYTE[0x50+i]=DBYTE[0x50+j];
DBYTE[0x50+j]=temp;
}
} } } 实验三
单片机I/O接口实验
1.看懂电路图
2.用开关分别控制,左边4盏灯同时亮,右边的4盏熄灭,开关导向另一边,左边4盏熄灭,右边4盏点亮。#include
//查阅sbit和bit 的区别 #define uint unsigned int #define uchar unsigned char void main(){ While(1){ if(P3_0 == 0)
{
P0 = 0x0f;} else P0=0xf0;} }
3.下面按照实验书本的要求做实验,并调试程序延时时间。
实验四
八段数码管滚动显示程序设计
1.了解扩展电路的基本结构。
2. 清楚8155各个寄存器的物理地址是怎么得到的。
3.弄清楚8155、74LS164、UA2003三块芯片的各个引脚的基本功能。
4.74LS164的串行输入的程序代码的编写
/* “验证式"?实验十一
八段数码管显示
*/ #include #define LEDLen 6 #define mode 0x03;#define CAddr XBYTE[0xe100]/* 控制字地址 */ #define OUTBIT XBYTE[0xe101]/* 位控制口 */ #define CLK164 XBYTE[0xe102]/* 段控制口(接164时钟位)*/ #define DAT164 XBYTE[0xe102] /* 段控制口(接164数据位)*/ #define IN
XBYTE[0xe103] /* 键盘读入口 */
unsigned char LEDBuf[LEDLen];/* 显示缓冲 */ code unsigned char LEDMAP[] = { /* 八段管显示码 */
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 };
void Delay(unsigned char CNT){
unsigned char i;
while(CNT--!=0)
for(i=100;i!=0;i--);}
void DisplayLED(){
unsigned char i, j;
unsigned char Pos;
unsigned char LED;
Pos = 0x20;/* 从左边开始显示 */
for(i = 0;i < LEDLen;i++)
{
OUTBIT = 0;
/* 关所有八段管 */
LED = LEDBuf[i];
for(j = 0;j < 8;j++)
{
/*送164*/
if(LED & 0x80)DAT164 = 1;
else DAT164 = 0;
CLK164 = CLK164|0x02;
CLK164 = CLK164&0xfd;
LED <<= 1;
}
OUTBIT = Pos;/* 显示一位八段管 */
Delay(1);
Pos >>= 1;
/* 显示下一位 */
}
OUTBIT = 0;
/* 关所有八段管 */ }
void main(){
unsigned char i = 0;
unsigned char j;
CAddr = mode;
while(1){
LEDBuf[0] = LEDMAP[ i
& 0x0f];
LEDBuf[1] = LEDMAP[(i+1)& 0x0f];
LEDBuf[2] = LEDMAP[(i+2)& 0x0f];
LEDBuf[3] = LEDMAP[(i+3)& 0x0f];
LEDBuf[4] = LEDMAP[(i+4)& 0x0f];
LEDBuf[5] = LEDMAP[(i+5)& 0x0f];
i++;
for(j=0;j<30;j++)
DisplayLED();
/* 延时 */
} }
集成开发环境详细设置解说
在第二章中,我们已经简介了单片机软件Keil C51的开发过程。即: 1.建立一个工程项目,选择芯片,确定选项。2.建立汇编源文件或C源文件。3.用项目管理器生成各种应用文件。4.检查并修改源文件中的错误。5.编译连接通过后进行软件模拟仿真。6.编译连接通过后进行硬件模拟仿真。7.编程操作。8.应用。
这里我们介绍工程的较详细设置及常用调试方法。20.1
工程项目的建立、源程序文件的建立及加载
Keil C51软件UVision打开后,程序窗口的左边有一个项目工作区管理窗口,该窗口有3个标签,分别是Files、Regs和Books,这3个标签页分别显示当前项目的文件结构、CPU的寄存器及部分特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件,如果是第一次启动Keil C51,那么这3个标签页全是空的(图20-1)。
图20-1
Keil C51打开后界面
20.1.1
建立工程文件
在单片机项目开发中,有时有多个的源程序文件,并且还要为项目选择CPU以确定编译、汇编、连接的参数,指定调试的方式等。为便于管理,Keil C51使用工程项目(Project)的方法,将这些参数设置和所需的所有文件都放在一个工程项目中,只能对工程项目而不能对单一的源程序进行编译(汇编)和连接等操作。
先在硬盘上建立一个需保存工程文件的目录(例如在“我的文档” 中建立一个test的文件夹),为便于管理及使用,目录名称可与工程名称一致。选择“工程>新工程”菜单(图20-2)。弹出对话框,要求给将要建立的工程起一个名字,可以在编辑框中输入一个名字(例如test),扩展名不必输入(默认的扩展名为.uv2)。点击“保存”按钮(图20-3)。随后弹出一个“为目标target选择设备”(Select Device for Target “Target1”)对话框,这个对话框要求选择目标CPU(即你所用单片机芯片的型号),Keil C51支持的CPU很多,我们选择Atmel公司的AT89C51(或AT89S51)芯片,用鼠标单击Atmel前的“+”号,选择“AT89C51(或AT89S51)”单片机后按确定(图20-4)。随即系统弹出是否拷贝8051启动代码到工程项目并添加到当前项目组的提示(Copy Standard 8051 Startup Code to Project Folder and Add File to Project ?),我们选否。此时,在工程窗口的文件页中,出现了“Target 1”,前面有“+”号,点击“+”号展开,可以看到下一层的“Source Group1”。
图20-2
选择“工程>新工程”菜单界面
图20-3
建立新工程界面
图20-4
选择单片机型号界面
20.1.2
源程序文件的建立
使用菜单“文件>新建”或者点击工具栏的新建文件按钮(图20-5),即在右侧打开一个新的文本编辑窗口,在该窗口中可以输入汇编语言源程序或C语言源程序(图20-6)。程序输入完成后,选择“文件”,在下拉菜单中选中“另存为”,将该文件以扩展名为.asm格式(汇编语言源程序)或.c格式(C语言源程序)保存在刚才所建立的一个文件夹中(test),这里假设源程序文件名为test.asm(图20-7)。
图20-5
新建源程序文件界面
图20-6
打开新的文本编辑窗口
图20-7
“另存为” 对话框
源程序文件也可以使用任意的文本编辑器编写。20.1.3
添加文件到当前项目组中
这时的工程项目还是一个空的工程,里面什么文件也没有,把刚才编写好的源程序test.asm加载进工程。单击工程管理器中“Target 1”前的“+”号,出现“Source Group1”后再单击,加亮后右击。在出现的下拉窗口中选择“Add Files to Group‘Source Group1’”(图20-8)。注意,该对话框下面的“文件类型”默认为C source file(*.c),也就是以C为扩展名的文件,如我们的文件是以asm为扩展名的,那么在列表框中找不到test.asm,要将文件类型改掉。点击对话框中“文件类型”后的下拉列表,找到并选中“Asm Source File(*.a51,*.asm)”,这样在列表框中就可以找到test.asm文件了(图20-9)。我们可以在增加文件窗口中选择刚才以asm格式(或c格式)编辑的文件,鼠标单击“ADD”按钮,这时源程序文件便加入到Source Group1这个组里了,随后关闭此对话窗口。点击 “ Source Group1”前的“+”号,可以看到test.asm文件已在其中(图20-10)。双击后,即可打开该源程序。
图20-8
Add Files to Group‘Source Group1’界面
图20-9
Add Files to Group‘Source Group1’对话框
图20-10
test.asm文件
20.2
工程项目的详细设置 工程建立好以后,还要对工程进行进一步的设置,以满足要求。
首先点击左边窗口的Target1,然后使用菜单“项目>目标‘target1’选项 ”即出现对工程设置的对话框,共有8个页面,默认为对象页面(图20-11)。绝大部分设置项通常可以采用默认值。
图20-11
对象页面
20.2.1
对象页面
时钟(MHz)后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,对于AT89C51而言是24MHz,而AT89S51是33MHz。该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你实际所用的晶振频率相同。
储存器模式用于设置RAM使用情况,有3个选择项,Small:是所有变量都在单片机的内部RAM中。Compact:变量存储在外部RAM里,使用8位间接寻址。Large:变量存储在外部RAM里,使用16位间接寻址,可以使用全部外部的扩展RAM。
1.Small:一般使用Small来存储变量,此时单片机优先将变量存储在内部RAM里,如果内部RAM空间不够,才会存到外部RAM中。
2.Compact:Compact的方式要通过程序来指定页的高位地址,编程较复杂,如果外部RAM很少,只有256字节,那么对该256字节的读取就比较快。如果超过256字节,而且需要不断地进行切换,就较麻烦,Compact模式适用于比较少的外部RAM的情况。
3.Large:Large模式是指变量会优先分配到外部RAM里。需要注意的是,3种存储方式都支持内部256字节和外部64KB的RAM。因为变量存储在内部RAM里,运算速度比存储在外部RAM要快得多,大部分的应用都是选择Small模式。
代码ROM大小用于设置ROM空间的使用,也有3个选择项,Small、Compact及Large。1.Small:只用低于2K的程序空间,适用于AT89C2051这些芯片,2051只有2K的代码空间,所以跳转地址只有2KB,编译的时候会使用ACALL AJMP这些短跳转指令,而不会使用LCALL LJMP指令。如果代码地址跳转超过2K,那么会出错。
2.Compact:单个函数的代码量不能超过2K,整个程序可以使用64K程序空间。3.Large:可用全部64K空间,表示程序或子函数代码都可以大到64KB,使用code bank还可以更大。通常都选用该方式。选择Large方式速度不会比Small慢很多,所以一般没有必要选择Compact和Small方式。
操作系统选项中,Keil C51提供了两种操作系统:Rtx tiny和Rtx full,通常我们不使用任何操作系统,用该项的默认值:None(不使用任何操作系统)。Use on-chip ROM(0x0-0xFFF)选择项,表示使用片上的ROM(选中该项并不会影响最终生成的目标代码量),该选项取决于单片机应用系统,如果单片机的EA接高电平,则选中这个选项,表示使用内部ROM,如果单片机的EA接低电平,表示使用外部ROM,则不选中该选项。
片外代码(CODE)储存器:表示片外ROM的开始地址和大小,如果没有外接程序存储器,那么不需要填任何数据。这里假设使用一个片外ROM,地址从0x7000开始,一般填16进制的数,Size(尺寸)为片外ROM的大小。假设外接ROM的大小为0x2000字节,则最多可以外接3块片外ROM。
片外数据(XDATA)储存器:用于确定系统扩展RAM的地址范围,可以填上外接Xdata外部数据存储器的起始地址和大小,这些选择项必须根据所用硬件来决定。如果仅仅是89C51单片应用,未进行任何扩展,那么无需设置。
代码分段:是使用Code Banking技术。Keil C51可以支持程序代码超过64KB的情况,最大可以有2MB的程序代码。如果代码超过64KB,那么就要使用Code Banking技术,以支持更多的程序空间。
20.2.2
输出页面
输出页面中(图20-12),按钮“选择目标(OBJ)目录”是用来选择最终的目标文件所在的文件夹,默认是与工程文件在同一个文件夹中。
图20-12
Output页面
“可执行文件名”:设置生成的目标文件的名字,缺省情况下和项目的名字一样。Create Executable:如果要生成OMF以及HEX文件,一般选中“调试信息”和“浏览信息”。选中“调试信息”将会产生调试信息,这些信息用于调试,如果需要对程序进行调试,应当选中该项。“浏览信息”是产生各种信息,该信息可以用菜单“查看” 进行浏览,一般取默认值。“生成hex文件”用于生成可执行代码文件,默认情况下该项未被选中,如果要烧录芯片做硬件实验,就必须选中该项。
Create Library:选中该项时将生成lib库文件,一般的应用是不生成库文件的。构造后操作栏中有以下几个设置。
完成时“嘀”一声提示:编译完成之后发出“咚”的声音。
开始调试:马上启动调试(软件仿真或硬件仿真),根据需要来设置,一般是不选中。运行用户程序#
1、运行用户程序#2:这个选项可以设置编译完之后所要运行的其他应用程序(比如有些用户自己编写了烧写芯片的程序,编译完便执行该程序,将Hex文件写入芯片),或者调用外部的仿真程序。可根据自己的需要设置。
20.2.3
列表页面
列表页面用于调整生成的列表文件选项。在汇编或编译完成后将产生(*.lst)的列表文件,在连接完成后也将产生(*.m51)的列表文件,该页用于对列表文件的内容和形式进行细致的调节,其中比较常用的选项是“C Compile Listing”下的“汇编代码”项,选中该项可以在列表文件中生成C语言源程序所对应的汇编代码(图20-13)。
图20-13
Listing页面
20.2.4
C51页面
C51页面用于对Keil C51软件的C51编译器的编译过程进行控制(图20-14),其中比较常用的是“代码优化选项”组,该组中级别是优化等级,C51在对源程序进行编译时,可以对代码多至9级优化,默认使用第8级,一般不必修改,如果在编译中出现一些问题,可以降低优化级别再试。“侧重”是选择编译优先方式,第一项是代码大小优化(最终生成的代码量小),第二项是执行速度优先(最终生成的代码速度快),第三项缺省。默认的是速度优先,可根据需要更改。
图20-14
C51页面
20.2.5
调试页面
调试页面中(图20-15)有两类仿真形式可选:“使用模拟器”和“Keil Monitor-51 Driver”,前一种是纯软件仿真,后一种是带有Monitor-51目标仿真器的仿真。对于没有Monitor-51目标仿真器的用户,只有采用软件仿真。默认方式下的仿真是软件仿真(使用模拟器)。
图20-15
Debug页面 启动时加载程序:选择这项之后,Keil C51会自动装载程序代码。
一直运行到main():调试C语言程序时可以选择这一项,PC会自动运行到main程序处。
工程设置对话框中的其他各页面与C51编译选项、A51的汇编选项、BL51连接器的连接选项等用法有关,这里均取默认值。
设置完成后按确认返回主界面,工程文件就建立、设置完毕了。20.3
编译、连接
在设置好工程后,即可进行编译、连接。选择主菜单栏中的“项目”,在下拉菜单中选中“构造对象”(图20-16),对当前工程进行编译、连接,这时输出窗口出现源程序的编译结果。如果选择“重新构造所有对象文件”将会对当前工程中的所有文件重新进行编译,然后再连接,这样最终产生的目标代码是最新的。
图20-16
编译、连接操作
以上操作也可以通过工具栏按钮直接进行。
编译过程中的信息将出现在输出窗口中的构造页中,如果源程序中有语法错误,将提示错误ERROR(S)的类型和行号,双击该行,可以定位到出错的位置。对源程序进行修改没有语法错误后,重新进行编译、连接,编译成功后,最终可得到hex格式的文件(如test.hex),该文件可被编程器读入并写到芯片中,同时还会产生一些其他相关的文件,可被用于Keil C51的仿真与调试。20.4
Keil C51集成开发环境软件的调试方法 20.4.1
常用调试命令
在对工程成功地进行编译(汇编)、连接以后,在主菜单中打开“调试”栏,点击“开始/停止调试模式”,即可进入软件模拟仿真调试状态,Keil C51内建了一个仿真CPU用来模拟执行程序,该仿真CPU功能非常强大,可以在没有硬件和仿真器的情况下进行程序的调试,但是在时序上,软件模拟仿真是达不到硬件的时序的。进入调试状态后,“调试”栏菜单项中原来不能用的命令现在已经可以使用了。“调试”栏菜单上的大部分命令可以在调试界面上找到对应的快捷按钮,从左到右依次是复位、运行、暂停、单步、单步跳过、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析、1#串行窗口、内存窗口、性能分析、工具按钮等命令(图20-17)。
图20-17
软件模拟仿真调试状态
使用菜单“单步到之外”或相应命令或功能键F10可以用“单步跳过”形式执行命令,所谓“单步跳过”,是指将汇编语言中的子程序或高级语言中的函数作为一个语句一步执行完。使用菜单“单步”或相应的命令按钮或使用快捷键F11可以单步执行程序(即一条一条语句执行),通过单步执行程序,可以找出一些问题的所在,但是仅依靠单步执行来查错效率较低。
20.4.2
断点设置
程序调试时,一些程序行必须满足一定的条件才能被执行到(如程序中某变量达到一定的值、按键被按下、串口接收到数据、有中断产生等),这些条件往往是异步发生或难以预先设定的,这类问题使用单步执行的方法是很难调试的,这时就要使用到程序调试中的另一种非常重要的方法:断点设置。断点设置的方法有多种,常用的是在某一程序行设置断点(图20-18),设置好断点后可以全速运行程序,一旦执行到该程序行即停止,可在此时观察有关变量值,以确定问题所在。在程序行设置/移除断点的方法是将光标定位于需要设置断点的程序行,使用菜单:“调试>设置/取消断点”设置或移除断点,也可以用鼠标在该行双击实现同样的功能;另外“使能/禁止断点”用来开启或暂停光标所在行的断点功能;其它还有“禁止所有断点”、“取消所有断点”等设置。这些功能也可以用工具条上的快捷按钮进行设置。
图20-18
断点设置
20.4.3
在线汇编
在进入Keil C51的调试环境以后,若发现程序有错,可以直接对源程序进行修改,但是要使修改后的代码起作用,必须先退出调试环境,重新进行编译、连接后再次进入调试。如果调试时只是需要对某些程序行进行临时的试验修改(如修改参数以得到所需的延时时间),那么这样的重复过程显得太麻烦,为此Keil C51软件提供了在线汇编的能力。将光标定位于需要修改的程序行上,用菜单“调试>在线汇编”即可出现如图20-19所示的对话框,在“输入新指令”后面的编缉框内直接输入需更改的程序语句,输入完后键入回车将自动指向下一条语句,可以继续修改。如果不再需要修改,可以点击右上角的关闭按钮关闭窗口。
图20-19
在线汇编对话框
20.4.4
程序调试时的常用窗口 Keil C51软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows)、查看和呼叫堆栈窗口(Watch & Call Statck Windows)、存储器窗口(Memory Window)、反汇编窗口(Dissambly Window)和串行窗口(Serial Window)等。进入调试模式后,可以通过菜单“查看”(View)下的相应命令打开或关闭这些窗口。图20-20是输出窗口、查看和呼叫堆栈观察窗口和存储器窗口,各窗口的大小可以使用鼠标调整。进入调试程序后,输出窗口自动切换到Command页。
图20-20
输出窗口、查看和呼叫堆栈窗口和存储器窗口
存储器窗口
存储器窗口中可以显示系统各种内存中的值,通过在“地址”(Address)后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM空间,数字代表想要查看的地址。例如输入“D:0x20”即可观察到地址20H开始的片内RAM单元值;键入“C:0x100”即可显示从100H开始的ROM单元中的值,即查看程序的二进制代码。该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择,该菜单用分隔条分成三部分,其中第一部分与第二部分的三个选项为同一级别,选中第一部分的任一选项,内容将以整数形式显示,而选中第二部分的ASCII项则将以字符型式显示,选中Float项将以相邻四字节组成的浮点数形式显示,选中Double项则将相邻8字节组成双精度形式显示。第一部分又有多个选择项,其中Decimal项是一个开关,如果选中该项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。Unsigned和Signed后分别有三个选项:Char、Int、Long分别代表以单字节方式显示、将相邻双字节组成整型数方式显示、将相邻四字节组成长整型方式显示,而Unsigned和Signed则分别代表无符号形式和有符号形式,究竟从哪一个单元开始的相邻单元则与你的设置有关。以整型为例,如果你输入的是“I:0”,那么00H和01H单元的内容将会组成一个整型数,而如果你输入的是“I:1”,01H和02H单元的内容会组成一个整型数,依此类推。第三部分的Modify Memory at X:xx用于更改鼠标处的内存单元值,选中该项即出现如图20-21所示的对话框,可以在对话框内输入要修改的内容。
图20-21
更改内存单元值 工程窗口寄存器页
图20-22是工程窗口寄存器页的内容,寄存器页包括了当前的工作寄存器组和系统寄存器组。系统寄存器组有一些是实际存在的寄存器,如A、B、DPTR、SP、PSW等,有一些是实际中并不存在或虽然存在却不能对其操作的,如PC、States等。每当程序中执行到对其寄存器的操作时,该寄存器会以反色(蓝底白字)显示,用鼠标单击然后按下F2键,即可修改该值。
图20-22
工程窗口寄存器页 查看和呼叫堆栈观察窗口
这也是很重要的一个窗口,工程窗口中不仅可以观察到工作寄存器和有限的寄存器如A、B、DPTR等,如果需要观察其他寄存器的值或者在高级语言编程时需要直接观察变量,还要借助于这个窗口了。
一般情况下,我们仅在单步执行时才对变量值的变化感兴趣,全速运行时,变量的值是不变的,只有在程序停下来之后,才会将这些值的最新变化反映出来。但是,在一些特殊场合我们也可能需要在全速运行时观察变量的变化,此时可以点击查看>定期窗口更新,确认该项处于被选中状态,即可在全速运行时动态地观察有关值的变化。但是,选中该项,将会使程序模拟执行的速度变慢。
Keil C51提供了串行窗口,我们可以直接在串行窗口中键入字符,该字符虽不会被显示出来,但却能传递到仿真CPU中,如果仿真CPU通过串行口发送字符,那么这些字符会在串行窗口显示出来,用该窗口可以在没有硬件的情况下用键盘模拟串口通信。由于该项涉及到高级语言编程,这里就不具体介绍了。
20.5
外围接口工具
为了能够比较直观地了解单片机中定时器、中断、并行端口、串行端门等常用外设的使用情况,Keil C51提供了一些外围接口对话框,通过“外围设备”菜单选择。“外围设备”的下拉菜单内容与你建立项目时所选的CPU有关。如果是选择的89C51这一类单片机,那么将会有Interrupt(中断)、I/O Ports(并行I/O口)、Serial(串行口)、Timer(定时/计数器)这四个外围设备菜单(图20-23)。打开这些对话框,列出了外围设备的当前使用情况,各标志位的情况等,可以在这些对话框中直观地观察和更改各外围设备的运行情况。
图20-23
外围设备菜单 20.5.1
P1□作为输入端□
程序每执行一个循环之前,修改一次P1端口的值(图20-24),观察变量的值是直接观看屏幕右下角的变量表;另外的方法是将鼠标移动到源程序的变量处,等待大约1秒钟左右,屏幕上即可弹出该变量的相关信息。
图20-24
P1□作为输入端□ 20.5.2
P1□作为输出端□
执行循环时观察P1口的输出。由于P1口只用于输出,故无须修改端口值(图20-25)。
图20-25
P1□作为输出端□
20.5.3
外部中断INT0 外部中断INT0对应于P3.2口线,因此,用鼠标单击“外设>Port3”窗口从右向左数第三位(P3.2口线对应的位),每单击一下,即产生一次中断,原因是外部中断是下降沿或低电平有效(图20-26)。
图20-26
外部中断INT0 另外,也可以点击“外设>Interrupt”,在出现图20-27所示中断对话界面后,进行设置。
图20-27
中断对话界面 20.5.4
定时器/计数器0 MCS-51系列单片机有两至三个定时器/计数器,均可以作为定时器或计数器使用。点击“外设>Timer0”即出现图20-28所示定时/计数器0的外围接口界面,可以直接选择Mode组中的下拉列表以确定定时/计数工作方式(0~3四种工作方式,设定定时初值等),点击选中TR0,status后的stop(停止)就变成了run(运行)。如果全速运行程序,此时TH0、TL0后的值也快速地开始变化(要求“定期窗口更新”处于选中状态),直观地演示了定时/计数器的工作情况。
图20-28
单片机实验报告 篇6
实验报告
课程名称: 姓
名: 系
别: 专
业: 年
级: 学
号: 指导教师:
单片机原理及应用实验
陈璐 信息系
电气工程及其自动化
2012级 120712041 李莉
2015 年 月 25
日
1.实验目的和要求
1)熟悉Keil 软件界面,以及编辑、编译、运行程序的步骤;
2)熟悉Proteus软件界面,掌握用Proteus画仿真图的方法。2.主要仪器设备
Keil 软件与Proteus仿真软件 3.实验设计要求
利用单片机、1个开关和1个发光二极管,构成一个简单的开关检测系统的仿真电路图。单片机P3.0引脚接按钮开关,P1.0引脚接发光二极管的阴极。当开关闭合时,发光二极管亮;开关打开时,发光二极管灭;按钮开关与发光二极管没有任何电气上的联系。
单片机对开关K的状态的检测由程序检测P3.0引脚的输入电平。当开关K闭合,即P3.0脚输入低电平;当开关K打开,即P3.0脚输入高电平。使用发光二极管,阳极接+5V,阴极接P1.0端口。当程序控制P1.0输出高电平时,发光二极管D1灭;当程序控制P1.0输出低电平时,发光二极管D1亮。4.操作方法与实验步骤
(1)Keil C51软件使用
在Keil C51集成开发环境下,建立一个工程并编辑以下源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。
#include “reg51.h” #define uchar unsigned char #define uint unsigned int sbit in=P3^0;sbit out=P1^0;void main(void){ while(1){ in=1;if(in= =0)out=0;else out=1;} }(2)建立新文件
进入Proteus ISIS界面,单机主菜单项【文件】→“新建设计”选项,就会弹出“新建设计”窗口,窗口中提供了多种模版选择。其中横向图纸为Landscape,纵向图纸为Portrait,DEFAULT为默认模版。单击选择的模版图标,再单击“确定”按钮,即建立一个该模版的空白文件。如果直接单击“确定”按钮,即选用系统默认的DEAFAUILT模版。
单击保存按钮,在弹出的对话框“保存ISIS设计文件”中输入文件名再单击“保存”,则完成新建设计文件的保存操作,其后缀自动为“.DSN”。
(3)设定绘图纸大小 单击菜单中的【系统】→“设置图纸大小”,选择所需图纸的尺寸位A4。
(4)选取元器件并添加到对象选择窗口中
单击器件选择按钮,弹出选取元器件对话框。在其左上角“关键字”一栏中输入元器件名称“AT89C51”,则出现关键字匹配的元器件列表。选中AT89C51所在行或单击AT89C51所在行后,再单击“确定”按钮,便将元器件AT89C51加入到ISIS对象选择窗口中。按此操作方法逐一完成其他元器件的选取。本设计中使用的各元器件的关键字相应为“AT89C51”、“BUTTON”(按钮开关)、“CAP”(瓷片电容)、“CAP-ELEC”(电解电容)、“CRYSTAL”(晶振)、“RES”(电阻)等。被选取的元器件加入到ISIS对象选择窗口中。(5)放置、移动、旋转元器件
单击ISIS对象选择窗口中的元器件名,蓝色条出现在该元器件名上。把鼠标指针移到编辑区某位置后,单击就可放置元器件于该位置,每单击一次,就放置一个元器件。如果要移动元器件,先右击元器件使其处于选中状态,再按住鼠标左键进行拖动,达到目标处后,松开鼠标即可。如要调整元器件方向,先将指针指在元器件上单击鼠标右键选中,再单击相应的旋转按钮。若多个对象一起移动或转向,可选择相应的块操作命令。(6)放置电源、地(终端)
单击工具箱的终端模式按钮,然后在对象选择窗口中单击POWER来选中电源,然后使用元器件调整工具按钮进行方向调整,最后在编辑区中单击放置电源。(7)电路图布线
单击元器件引脚间、线间等接线处,自动生成连线。(8)电气检测
单击电器检查快捷键按钮,根据电气检查列表的指示修改设计中的错误,完成实验。5.实验内容及实验数据记录
每当按下K时,LED灯就会发光。
C2U130pF19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617X112MHz18XTAL2D1R24.7K930pFRSTR4220293031C310uFPSENALEEAKR310K10K12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51LED-GREENC1R1220 6.实验数据处理与分析
每当按下K时,in(p3.0)I/O口就会变为低电平,该信号使得CPU给out(p3.0)I/O口发送低电平,使得LED灯发亮。7.实验过程中遇到的问题及解决方法
一开始安装软件的时候最后一步设置完通信设置时,鼠标点击“好”,但是屏幕一直显示“通信错误”的提示,经过重复操作,还是没有成功,结果是因为“端口选择”处选择错了,改正后最终安装成功。8.心得体会
单片机虚拟实验室的建立 篇7
1 简介proteus软件
本文建立单片机虚拟实验室所使用的核心软件就是proteus。它不仅能够对单片机的CPU的运行情况进行仿真,而且对于单片机的外电路甚至于不包含单片机的电路,proteus软件也能对其在一定程度上进行仿真。所以,我们在执行相关程序时,重点考察的对象并不是存储器的改变,而是直接观察结果,看程序运行后电路的工作情况。只有这样,单片机的实验操作才能和相应的工程做到有机的统一。
2 简述proteus软件仿真的工作过程
基于proteus软件的ISIS程序,系统即可进入仿真环境。具体应用proteus软件的仿真过程可以简述为以下几步:首先,选中view菜单,根据具体情况设置捕捉对其项目的相关内容,并同时对system项中的界面大小、颜色等项进行相关设置。然后,运行元件命令后,打开pick devices,从中选择并放置仿真电路所需的各种元器件,根据实际电路设计将其连接,并按要求设定元器件的工作参数,并在软件环境下编程处理。其次,执行Define code generation tools命令,确定编译的路径、工具等。最后,在执行命令项Add/remove source files的环境下,输入相应的电路程序,通过debug选项进行仿真检测电路工作情况。
3 简述单片机实验的组织
单片机的实践教学中,一般包括以下几点:系统资源、软件技术、硬件的接口电路、软硬件结合的应用系统。下面以51单片机为例,简述单片机实验的组织情况。
3.1 关于软件技术的实验
关于软件技术实验,主要包括以下几个方面;对具体语句的执行、对具体算法的实现、对错误语法的检查、对错误逻辑的验证。当然具体实验的操作还需根据具体情况而定。
3.2 关于硬件接口电路的实验
单片机硬件的接口电路理论不仅涉及到电子电路的相关知识,还需要考虑到实际的应用需要。一般地,硬件的接口电路的相关理论主要包括如何选择或连接元器件、如何设置电路更好的工作方式、如何保障电路的稳定性以及其空间需求等知识内容。由于仿真情况下的电路工作环境与实际情况还是存在一定差距的,所以若进行单片机的实际教学,还需要求学生自己设计电路和电路的工作环境。通常情况下,可以让学生根据相关的条件,使学生对接口电路及相应的程序自行设计;或者也可以让学生根据程序设计对应的接口电路。
3.3 关于软硬件结合的应用系统的实验
实现软硬件结合,单片机就有一个应用系统了。此时的重点将不再是硬件设施的相关问题,而是软件系统如何设计、做相关的调试,并最终运行。
4 简述虚拟实验室的建立方法
要做好单片机的虚拟实验室的建设工作,一般需要考虑以下几个方面。第一,需要尽可能地保障虚拟环境与实际情况基本相符,虚拟环境下的硬件设备的供应尽可能完整。另外,在设计硬件电路时,一方面要考虑到对系统的扩展。也就是说,如果实际的应用系统需求的容量大于单片机的相关功能单元中的ROM,RAM,I/O口以及定时器、计数器等的设备容纳量时,可以通过选择适当的芯片对单片机进行片外扩展。另一方面,如果实际系统需要配置如键盘、显示器、打印机、A/D转换器、D/A转换器等设备时,系统可以对接口电路进行合理设计以满足设备调试。学生们通过对proteus软件的科学应用,以上要求都可以实现。第二,通过使用WAVE软件工具实施对应用软件的编制和调试,学生可以借此学到单片机软件的开发方法及相应的技巧。第三,在软件的调试界面选用WAVE软件,硬件的调试界面选用proteus软件的基础上,通过WAVE软件与Proteus软件的整合,即可以对虚拟的硬件和软件进行总调。第四,将WAVE软件和proteus软件所提供的软件和硬件调试进行有机整合。一般地,我们利用proteus软件绘制出所要仿真的硬件的电路图,利用WAVE软件写入相应的程序,进行编译后,系统即会生成一个*.HEX文件;并且利用proteus软件打开已绘制完成的硬件的电路图,双击芯片89C51,并打开Program File选项,在加载完成生成的*.HEX文件后即可对编译的程序进行仿真了。
5 结语
随着单片机技术在社会、工程中的应用越来越广泛,人们对其信息化、智能化的要求也会越来越高。因此,熟练掌握proteus等软件进行相关的模拟仿真成为了单片机技术发展的必然。学习proteus软件,不仅可以在机电、自动化等相关专业的教学中进行模拟仿真,还可以建立个人实验室做仿真试验,在减弱经费、时间、场地等客观条件对单片机实验的限制的同时,也在一定程度上提高了学生以及相关工程人员的实践操作能力,并且对进一步推动单片机技术的发展起到了重要的作用。
参考文献
[1]胡文金,钟秉翔,杨健.单片机应用技术实训教程[M].重庆:重庆大学出版社,2012:20-35.
[2]刘炳尧.KeilC+Protcus6.9-搭建自己的单片机仿真实验室[J].电子制作,2 01 3(8):52-54.
单片机实验指导书 篇8
關键词:Proteus;Keil;单片机;虚拟实验室
单片机作为嵌入式系统的一个重要分支,目前已广泛地应用于智能化家用电器、办公自动化设备、工业自动化控制、智能化仪表、通信产品、汽车电子产品、航空航天国防军事等人类生活的各个领域。全国大中专院校电气自动化专业、应用电子技术专业、通信专业、机电专业等许多专业相继开设了单片机课程。
目前单片机的课堂教学及实验中存在诸多问题:一是单片机课堂教学多以理论教学为主,教学中需要很多硬件设备,一般理论课堂难以辅助硬件进行教学,即便演示,效果也不好。二是单片机实验室由专人管理,学生除了上课外,平时难得有机会实践,而采用的单片机实验设备大多是成品,学生很难参与其中的细节设计,因此学生动手能力也很难得到提高。三是配套的实验设备多采用实验箱或硬件仿真器配目标实验板,这种配置方式直接导致该课程的实验项目有限、实验时间过长、设备维护工作量大等现实问题。四是实验设备不足、落后,单片机实验室建设成本高,由于技术的不断更新,设备的不断老化,实验仪器也会很快落后。
针对上述问题,作者将Proteus和Keil软件引入单片机课堂教学,以构建一个适合“教、学、做”一体化教学的单片机虚拟实验室,把单片机实验室搬进课堂,实现理论教学和实践教学的无缝衔接,让理论教学和实践教学同时进行,教师根据授课要求随意切换理论教学和实践教学的环境,教师能够做到“教中做、做中教”,学生能够做到“学中做、做中学”,达到真正意义上的“教、学、做”一体化的教学要求,将理论教学和实践教学融为一体,提高学生的动手实践能力,激发学生的创新思维,强化学生的职业能力,提高教学效果。
一、Proteus和Keil软件特点
(一)Proteus软件特点
Proteus软件是英国Labcenter公司开发的电路分析与实物仿真软件,它运行于Windows操作系统,可以仿真、分析各种模拟器件和集成电路。Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。当硬件和软件调试成功后,利用Proteus软件提供的原理图绘制工具和印刷电路板设计工具,很容易获得其PCB图,为实物的制作提供方便。因此该软件给我们提供了一个元器件丰富、测试仪器齐全、单片机的种类繁多、开发工具齐备的单片机虚拟实验室。
(二)Keil软件特点
Keil软件是目前最流行开发MCS-51系列单片机的开发软件,它提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部份组合在一起。KEIL μVision支持众多不同公司的MCS-51架构的芯片,它集编辑、编译、仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序、软件仿真方面也有很强大的功能。
将Proteus与Keil整合起来使用,构建单片机虚拟实验室,充分利用各自的仿真功能,可以让单片机的软硬件设计和调试变得十分方便。
二、单片机虚拟实验室构建
利用Proteus实现对单片机实验的改进,单片机实验将脱离传统实验硬件的限制,并结合目前广泛使用的一款51单片机开发平台KeilμVision2,将Proteus与KeilμVision2结合起来,联合利用它们的仿真功能,充分利用各自的优势构建虚拟实验室。基于Proteus和Keil的虚拟实验室构建步骤如下:
1.分析问题,提出解决方案。针对要解决的问题进行分析,确定控制要求,提出多种解决方案,综合考虑实现难易程度、硬件成本和系统性能等因素,确定最终的软硬件实施方案。
2.设计仿真电路。将手工绘制的硬件电路原理图在Proteus软件中实现,学生通过Proteus软件的使用,可以学到硬件电路设计、组装、调试的方法。
3.编写程序。学生通过Keil软件编制、调试应用程序,掌握单片机软件开发的步骤、方法和技巧。
4.软硬件联合仿真系统。软硬件联合仿真系统是将Proteus硬件开发环境和Keil软件开发环境二者在计算机上结合使用,达到完美的单片机模拟开发全过程,其结合方式有两种,一种是静态结合,一种是动态结合。静态结合仿真就是把Keil C51软件下生成的HEX文件,嵌入Proteus软件进行软硬件模拟仿真。静态结合仿真优点是简单方便,缺点是HEX文件嵌入Proteus软件后,只能在Proteus软件下仿真,不能在Keil C51软件动态观察。动态结合仿真就是利用Proteus软件支持第三方的软件编译和调试环境的特点,把Proteus软件和Keil C51软件动态连接,实现二者的动态实时仿真。动态结合仿真优点是可以实现在Keil C51软件动态仿真,在Proteus软件实时观察结果,缺点是Pruteus软件和Keil C51软件设置相对比较繁琐。
5.观察实验结果。单击Proteus中的执行按钮,开始仿真。如果实验没有达到预期效果,可以很方便地修改硬件电路或软件程序重新实验,直到完全达到控制要求为止。
三、仿真教学实例
下面以基于AT89C51的串行多通道A/D转换模拟实验为例,介绍如何用Proteus和Keil实现对单片机控制系统的联合仿真。
(一)硬件设计
根据实验目的和要求,在Proteus中建立电路原理图。首先是工作窗口加入电路所必需的元器件,其中包括控制芯片AT89C51,A/D转换芯片TLC2543,驱动芯片ULN2003A,显示设备数码管以及其它必需的电容、电阻、晶振等。随后根据电路工作原理对已加入项目的元器件进行连接,并加入电源和地线。如果在实验要观察某些信号的变化则可加入电压表,电流表或是逻辑分析仪等虚拟显示设备,至此系统硬件电路已设计完成。
(二)软件设计
打开Keil μVision2,新建一个项目,命名为“串行A/D转换.uv2”。选择Project菜单下的Select Device for Targer为这一项目选择目标CPU,这里选择AT89C51。然后单击Project菜单下的Option for Targer工程名菜单项,选择Debug选项进行相应设置,接下来编写源程序并命名“串行转换A/D.asm”,将此文件加入到工程里面,经过编译、调试、修改生成Hex文件。
(三)联合调试
Proteus软件和Keil软件联合调试在这里采用的静态结合的方法,即在Proteus软件中将Keil软件编译生成的Hex文件加载到89C51单片机中。单击Proteus软件中运行按钮,观察仿真结果可见,每个通道模拟电压值被转换为数字量轮流显示在数码管上。如果出现错误或是没有达到控制要求则可以检查电路或是修改程序再进行调试,直到完成实验目标。
四、虚拟实验室的实际意义
(一)有利于解决设备紧缺问题
解决以往以理论为主实践少,且存在实践以验证性为主及设备不足等问题。由于Proteus特有的虚拟仿真技术能在没有单片机实际硬件的条件下实现单片机系统的软硬件同步仿真调试,只要在安装有Proteus和Keil软件的虚拟实验室里就可以完成整个开发过程,无需任何其他硬件设备的支持;在实验室不开放的情况下,学生也可以利用自己的电脑来完成。
(二)有利于培養学生创新能力
由于Proteus提供的都是虚拟设备,可以让学生自由、大胆地进行各种设计,无需担心损害实验设备,也不用承担设计开发的各种费用,节约了实验经费。学生的某些创造性设想在仿真软件可以很快地得以实施,相比于到电子市场购买元器件再组装调试,既节约了成本又提高了效率。
(三)有利于推进课程教学改革
基于“工作过程系统化”的单片机项目式教学法突破了传统的教学模式,以项目取代章节,将理论知识贯穿于各项目中,开展理实一体化项目教学,强调理论知识与实践技能相结合,融“教、学、做”一体。单片机虚拟实验室的建立成为大力推进项目教学的有力保障,对于项目教学来说课程划分若干项目,每一个项目都是一个具体的控制任务,软硬件均可以在Keil和Proteus联合仿真调试,学生可以在教师指导下独立完成设计任务并检查控制效果。单片机虚拟实验室的建立可以较好地克服传统的单片机教学中无法兼顾理论教学和实践教学,或是由实物演示带来教师工作量大和教学效率低等问题。
(四)为学生实习就业创造条件
建成的单片机创新虚拟实验室可以作为学生实习的场地,在没有合适的实习场所的情况下,让学生做创新性设计实习。
单片机技术应用于各种嵌入式系统中,掌握单片机技术是自动化类专业学生就业的一个基本条件,有相当的单片机设计、开发经验,对学生毕业找工作将起到很好的帮助作用。
五、结 语
伴随着电子信息技术的飞速发展,出现了大量的仿真工具,为实际系统的开发提供了准确可靠的保证,同时节约人力和物力,是未来产品设计的发展方向。本文运用Proteus与Keil联合仿真功能完成单片机虚拟环境的构建,是对传统实物电路仿真的一种有力补充,有利于促进课程和教学改革,有利于提高学生的学习兴趣和创新能力。利用Proteus提供的可靠的虚拟仪器和仪表,不仅可以节约开发时间和开发成本,而且具有很大的灵活性和可扩展性,大大提高了教学效率。但必须指出,仿真不能完全代替实物,在实际应用中会遇到很多新的问题,不可能抛弃已有的教学模式和实验手段而仅仅依靠虚拟的实验环境。只有将仿真结果应用于具体电路系统,才能真正锻炼学生的软硬件综合开发能力。
参考文献:
[1] 余桂兰,左敬龙.创新模式下的高校单片机虚拟实验室
[J].广东石油化工学院学报,2011,21(1):59-62.
[2] 焦铬,戴小新.基于Proteus和Keil的单片机虚拟实验室的
构建[J].电脑知识与技术,2010,6(28).
[3] 吴新华.单片机虚拟实验室的构建[J].萍乡高等专科学
校学报,2009,26(3):38-41.
[4] 黄克亚,尤凤翔.基于“工作过程系统化”的单片机系列
课程教学改革探索[J].职业时空,2011,(10):74-75.
Higher Vocational Colleges Microcontroller Virtual Laboratory Construction
Scheme Research
HUANG Ke-ya
Abstract: Based on the single chip microcomputer curriculum theory teaching and traditional practice teaching problems or insufficient, Proteus was put forward based on the joint simulation of single chip microcomputer and Keil virtual laboratory construction plan. Specific means is Proteus software design in hardware circuit and software development in Keil software program, both the union simulation realize commissioning. The plan to reduce the laboratory construction funds, to promote the reform of teaching and improve teaching efficiency and to improve students' interest in learning and innovation ability.
Key words: proteus; keil; single chip microcomputer; virtual laboratory
收稿日期:2012-07-01
作者简介:黄克亚(1982-),男,硕士,苏州大学阳澄湖校区自动控制系讲师、软件设计师,从事电气自动化、集成电路
【单片机实验指导书】推荐阅读:
单片机实验汇总10-03
单片机集成实验平台02-25
单片机实验报告二10-14
2023单片机实验教案12-05
单片机实验三 双机通信实验程序08-29
单片机实验教学方法06-21
单片机综合实验报告格式12-25
单片机外部中断实验报告04-10
浅析单片机实验教学04-28
单片机实验室的建设01-20