《计算机控制技术》实训实验指导书(带所有源程序版)_第1页
《计算机控制技术》实训实验指导书(带所有源程序版)_第2页
《计算机控制技术》实训实验指导书(带所有源程序版)_第3页
《计算机控制技术》实训实验指导书(带所有源程序版)_第4页
《计算机控制技术》实训实验指导书(带所有源程序版)_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机控制技术课程实验指导书制订教师:杨嘉林城市学院2014年1月目 录预备知识一 Keil uVision软件快速入门3预备知识二 Proteus软件快速入门15实验一 模拟量输入接口- A/D转换实验26实验二 模拟量输出接口-D/A转换实验33实验三 步进电机控制实验38预备知识一 Keil uVision软件快速入门一、实验目的与要求:1、认识Keil uVision软件;2、掌握用Keil uVision软件建立工程;3、掌握用Keil uVision软件进行仿真调试;二、实验场地、设备、仪器、工具:安装有proteus和keil软件的微机。三、实验步骤:1、在proteus软件中画

2、原理图;2、keil软件下编写源程序并编译形成可执行文件.hex;3、载源程序;4、仿真。四、实验内容:本实验主要介绍用于单片机开发的常见编程语言和开发环境,重点介绍Keil uVision集成开发环境的使用。1、51语言编译器介绍常见的MCS-51系列单片机编程语言有4种,汇编语言、C语言、BASIC语言和PL/M语言。目前最为常用的是汇编语言、C51语言,他们有良好的编译器支持,使用较为广泛。C51常用于编写较为复杂的大型程序,汇编语言则用于对效率要求较高的场合,尤其是对底层函数的编写,因此,一个好的单片机开发者,不仅要熟悉单片机内部的体系结构,还要理解单片机内部的工作过程,能熟练的使用汇

3、编语言和C51语言进行单独或联合开发。C51语言的编译器很多,各有各的特点,如表1.1所示。表1.1 C51编译器及其比较类别特点American automation编译器通过#asm 和endasm预处理支持汇编语言,编译器速度慢,需通过汇编语言作为中间环节。archimedes兼容标准c,支持分组rank编译,但需要一个比较复杂的link程序才能运行。Bso/tasking兼容x86系列汇编,c编译器支持内置函数并且允许调用MCS-51系列单片机的汇编指令。intermetrics需要大量的宏来支持编译、汇编、链接。Microcomputer controls不支持浮点数、长整数、结构和

4、多维数组,生成的源文件必须用intel或mcc的8051汇编其汇编。franklin该编译器支持浮点数等类型,但不提供库代码,不能生成相应的汇编代码,只能生成混合代码。keil最常用的编译器,支持浮点数、多维数组,能生成对应的汇编代码,能直接编译汇编代码,内嵌多种工具,可以很方便的链接生成可执行文件。2、Keil uVision3集成开发环境uVision3 IDE是Keil software公司继uVision2后的产品,它集项目管理、编译工具、源代码编写工具、代码调试以及完全仿真于一体,是目前市面上最流行的单片机开发软件平台。该软件具有类似VC风格的界面,提供了丰富的工具、命令和窗口,可以

5、使开发者在程序调试过程中随时掌握代码所实现的功能。本节通过CLR RAM实例,详细叙述uVision3的使用方法。2.1 项目工程的建立(1) 建立工程文件在桌面上双击Keil uVision3图标,启动集成开发环境如图1.1所示,该界面中最上面一行是菜单,菜单下面是各种工具按钮,左边的project workspace窗口为项目管理窗口(Project Window),最下面的为输出窗口(Output Window),中间部分为工作去,通常我们所编的源程序、调试程序代码窗口会出现在这里。图1.1点击Project菜单下的New Project命令,在出现的对话框中输入项目名CLR RAM.U

6、v2,选择合适的文件夹下建立新的工程项目CLR RAM.Uv2,点击确定按钮出现如图1.2所示的Select Device For TargetTarget1对话框,在Date base下选择Atmel,点开“+”号,选择AT89C51器件,点击确定按钮。在project workspace下出现。图1.2(2) 源程序文件的建立使用菜单File->New命令,弹出源程序编辑窗口,输入以下程序:ORG 0030H MOV R0,#30 MOV R1,#40HCLEAR: CLR A MOV R1,A INC R1 DJNZ R0,CLEAR SJMP $ END点击File->Sa

7、ve as命令,保存文件名为CLR_RAM.ASM。图1.3(3)将文件加入到工程项目中 按图1.3所示点击Add File to Group Source Group1命令,然后选中CLR_RAM.ASM文件,点击Add按钮,将刚才编写的源程序CLR_RAM.ASM加入项目中。如图1.4所示:图1.4注意:添加完文件后,该对话框并不消失,等待继续加入其它文件,初学者常误认为添加文件不成功,其实已添加成功,只需点击Close按钮关闭对话框即可。2.2工程的详细设置工程建立好后,要对工程进行进一步的设置,以满足后续工作的要求。首先点击左边的Project窗口的Target1,然后使用菜单的菜单“

8、Project->Option for target target1”出现对工程设置的对话框,其中有8个页面,这里绝大部分设置取默认值就可以了。Target页面如图1.5所示:图1.5Xtal后面的数值为晶振频率值,默认值为所选CPU的最高工作频率,对AT89C51而言为24MHz,我们常选12MHz值,该值与最后产生的目标代码无关,仅用于软件仿真显示程序执行时间,一般于你的硬件所用频率设为同一值我们将它设为12MHz。Memory Model用于设置RAM的使用情况,设置为small,Code Rom Size用于设置ROM的空间,设置为Large:64k,Operation用于选择操

9、作系统,一般不用操作系统,选择None,Use on-chip ROM用于是否进使用片内的ROM,在此设置如图1.5所示。Off Chip Code memory用以确定系统扩展ROM的地址范围,Off Chip xData memory组用于确定系统扩展RAM的地址范围,这些需根据硬件来决定。设置对话框中的OutPut页面,如图1.6所示,这里也有多个选项,其中Creat Hex file用于声称可执行代码文件(可用编程器械如单片机芯片中执行的HEX格式文件)默认情况下该项未被选中,如果要写片做硬件试验,就必须选中该项,这一点要特别注意。Select Folder for opjects是用

10、于选择最终生成目标文件所在的文件夹,默认是与工程文件在同一个文件夹中,Name of Executable用于指定最终生成的目标文件的名字,默认与工程的名字相同。图1.6Debug页面的设置,如果要进行仿真的,选中Use Simulator,就可以进行软件仿真。其它所有页面设置为默认选择即可,设置完后,按确认键返回主界面,工程文件建立设置完毕。2.3编译、连接设置好工程后,即可以进行编译、连接。选择菜单Project->Build target,对当前工程进行连接,如果当前文加以修改,会现对该文件按进行编译,然后再连接以产生目标代码,如果选择Rebuild All target file

11、s将会对当前工程中的所有文件重新编译后再连接确保最终生成的目标代码是最新的。编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会报告错误,双击该行,可以自动定位到出错的位置。如果没有出错,最终会得到如图所的结果,提示已生成.hex的文件。图1.9 正确编译、连接后的结果3 Keil uVision3仿真调试、在线汇编与断点设置上一节我们学习了如何在建立工程文件、源程序以及编译生成目标代码,这仅仅是语法上没有错误,如果你的程序在逻辑上出现错误就必须通过调试来解决,实际上绝大部分的程序都必须经过反复调试残能得到正确的结果,调试是软件开发中的一个重要环节。下面着重介绍常用的

12、调试命令、利用在线汇编设置断电进行调试的方法。3.1常用调试命令、窗口介绍Keil内建了一个仿真CPU用来模拟执行程序,可以在没有硬件和仿真机的情况下进行程序的调试。在对工程成功汇编、连接后,点击菜单Debug->Start/Stop Debug Session或者按Ctrl+F5或者点击工具按钮即可进入调试状态。调试状态和编辑状态相比有比较明显的变化,在Debug菜单中原来不能使用的命令现在都可以使用了,工具栏中多出了一个用于运行和调试的工具条。如图1.7所示:图1.7该工具条从左到右依次为复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、

13、反汇编窗口、观察窗口、代码作用范围分析等命令。学习程序调试必须先了解全速运行和单步运行的概念,全速运行即一次运行完成,可以看见程序运行的整体效果,但如果出错则用这种方法很难查找到具体的出错位置,必须借助于单步运行工具,单步执行是每次执行一行即停止,可以看见当前程序运行的中间状态,两种方式都经常会用到。按下F11键或使用菜单STEP或相应的命令按钮可以单步执行程序,使用STEP OVER或功能键F10可以进行过程单步执行,进入如图1.8所示的界面,可以看见在源程序窗口的左边出现一个黄色的调试箭头,每执行单步一次,黄色箭头向下移一行。通过单步执行可以找出一些问题所在,但仅仅依靠单步执行来差图1.8

14、错有时很困难,甚至有时效率会很低,有时通过过程单步执行、断点设置等几种方法联合调试来达到目的。另外在调试的过程中可以随时监视到各寄存器的状态,可以查看存储器的值,还可通过设置变量在观察窗口中观看变量值的变化。各监视窗口如图1.9所示。 寄存器窗口 Watches、Memory窗口图1.9在调试状态下,点击菜单Peripherals,可以打开弹片击中的资源,包括中断源、定时器计数器、串口以及P0、P1、P2、P3口的窗口一边观察它们的值。如图1.10所示。图1.103.2在线汇编技术在进入Keil的调试环境后,如果发现程序有错,可以直接修改源程序,但是要使修改后的程序代码有效,必须先退出调试环境

15、,重新编译连接后在进入调试,但如果只是需要对某些程序行进行测试,或仅需对原程序进行临时的修改,这样的过程就显得有些麻烦,为此Keil软件提供了在线汇编的能力,将光标定位于需要修改的程序行上,用菜单Debug->Inline Assambly即可出现如图1.10所示的对话框。图1.11在Enter New后面的编辑框内直接输入要更改的程序语句,输入完后键入回车将自动指向下一条语句,可以继续修改,如果不再需要修改,可以点击右上角的关闭按钮关闭窗口。3.3断点设置程序调试时,一些程序行必须满足一定的条件才能被执行到(如程序中某变量达到一定的质、按键被按下、串口接收到数据、有中断产生等),这些条

16、件往往是异步发生或难以预先设定的,这类问题使用单步调试方法是很难调试的,这时就要使用到程序调试中的另一种非常重要的方法断点设置。设置好断点后可以全速运行程序,一旦运行遇到断点就会停止运行,此时可以观察有关变量的值,寄存器的值已确定问题所在。设置/移除断点的方法是将光标定位到需要设置断点的程序行,使用菜单Debug->Insert/Remove BreakPoint设置或移除断点,也可以用鼠标在该行双击实现相同的功能;Debug->Enable/Disable BreakPoint是开启或暂停光标所在行的断点功能;Debug->Disable All BreakPoint暂停所

17、有断点;Debug->Kill All BreakPoint清除所有的断点设置。这些功能也可以用工具条中相应的快捷按钮进行设置。断点调试窗口如图1.11所示。图1.12断点设置工具条如图所示。依次为设置/移除断点、取消所有断点、开启/关闭断点、关闭所有断点。4 实例下面通过实例讲解Keil软件的编程调试全过程例:将片内从40H开始的连续30个地址内容清零。ORG 0030HMOV R0,#30HMOV R1,#40HCLEAR: CLR AMOV R1,AINC R1DJNZ R0,CLEARSJMP $END预备知识二 Proteus软件快速入门一、实验目的与要求:1、认识Proteu

18、s软件;2、掌握用Proteus软件建立文件;3、掌握如何使用Proteus软件元件库;二、实验场地、设备、仪器、工具:安装有Proteus和Keil软件的微机。三、实验步骤:1、在Proteus软件中画原理图;2、Keil软件下编写源程序并编译形成可执行文件.hex;3、载源程序;4、仿真。四、实验内容:1、 PROTUES ISIS设计与仿真平台1.1 ISIS窗口介绍在计算机上启动PROTUES ISIS后直接进入ISIS窗口如图2.1所示:器件选择按钮对象选择器仿真按钮编辑区对象预览窗口工具栏菜单栏图2.12.2 PROTUES 文件操作(1)文件的建立和保存如图所示,可以通过点击文件

19、菜单(File)或工具按钮来新建、打开、保存设计文件。图2.2选择“File->New Design”菜单项,弹出如图2.3所示的新建设计(Creat New Design)对话框,对话框中有多种可供选择的模板,选择所需模板,单击“OK”按钮即可建立一个新的空白文件。通常系统默认模板为DEFAULT模板。如要保存设计文件,点击“File->Save Design”命令,输入文件名后点击保存按钮,注意保存的文件类型为Design File。图2.3(2)打开已保存文件选择“File->Load Design”菜单项或单击工具图标,弹出“Load ISIS Design File

20、”对话框如图2.4所示,选择所要打开的文件即可。注意打开的是.DNS设计文件。图2.4(3) PROTUES文件类型PROTUES中的主要有以下文件类型设计文件(*.DSN),包含了一个电路所有的信息,最为常用。备份文件(*.DBK),保存覆盖现有设计文件时会产生文件备份。局部文件(*.SEC),设计图的一部分,可输出为一个局部文件,以后可以导入到其他的图中。在文件菜单中以导入(Import)导出(Export)命令来操作。模型文件(*.MOD)库文件(*.LIB),元器件和库。网表文件(*.SDF),当输出到PROSPICE and ARES时产生的网表文件,扩展名为.SDF。PROTEUS

21、 VSM中还有一些其他文件类型,可参看相关资料。2.3 PROTUES 库PROTUES的库相当丰富,有系统符号库和元件库,系统符号库有124个,其中有终端、模块端口、器件阴交等符号,可直接放置到原理图中,也可用来建立自己的元件模型,元件库大约有30个,每个苦又有许多模型,总共有大约8000多个,元器件库如图2.5所示:未指定模拟集成电路电容CMOS400系列接插件数字转换器调试工具二极管EL C10000系列电动机系列感应器Laplace原型存储器系列微处理器集成电路其他模型原型运放光电器件PLD FPGA电阻仿真原型喇叭音响开关继电器开关热离子真空管。图2.5PROTUES后期的版本不断的

22、有元件库和模型库增加,会越来越完善。PRIOTUES部分模型举例:图2.6 部分单片机模型图2.7部分动态开关模型图2.8部分动态显示器模型2.4 单片机系统的PROTUES设计与仿真实例前面已对PROTUES软件做了简单的介绍,下面通过AT89C51单片机实例手把手的教你如何应用PROTUES软件对单片机系统进行仿真。AT89C51单片机有4个I/O端口,其中P1口为准双向口,其每一位口线都可以独立的作为输入或输出线使用,如图2.9所示:图2.9通过按钮控制实现D1、D2二极管灯的亮和灭,要求按下P1时,接P1.1的灯亮,否则接P1.0的灯亮,应用PROTUES对该电路进行仿真实现,具体实现

23、步骤如下:(1) 打开PROTUES软件的ISIS Professional窗口,单击菜单命令“File->New Design”,新建一个DEFAULT模板,并且保存文件名为“P1口的简单应用.DSN”。(2) 单击器件选择按钮P,添加如下表2-1所列的元件。在ISIS编辑窗口中放置表2-1 P1口的简单应用所需元件单片机AT89C51电容CAP 30pF晶振CRYSTAL 12MHz电阻 RES按钮BUTTON发光二极管LED-BIBY发光二极管LED-BIGY元器件,在单击工具箱中的元件终端图标,在对象选择器中分别点击“POWER”和“GROUND”添加电源和地。(3) 放置好元器

24、件到相应位置,布好线并且对图中的元件参数进行修改设置如图2.10所示。图2.10(4) 编写源程序在ISIS菜单中单击Source(源程序),弹出下拉菜单,点击“Add/Remove Source File”,弹出如图2.11所示的对话框,选择Code Generation Tool下拉菜单中的代码生成工具ASEM51,然后点击New按钮,在“P1口简单应用文件夹”下新建start.asm文件,单击是按钮,新建的start.asm源程序文件就添加到“Source Code Filename”下方框中。然后重新点击菜单“Source->start.asm”编写如下源程序并保存。P1口简单应

25、用源程序清单:ORG 0030H MOV A,#0FFH MOV P1,A JNB P1.2,LOOP1LOOP: CLR P1.0 LCALL EXITLOOP1: CLR P1.1EXIT: NOP END图2.11(5) 汇编编译源程序、生成目标代码文件点击“Source-Build All”菜单命令编译源程序生成.HEX文件,如果有错则需根据编译提示来调试源程序,直到无错为止。注意此处要设置好目标代码生成工具,点击“Source-Define Code Generation Tool”设置如图2.12所示,选择好ASEM51的路径。图2.12(6) 加载目标代码文件、设置时钟频率在IS

26、IS编辑窗口中双击AT89C51单片机芯片,再弹出的对话框中点击如图2.13所示的按钮,选择前面所生成的start.hex代码文件,再在Clock Frequency:栏中设置时钟为12MHz,点击“ok”即可。图2.13(7) PROTUES交互仿真代码装载完毕后即可进行仿真,只需点击运行仿真按钮,仿真运行结果如图2.14所示。图2.14实验一 模拟量输入接口- A/D转换实验一、实验目的与要求:1、认识Proteus软件;2、掌握用Proteus软件软件建立文件;3、掌握如何使用Proteus软件元件库;二、实验场地、设备、仪器、工具:安装有Proteus和Keil软件的微机。三、实验步骤

27、:1、在Proteus软件中画原理图;2、编写源程序并编译形成可执行文件.hex;3、载源程序;4、仿真。四、实验内容:1、基本知识 ADC0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 (1)ADC0808的内部逻辑结构 图1-1 ADC0808内部逻辑结构由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,

28、才可以从三态输出锁存器取走转换完的数据。(2)引脚结构 图1-2引脚结构IN0IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如下表1-1所示。 表1-1 通道选择表CBA选择的通

29、道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线:11条 ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。 CLK为时钟输入信号线因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, V

30、REF(),VREF()为参考电压输入。2、ADC0808应用说明 (1) ADC0808内部带有输出锁存器,可以与AT89S51单片机直接相连。 (2) 初始化时,使ST和OE信号全为低电平。 (3) 送要转换的哪一通道的地址到A,B,C端口上。 (4) 在ST端给出一个至少有100ns宽的正脉冲信号。 (5) 是否转换完毕,我们根据EOC信号来判断。 (6) 当EOC变为高电平时,若OE为高电平,转换的数据就输出给单片机了。 2、实验任务: 如图1-3所示,从ADC0808的通道IN0输入05V之间的模拟量,通过ADC0809转换成数字量在四位(小数后三位)数码管上以十进制形成显示出来。要

31、ADC0809的VREF接5V电压。3、电路原理图: 图1-3电路原理图4程序设计内容: (1)进行A/D转换时,采用查询EOC的标志信号来检测A/D转换是否完毕,若完毕则把数据通过P0端口读入,经过数据处理之后在数码管上显示。 (2)进行A/D转换之前,要启动转换的方法: ABC000选择第0通道 ST0,ST1,ST0产生启动转换的正脉冲信号 5、C51源程序#include <REGX52.H>unsigned char code dispbitcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned ch

32、ar getdata, dispbuf4;unsigned int i,j,temp;sbit ST=P30;sbit OE=P31;sbit EOC=P32;sbit CLK=P33;sbit P34=P34;sbit P35=P35;sbit P36=P36;sbit P20=P20;sbit P21=P21;sbit P22=P22;sbit P23=P23;sbit P17=P17;void TimeInitial();void Delay(unsigned int);void TimeInitial() TMOD=0x10;/定时方式1TH1=(65536-200)/256;/0.2

33、msTL1=(65536-200)%256;EA=1;ET1=1;TR1=1; void Delay(unsigned int i) for(;i>0;i-) for(j=0;j<125;j+); void Display() P1=dispbitcodedispbuf3;P20=0;P21=1; P22=1; P23=1; Delay(10); P1=0x00;P1=dispbitcodedispbuf2;P17=1;P20=1; P21=0; P22=1; P23=1;Delay(10); P1=0x00;P1=dispbitcodedispbuf1;P20=1;P21=1;P

34、22=0; P23=1;Delay(10); P1=0x00; P1=dispbitcodedispbuf0;P20=1;P21=1;P22=1;P23=0;Delay(10); P1=0x00;void main()TimeInitial();while(1)P34=0;P35=0;P36=0;ST=0; while(EOC=1);/查询转换结束OE=1;getdata=P0;OE=0;temp=getdata*1.0/255*500;dispbuf0=temp%10;dispbuf1=temp/10%10;dispbuf2=temp/100%10;dispbuf3=temp/1000;Di

35、splay();ST=0;OE=0;ST=1; void t1(void) interrupt 3 using 0 TH1=(65536-200)/256;TL1=(65536-200)%256;CLK=CLK; 实验二 模拟量输出接口-D/A转换实验一、实验目的与要求:1、了解D/A转换与单片机的接口方法;2、了解D/A转换芯片0832的性能及编程方法.3、了解单片机系统中扩展D/A转换芯片的基本方法;二、实验场地、设备、仪器、工具:安装有Proteus和Keil软件的微机。三、实验步骤:1、在Proteus软件中画原理图;2、编写源程序并编译形成可执行文件.hex;3、载源程序;4、仿真。

36、四、实验内容:1、基本知识DAC0832主要参数* 分辨率为8位;* 电流稳定时间1us; * 可单缓冲、双缓冲或直接数字输入;* 只需在满量程下调整其线性度;* 单一电源供电(+5V+15V);* 低功耗,20mW。DAC0832结构 图2-1 DAC0832引脚及外型图2-2 DAC0832内部逻辑结构* D0D7:8位数据输入线,* TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);* ILE:数据锁存允许控制信号输入线,高电平有效;* CS:片选信号输入线(选通数据锁存器),低电平有效;* WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、

37、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;* XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;* WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。* IOUT1:电流输出端1,其值随DAC寄存器的内容线性变化;* IOUT2:电流输出端2,其值与IOUT1值之和为一常数;* RFB:反馈信号输入线,改变Rf

38、b端外接电阻值可调整转换满量程精度;* Vcc:电源输入端,Vcc的范围为+5V+15V;* VREF:基准电压输入线,VREF的范围为-10V+10V;* AGND:模拟信号地;* DGND:数字信号地。1、实验任务 利用DAC0832和AT89C51产生锯齿波、三角波、矩形波。2、电路原理图 图2-3 电路原理图3、程序设计内容 可按波形变化规律反复给D/A转换器送数字信号,要改变信号的频率,只需改变数字信号送出后的延时时间即可。要产生电压信号,必须外接运算放大器,电路如图 2-3所示。4、汇编源程序(1)锯齿波 ORG0100HSAWT:MOVDPTR,#7FFFH MOVA,#00HL

39、OOP:MOVXDPTR,A INCA LCALLDELAY AJMPLOOPDELAY:MOVR3,#6 D1:MOVR4,#6 D2:MOVR5,#6 D3:DJNZR5,D3 NOP DJNZR4,D2 DJNZR3,D1 RET END(2)三角波 ORG0100H TR:MOVDPTR,#7FFFH CLR A L1:MOVXDPTR,A LCALLDELAY INCA CJNE A,#0FFH,L1 L2:MOVXDPTR,A LCALLDELAY DECA JNZL2 AJMPL1DELAY:MOVR3,#6 D1:MOVR4,#6 D2:MOVR5,#6 D3:DJNZR5,D

40、3 NOP DJNZR4,D2 DJNZR3,D1 RET END(3)矩形波ORG0100HSQ:MOVDPTR,#7FFFHCLRALOOP:MOVXDPTR,ALCALLDELAYCPLAAJMPLOOPDELAY:MOVR3,#6D1:MOVR4,#6D2:MOVR5,#6D3:DJNZR5,D3NOPDJNZR4,D2DJNZR3,D1RETEND实验三 步进电机控制实验一、实验目的1掌握散转程序的四种设计方法。2掌握用散转程序编程控制步进电机的方法。3. 掌握用Proteus调试汇编源程序的方法。二、实验预备知识步进电动机是“一步一步”的转动的一种电动机,电源输入的电信号是脉冲信号

41、(脉冲电压),每输入一个电脉冲,电动机就转过一个固定角度,故而,也称为脉冲电动机。1 基本概念拍:从一种通电状态转换到另一种通电状态,叫一拍。步距角b:每一拍转子转过的角度。2 步进电动机的通电方式例如:四相双四拍 四相:表示电动机有四相绕组,双:表示每一种通电状态都有两相绕组通电 四拍:四种通电状态为一个循环正转时通电顺序: ABBCCDDAABBCCDDAAB 反转时通电顺序: ABDACDBCABDACDBCAB 3. 计算公式 步距角b=360/mZ (度)电机转速n=60f/mZ (转/分钟)上式中 f为脉冲频率(Hz) ,m为拍数,Z为转子齿数4. 步进电动机的特性静态运行状态:步

42、进电动机不改变通电的状态,一般用矩角特性M=f()来表示。步进运行状态:脉冲频率较低,下一个脉冲到来之前,转子已完成一步,并且运动已经停止。高频恒速运行状态:脉冲频率较高, 电机作匀速运动,频率越高、速度越快。一般用矩频特性来表示。 5步进电动机的特点步进电动机的步距(或转速)与脉冲频率成正比,它能按照控制脉冲的要求,立即启动、停止、正反转及变速,响应性好。位移与输入脉冲信号数相对应,在不丢步的情况下运行时,角位移的误差不会长期积累,可以组成结构较为简单的开环控制系统,也可在要求更高精度时组成闭环控制系统。步进电动机无刷,本体部件少,可靠性高,停止时可有自锁能力;步距角选择范围大,可在几十分至

43、180°大范围内选择。速度可在相当宽的范围内平滑调节,用一台控制器控制几台步进电机可使它们完全同步运行。步进电动机带惯性负载的能力较差,不能直接使用普通的交直流电源驱动。步进电动机的应用范围广泛,除数控、工业控制和计算机外部设备中大量使用外,在工业自动线、印刷机、遥控指示装置、航空系统中,都在使用步进电动机。三、实验内容P1口做输出口控制四相步进电动机的四相绕组,编写程序,控制步进电动机每2s正向转动一步。晶振频率6MHz。假设步进电动机的通电方式为四相双四拍,正转时的通电顺序是ABBCCDDA;反转时的通电顺序是ABDACDBC。用P3口做输入口接两只控制开关S1S2,S1控制电机

44、的速度,S2控制电机的方向, P1口做输出口控制四相步进电动机;利用RET指令编写程序,使两只控制开关控制步进电动机以不同的方向和速度转动。晶振6MHz。控制要求如下: P3.5=0 P3.4=0 时 步进电动机高速正转,转速n=300转/分 P3.5=0 P3.4=1 时 步进电动机高速反转,转速n=300转/分 P3.5=1 P3.4=0 时 步进电动机低速正转,转速n=60转/分 P3.5=1 P3.4=1 时 步进电动机低速反转,转速n=60转/分转速n=60 r/min时,利用公式计算得f =20Hz,T=1/f =1/20=50ms转速n=300 r/min时,利用公式计算得f =

45、100Hz,T=1/f =1/100=10ms(M=4,Z5)四、实验参考电路假设用P1.0P1.3口作为输出口分别控制步进电动机的四相绕组,控制开关SW1SW2分别接P3.5和P3.4,控制电路图如图3-9所示;根据硬件接线可推导出控制状态与P1口的控制码的对应关系,如表3-1所示。表3-1 控制状态与P1口的控制码的对应关系控制状态P1口控制码P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0D相C相B相A相A相、B相绕组通电03H00000011B相、C相绕组通电06H00000110C相、D相绕组通电0CH00001100D相、A相绕组通电09H00001001图3-1

46、步进电机控制实验电路五、实验参考程序分支的出口有两个以上时,形成散转程序,一般用散转指令来实现,设计方法有4种。分别是转移指令表法、地址偏移量表法、转向地址表法和利用RET指令法。地址机器码程序注释 ORG 0000H;程序从地址0000H存放0000H02 00 30 LJMP START ORG 0030H;程序从地址0030H存放0030H75 B0 FFSTART: MOV P3,#0FFH0033HE5 B0 MOV A,P3;读输入数据0035H54 30 ANL A,#30H;屏蔽掉无关位0037HC4 SWAP A0038H23 RL A0039HF9 MOV R1,A003A

47、H04 INC A003BH90 00 50 MOV DPTR,#TABLE;转移地址表的基地址送DPTR003EH93 MOVC A,A+DPTR;查表并取出转移地址的低8位003FHC0 E0 PUSH ACC;转移地址的低8位压入堆栈区0041HE9 MOV A,R1;恢复0042H93 MOVC A,A+DPTR;查表并取出转移地址的高8位0043HC0 EO PUSH ACC;转移地址的高8位压入堆栈区0045H22 RET;从堆栈区弹出转移地址送PC ORG 0050H;程序从地址0050H存放0050H00 60 TABLE: DW BR0;转移地址表0052H00 80 DW

48、BR10054H00 A0 DW BR20056H00 C0 DW BR3 ORG 0060H;程序从地址0060H存放0060H75 90 03 BR0:MOV P1,#03H;AB相通电0063H12 01 00 LCALL DELAY10066H75 90 06 MOV P1, #06H;BC相通电0069H12 01 00 LCALL DELAY1006CH75 90 0C MOV P1, #0CH;CD相通电006FH12 01 00 LCALL DELAY10072H75 90 09 MOV P1, #09H;DA相通电0075H12 01 00 LCALL DELAY10078H

49、80 B6 SJMP START;重复循环 ORG 0080H;程序从地址0080H存放0080H75 90 03 BR1:MOV P1,#03H;AB相通电0083H12 01 00 LCALL DELAY10086H75 90 09 MOV P1, #09H;DA相通电0089H12 01 00 LCALL DELAY1008CH75 90 0C MOV P1, #0CH;CD相通电008FH12 01 00 LCALL DELAY10092H75 90 06 MOV P1, #06H;BC相通电0095H12 01 00 LCALL DELAY10098H80 96 SJMP START;重复循环 ORG 00A0H;程序从地址00A0H存放00A0H75 90 03 BR2:MOV P1,#03H;AB相通电00A3H12 01 50 LCALL DELAY200A6H75 90 06 MOV P1, #06H;BC相通电00A9H12

温馨提示

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

评论

0/150

提交评论