欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    汇编语言与接口技术实验指导书.doc

    • 资源ID:51824368       资源大小:1.77MB        全文页数:93页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    汇编语言与接口技术实验指导书.doc

    山东建筑大学计算机学院汇编语言与接口技术实验指导书计算机科学与技术教研室2014.3目录第 1 章 概 述11.1Keil软件的安装11.2Keil C51软件的使用31.3创建工程31.4程序文件的编译、连接与调试6第 2 章 STC Monitor51仿真器使用指南82.1安装Keil版本的仿真驱动82.2在Keil中创建项目92.3项目设置,选择STC仿真驱动102.4创建仿真芯片112.5开始仿真12第 3 章 必修实验133.1实验一 应用系统开发过程及常用指令实验153.2实验二 I/O实验193.3实验三 中断系统应用实验203.4实验四 定时器系统应用实验223.5实验五 串行通信实验233.6实验六 显示接口实验243.7实验七 键盘接口实验253.8实验八 A/D、D/A转换器接口实验26附录1 实验板原理图27附录2 单片机软件编码规范321 排版332 注释383 标识符命名464 可读性495 变量、结构516 函数、过程587 可测性688 程序效率739 质量保证7810 代码编辑、编译、审查8511 代码测试、维护8712 宏0第 1 章 概 述单片机进入我国已 20 多年了,随着科学技术的发展,计算机技术的普及,单片机已经成为工科院校的一门技术基础课。1.1 Keil软件的安装1、 将带有Keil安装软件的光盘放入光驱,或者从Keil官方网站上下载安装软件,双击setup.exe,进入安装,如Error! Reference source not found.所示;图 1.12、 单击“Next”按钮;图 1.23、 选中复选框,单击“Next”按钮;图 1.34、 单击“Browse”按钮,选择安装路径,默认路径为:C:Keil ;图 1.45、 输入用户信息,单击“Next”;图 1.56、 安装完成。1.2 Keil C51软件的使用Keil C51集成开发环境是以工程的方法来管理文件的,而不是单一文件的模式。所有的文件包括源程序(包括C程序、汇编程序)、头文件、甚至说明性的技术文档都可以放在工程项目文件里统一管理。在使用Keil C51前,您应该习惯这种工程管理方式,对于刚刚使用Keil C51的用户来说,一般按照以下步骤来创建一个自己的Keil C51应用程序。1.创建一个工程项目文件;2.为工程选择目标器件;3.为工程项目设置软硬件调试环境;4.创建源程序文件并输入程序代码;5.保存创建的源程序项目文件;6.把源程序文件添加到项目中;1.3 创建工程下面以创建一个新的工程文件hello.uvproj为例,详细介绍如何建立一个Keil C51的应用程序。图 1.61 点击桌面Keil C51快捷图标即可进入如Error! Reference source not found.所示的集成开发环境,各种调试工具、命令菜单都集成在此开发环境中。图 1.7其中菜单栏为您提高了各种操作菜单,比如编辑器操作、工程维护、开发工具选项设置、程序调试、窗体选择及操作、在线帮助。工具栏按钮可以快速执行uVision4命令。或许与您打开的Keil C51界面不一样,但您别着急,这是因为启动uVision4后,uVision4总是打开用户前一次正确处理的工程。2. 点击菜单的Project选项,在弹出的下拉菜单中选择New Project命令,建立一个新的uVision4工程,这时可以看到如Error! Reference source not found.所示的项目文件保存对话框。在这里需要完成下列事情: 图 1.8a. 为您的工程取一个名称,工程名应便于记忆且文件名不宜过长;b. 选择工程存放的路径,建议为每个工程单独建立一个目录,并且工程中需要的所有文件都放在这个目录下;c. 进入工程目录输入工程名hello后,点击保存返回。3. 在工程建立完毕后,uVision4会立即弹出如下图所示的器件选择窗口,器件选择的目的是告诉uVision4最终使用芯片的型号,因为不同芯片型号的51芯片内部的资源是不一样的,uVision4可以根据选择进行SFR予以定义,在软硬件仿真易于操作的外设浮动窗口等。图 1.9从Error! Reference source not found.可以看出,uVision4支持所有的CPU器件的型号根据生产厂家形成器件组,用户可以根据需要选择相应的器件组并选择相应的器件型号,本产品的单片机型号为Atmel的AT89S52(可以选择为SST组的SST89E516RD),另外,如果用户在选择完目标器件后想重新更改目标器件,可以点击菜单Project选项,在弹出的下拉菜单中选择Select Device for TargetTargetI'命令,也将出现如Error! Reference source not found.所示的对话窗口后点击device重新加以选择。由于不同厂家的许多型号性能相同或相近,因此如果用户的目标器件型号在uVision4中找不到,用户可以选择其他公司的相近产品。图 1.104. 到现在用户已经建立了一个空白的工程项目文件,并为工程选择好了目标器件,但是这个工程里没有任何程序文件。程序文件的添加必须人工进行,如果在程序文件在添加前还没有创立,用户还必须创建它。点击菜单的File选项,在下拉菜单中选择New命令,这时文件窗口会出现新文件窗口Text1,如果多次执行New命令则会出现Text2、Text3.等多个新文件窗口。5. 现在hello.uvproj 项目中有了一个名字为Text1新文件框架,在这个源程序编译框内输入自己的代码。在uVision4中,文件的编辑方法同其他的文本编辑器是一样的,用户可以执行输入、删除、选择、拷贝、粘贴等基本文字处理命令。uVision4不完全支持汉字的输入和编辑,因此如果用户需要编辑汉字最好使用外部的文本编辑来编辑(如或VC+)。uVision4中有文件变化感知功能,提示您外部编辑其改变了该文件,是否需要把uVision4中的该文件刷新,选择 “是”命令按钮,然后您就可以看到uVision4中文件的刷新。编辑完毕后保存到磁盘中。6. 输入完毕后点击菜单的File选项,在弹出的下拉菜单中选择“保存”命令存盘源程序文件,这时会弹出如下图所示的存盘源程序画面,在文件名栏内输入源程序的文件名,在此示范中把Text1保存成hello.c。主要Keil C51支持汇编和C语言,且uVision4要根据后缀判断文件的类型,从而自动进行处理,因此存盘时应注意输入的文件名应带扩展名.ASM或.C。源程序文件hello.c是一个c语言程序,如果用户想建立的是一个汇编程序,则输入文件名称hello.asm。保存完毕后请注意观察,保存前后源程序有哪些不同,关键字变成蓝颜色了吗?这也是用户检查程序命令行的好方法,您体会到了吗?图 1.117. 需要特别提出的是,这个程序文件仅仅是建立了而以,hello.c文件到现在为止,跟hello.uvproj工程还没建立任何关系,此时用户应该把hello.c源程序添加到hello.uvproj工程中,构成一个完整的工程项目,点击菜单View->Project Window将会弹出项目观察窗口,在项目观察窗口内,选中Source Group1后点击鼠标右键,在弹出的快捷菜单中选择ADD Files to Group “Source Group1”(向工程中添加源程序文件)命令,此时会弹出如Error! Reference source not found.所示的添加源程序文件窗口,选择刚才编辑的源程序文件hello.c,单击Add命令即可把源程序添加到项目中。图 1.121.4 程序文件的编译、连接与调试1. 编译连接环境设置uVision4调试器可以测试用C51编译器和A51宏汇编器开发的应用程序,uVision4调试器有两种工作模式,用户可以通过点击菜单Project选项,在弹出的下拉菜单中选择Option For TargetTatget1命令为目标设置工具选项,这时会出现如Error! Reference source not found.所示的调试环境设置界面,选择Debug选项会出现如Error! Reference source not found.所示的工作模式选择窗口。图 1.13从Error! Reference source not found.可以看出,uVision4的2种工作模式分别是:Use Simulator(软件模拟)和Use(硬件仿真)。其中Use Simulator选项是将uVision4调试器设置成软件模拟仿真模式,在此模式下,不需要实际的目标硬件就可以模拟80C51微控制器的很多功能,在准备硬件之前就可以测试您的应用程序,这样是很有用的。Use选项是高级GDI驱动,运用此功能可以把Keil C51嵌入到自己的系统中,从而实现在目标硬件上调试程序。选择软件模拟仿真,即在Error! Reference source not found.中Debug栏内选中Use Simulator选项,点击“确定”命令按钮加以确认,此时uVision4调试器即配置软件仿真。2. 程序的编译和连接经过以上的工作,到此就可以编译程序了。点击菜单Project选项,在弹出的下拉菜单中选择Build Target 命令对源程序文件进行编译,此时会在“Output Windows”信息输出窗口输出一些相关的信息。 由提示信息可知:第一行Build TargetTarget1表示此时正对工程1进行编译操作,第二行Compiling hello.c表示此时正在编译hello.c源程序,第三行lingking.表示此时正在连接工程项目文件,第五行Creating hex file fromhello说明已生成目标文件hello.hex,而最后一行说明hello.uvproj项目在编译过程中不存在错误和警告,编译连接成功。若在编译过程中出现错误,系统会给出错误所在的行和该错误提示信息,用户应根据这些提示信息,更正程序中的错误,重新编译直至完全正确为止,至此我们所需的目标代码hello.hex文件已经生成,用户可以使用相关的软件把该程序代码下载到试验仪的单片机中,复位系统后单片机将全速运行用户的程序。第 2 章 STC Monitor51仿真器使用指南2.1安装Keil版本的仿真驱动如上图,首先选择“Keil关联设置”页面,点击“添加MCU型号到Keil中”,在出现的如下面的目录选择窗口中,定位到Keil的安装目录(一般可能为“C:Keil”),“确定”若出现下面的提示框,表示安装成功2.2在Keil中创建项目若第一步的驱动安装成功,则在Keil中新建项目时选择芯片型号时,便会有“STC MCU Database”的选择项然后从列表中选择响应的MCU型号(目前STC支持仿真的型号只有STC15F2K60S2),所以我们在此选择“STC15F2K60S2”的型号,点击“确定”完成选择添加源代码文件到项目中,如下图:保存项目,若编译无误,则可以进行下面的项目设置了2.3项目设置,选择STC仿真驱动如上图,首先进入到项目的设置页面,选择“Debug”设置页,第2步选择右侧的硬件仿真“Use ”,第3步,在仿真驱动下拉列表中选择“STC Monitor-51 Driver”项,然后点击“Settings”按钮,进入下面的设置画面,对串口的端口号和波特率进行设置,波特率一般选择或者57600。到此设置便完成了。2.4创建仿真芯片准备一颗IAP15F2K61S2或者IAP15L2K61S2的芯片,并通过下载板连接到电脑的串口,然后如上图,选择正确的芯片型号,然后进入到“Keil关联设置”页面,钩选“单CPU方案”,再选择“独立方案(不占用串口和定时器)”项,选择完成后,点击左下角的“下载/编程”按钮,当程序下载完成后仿真器便制作完成了。2.5开始仿真将制作完成的仿真芯片通过串口与电脑相连接。将前面我们所创建的项目编译至没有错误后,按“Ctrl+F5”开始调试。若硬件连接无误的话,将会进入到类似于下面的调试界面断点设置的个数目前最大允许20个(理论上可设置任意个,但是断点设置得过多会影响调试的速度)。第 3 章 必修实验按照汇编语言与接口技术课程教学要求,本课程设置16学时实验课程,让让学生能够掌握51系列单片机最基础的软硬件实验,通过这些实验的练习,学生能够掌握51系列的基本软件编写,为基于51系统应用系统的开发打下基础。必做实验是学习汇编语言与接口技术课程的最低要求,学生想要学好51系列单片机的开发,仅仅依靠必修实验是远远不够的,需要学生不断在编写程序,调试,由易而难逐步推进,不断学习才能掌握好。必修实验安排及学时要求如表3.1所示。表3.1必修实验及学时要求序号实验名称计划学时主要设备仪器名称每组学生数1应用系统开发过程及常用指令实验2计算机、51单片机开发板2-3人2I/O实验2计算机、51单片机开发板2-3人3中断系统应用实验2计算机、51单片机开发板2-3人4定时器系统应用实验2计算机、51单片机开发板2-3人5串行通信实验2计算机、51单片机开发板2-3人6显示接口实验2计算机、51单片机开发板2-3人7键盘接口实验2计算机、51单片机开发板2-3人8A/D、D/A转换器接口实验2计算机、51单片机开发板2-3人一、必修实验要求1. 学生在每次上课前做好实验预习,明确每次实验的内容,做好相关知识储备;2. 上课前用汇编语言或C语言写出完整的源程序,并进行软件仿真调试;3. 实验课上在实验开发板上进行程序调试;4. 用规定的实验报告撰写实验报告并提交;二、实验报告要求1. 实验报告应该完整,主要包括实验名称、实验目的、实验原理图、程序流程图、实验源程序、实验结果、实验的收获或实验心得、注意事项等。2. 同一小组的同学实验源程序允许相同,但其余部分不能雷同,否则视为抄袭;小组之间的源程序应不同,否则视为抄袭。三、实验课程考核1. 实验课程成绩占总成绩的15%;取每次实验的平均成绩作为评判依据。2. 实验课程考勤为旷课的,在未主动补做的情况下,该次实验成绩评定为零分。3. 不提交实验报告者,该次实验成绩为零分。3.1实验一 应用系统开发过程及常用指令实验一、实验目的1. 熟悉Keil uVision4单片机开发平台的使用。2. 掌握汇编语言程序的调试。3. 掌握C51源程序的调试。4. 了解单片机软件编程规范。二、实验原理本实验的实验原理图如图1.1、图1.2、图1.3所示,实现键S20、S21、S22、S23按下时,对应于LED4、LED5、LED6、LED7亮,松开时,LED灯熄灭。要进行单片机应用系统软件开发,首先必须要学会阅读原理图,只有读懂原理图,了然于胸才能在编写软件时事半功倍。从图1.1可以看出,实验板中采用的是STCIAP15F2K61S2单片机,这是宏晶公司推出的一款带仿真功能的51系列兼容单片机。在本系统中,P0口作为地址/数据复用线,P1口作为普通I/O口,P2口作为高位地址线或普通I/O口使用,P3口主要使用第二功能。图1.1单片机外部总线连接图根据电路原理图绘制规则,名称相同的连接点,无论画在何处,它们是连接在一起的。图1.2LED灯接口电路图1.3键盘接口电路根据上述电路图,使用汇编语言或C语言编写程序,实现:当键S20按下时,LED0亮,键抬起时,LED0熄灭;当键S21按下时,LED1亮,键抬起时,LED1熄灭;当键S22按下时,LED2亮,键抬起时,LED2熄灭;当键S23按下时,LED3亮,键抬起时,LED3熄灭;三、实验内容1)按照实验内容,首先需要建立本实验的工程,具体参见第1.3节步骤;注意在选择2)根据第1.4节和第2.22.4节步骤,进行程序调试;3)调试完成后,将程序生成HEX文件,使用stc-isp-15xx-v6.66软件,将程序下载到单片机中,运行,看是否满足要求。4)本实验汇编语言参考程序如下:ORG 0000HLJMP CODEMAINORG 20HCODEMAIN:CLR P2.6CLR P2.7MAIN:MOV P0,#0FFH;关闭灯BACK:MOV P1,#0FFH;P1高四位作为输入口,应该先写1;通过先读入P1口内容,保存入A寄存器,并屏蔽掉低四位记录按键状态,;延时一段时间再次读入P1口,并和第一次读入的数据进行逻辑与运算,;若确实有键按下,则相应口为低电平,否则应为高电平,从而确认按键;是否按下,用于按键消除抖动MOV A,P1CON:ANL A,#0F0H;读P1口,记录按键状态ACALL DELAY1;延时ORL A,P1;确认是否有键按下ANL A,#0F0H;屏蔽低四位SWAP AORL A,#0F0H;关闭led4-led7MOV P0,A;送出led驱动信号SETB P2.5;led信号锁存ACALL DELAY2LJMP MAIN;*;延时程序,通过双循环实现延时10msDELAY1: MOV R3,#40 ;延时10msCON2:MOV R4,#125CON1: DJNZ R4,CON1DJNZ R3,CON2RET;*;延时程序,通过双循环实现延时20msDELAY2: MOV R5,#80 ;延时20msCON3:MOV R6,#125CON4: DJNZ R6,CON4DJNZ R5,CON3RET;*END5)本实验的C51语言参考程序为:#include "STC/STC15F2K60S2.H"#define uchar unsigned charsbit LEDLE=P25;/*led驱动锁存器锁存控制端*/sbit DIGLE=P26;/*数码管位选驱动锁存器锁存控制端*/sbit SEGLE=P27;/*数码管段选驱动锁存器锁存控制端*/sbit KEY4=P14;/*s20键*/sbit KEY5=P15;/*s21键*/sbit KEY6=P16;/*s22键*/sbit KEY7=P17;/*s23键*/unsigned char keystate;/*键的中间状态*/unsigned char ledstate;/*led驱动状态*/*延时程序,用于按键消抖及显示延时*/void delay(uchar ms)uchar j;while(ms-)for(j=0;j<125;j+);/*主程序*/void main()/*将数码管的段选和位选关闭防止干扰*/P0=0xFF;LEDLE=1;LEDLE=0;P0=0x00;DIGLE=1;DIGLE=0;SEGLE=1;SEGLE=0;while(1)P0=0xFF;/*关闭led灯*/P1=0xFF;/*P1口做键盘输入口,需要先写入1*/keystate=P1;/保存P1口状态delay(10);ledstate=keystate|P1; /确认按键是否按下ledstate=ledstate>>4;/按键情况移送低4位P0=ledstate|0xf0;/输出按键情况LEDLE=1;delay(20); 四、思考题3.2实验二 I/O实验 一、实验目的1. 掌握51单片机基本I/O接口使用2. 掌握51单片机基本I/O接口软件编写3. 熟悉基本软件编码规范二、实验原理本实验的所用的原理图如图2.1和图2.2所示。LED0控制原理已在实验3-1中分析。在图2.2中,蜂鸣器的控制信号BELL信号连接单片机的P4.5引脚,同时连接到PNP三极管的基极上,故当信号BELL为高电平时,三极管截止,BELL不发声;当信号BELL为低电平时,三极管导通,BELL发声。图2.2LED灯接口电路图2.2 蜂鸣器控制电路三、实验内容在实验中,要求设计一个应用系统,当LED0闪烁时,蜂鸣器产生声音。1)分析本实验控制原理,画出程序流程图。2)撰写本实验C51程序,并在实验板上进行调试四、思考题3.3实验三 中断系统应用实验一、实验目的1. 掌握中断的相关概念2. 掌握51单片机中断系统的构成3. 掌握51单片机中断程序设计二、实验原理图3.1 外部中断模拟键图3.2 继电器接口电路图3.3LED灯接口电路图3.4 蜂鸣器电路在图3.1中,使用键INT0和INT1模拟51单片机的外部中断,该两键接在P3口的P3.2和P3.3,根据P3口使用规则,在使用作为中断输入口前,应对P3口初始化。在图3.2中,继电器由三极管进行驱动,三极管的基极接P5.5口线,由于三极管是PNP型三极管,故当P5.5=1时,继电器不工作;当P5.5=0时,继电器工作。其他两个电路分析见前面实验。三、实验内容本实验实现如下功能:a)正常工作状态下,LED0闪烁;b)当按下键INT0键时,LED1点亮,蜂鸣器发声,继电器动作;松开INT0键后恢复到正常工作状态 实验要求:1)分析本实验控制原理,画出程序流程图。2)根据实验要求,编写系统程序,并在实验板上进行调试;四、思考题 本实验中,LED0在发生中断的情况下是点亮还是熄灭?为什么?请多次做实验验证你的观点。3.4实验四 定时器系统应用实验一、实验目的1. 掌握51单片机定时器/计数器的工作原理2. 掌握51单片机定时器/计数器的控制字3. 掌握51单片机定时器/计数器的中断二、实验原理本实验的所用的原理图如图2.1和图2.2所示。LED0控制原理已在实验3-1中分析。在图2.2中,蜂鸣器的控制信号BELL信号连接单片机的P4.5引脚,同时连接到PNP三极管的基极上,故当信号BELL为高电平时,三极管截止,BELL不发声;当信号BELL为低电平时,三极管导通,BELL发声。图2.2LED灯接口电路图2.2 蜂鸣器控制电路三、实验内容在实验中,要求设计一个应用系统,每间隔1秒钟,LED0闪烁一次,蜂鸣器产生声音一次,要求用定时器中断实现程序中的时间控制。1)分析本实验控制原理,画出程序流程图。2)根据实验要求,编写系统程序,并在实验板上进行调试;四、思考题长延时时间如何通过定时器解决?3.5实验五 串行通信实验一、实验目的1. 理解串行通信的概念2. 掌握51单片机串行接口及控制3. 掌握51单片机串行通信工作方式4. 掌握51单片机串行通信编程二、实验原理为便于串口通信调试,stc-isp-15xx-v6.66软件打开口,选择“串口助手”选项卡,可以得到图5.1所示串口调试窗口,首选选择与单片机连接的串口,再设定二者之间的波特率、校验位及奇偶校验等信息,注意一定要保证两端相同,否则会出错。在发送缓冲区输入数据,点击发送数据,即可向单片机发送数据。在接收缓冲区,可以查看单片机发送来的信息。三、实验内容PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC机。要求:单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。1)分析本实验控制原理,画出程序流程图。2)根据实验要求,编写系统程序,并在实验板上进行调试;四、思考题3.6实验六 显示接口实验一、实验目的1. 了解数码管动态显示与静态显示区别2. 掌握数码管动态显示控制原理3. 掌握数码管动态显示编程二、实验原理图6.1 LED数码管显示电路图6.1为实验板数码管显示电路,本实验板所用数码管为共阴极型,需要显示的数据通过74HC573进行锁存。图中U6是数码管位选锁存器,数据通过数据总线送至U6后,经SEGLE(P27)进行置位实现锁存;U7是数码管段选码输出,段选码通过数据总线送至U7后通过DIGLE(P26)置位进行锁存。三、实验内容使用定时器T0中断方式设计一个时钟表,用两位数码管分别显示时、分、秒。1)分析本实验控制原理,画出程序流程图。2)根据实验要求,编写系统程序,并在实验板上进行调试;四、思考题3.7实验七 键盘接口实验一、实验目的1了解51单片机键盘接口的常用形式2. 掌握51单片机矩阵式键盘接口方式3. 掌握键盘的消抖方法二、实验原理图7.1 矩阵式键盘接口图实验板矩阵键盘上的键号为S3S18,是一个4x4键盘,通过P1口的八根口线与单片机相连。三、实验内容设计一个程序,实现对实验6所设计的时钟实现初试时间的设定,具体键功能如下:1)按下S3键,表示要进行时间进行设置,时钟停止工作;2)按下S5键,表示确认上次设定的时间值;3)按下S6键,表示取消上次设定的时间值;4)按下S12键一次,向左跳转;5)按下S14键一次,向右跳转;6)按下S9键一次,选定的时间值加一;7)按下S17键,选定的时间值减一。实验要求:1)分析本实验控制原理,画出程序流程图。2)根据实验要求,编写系统程序,并在实验板上进行调试;四、思考题3.8实验八 A/D、D/A转换器接口实验一、实验目的1. 掌握AD和DA转换器与51单片机的接口技术2. 掌握AD和DA转换器相关的程序设计二、实验原理图8.1 AD转换器TLC0832接口电路图8.2 DA转换器TLC5615接口电路本实验板的AD输入可以是压敏电阻、光敏电阻、外部电压及板载电位器分压输入,AD转换器采用串行输出8位的逐次逼近型的TLC08532。DA输出采用TLC5615。三、实验内容1. 用短路跳线帽将J2的电位器与AD转换器连接,用AD转换器将电压值取样,并在LED显示器显示。1)分析本实验控制原理,画出程序流程图。2)根据实验要求,编写系统程序,并在实验板上进行调试;2. 使用DA输出一个50HZ三角波。1)分析本实验控制原理,画出程序流程图。2)根据实验要求,编写系统程序,并在实验板上进行调试;附录1 实验板原理图附录2 单片机软件编码规范1 排版62 注释113 标识符命名184 可读性205 变量、结构226 函数、过程287 可测性368 程序效率409 质量保证4410 代码编辑、编译、审查5011 代码测试、维护5212 宏531 排版¹ 1-1:程序块要采用缩进风格编写,缩进的空格数为4个。说明:对于由开发工具自动生成的代码可以有不一致。¹ 1-2:相对独立的程序块之间、变量说明之后必须加空行。示例:如下例子不符合规范。if (!valid_ni(ni) . / program coderepssn_ind = ssn_dataindex.repssn_index;repssn_ni = ssn_dataindex.ni;应如下书写if (!valid_ni(ni) . / program coderepssn_ind = ssn_dataindex.repssn_index;repssn_ni = ssn_dataindex.ni;¹ 1-3:较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。示例:perm_count_msg.head.len = NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof( _UL );act_task_tableframe_id * STAT_TASK_CHECK_NUMBER + index.occupied = stat_poiindex.occupied;act_task_tabletaskno.duration_true_or_false = SYS_get_sccp_statistic_state( stat_item );report_or_not_flag = (taskno < MAX_ACT_TASK_NUMBER) && (n7stat_stat_item_valid (stat_item) && (act_task_tabletaskno.result_data != 0);¹ 1-4:循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操作符处划分新行,操作符放在新行之首。示例:if (taskno < max_act_task_number) && (n7stat_stat_item_valid (stat_item) . / program codefor (i = 0, j = 0; (i < BufferKeywordword_index.word_length) && (j < NewKeyword.word_length); i+, j+) . / program codefor (i = 0, j = 0; (i < first_word_length) && (j < second_word_length); i+, j+) . / program code ¹ 1-5:若函数或过程中的参数较长,则要进行适当的划分。示例:n7stat_str_compare(BYTE *) & stat_object, (BYTE *) & (act_task_tabletaskno.stat_object), sizeof (_STAT_OBJECT);n7stat_flash_act_duration( stat_item, frame_id *STAT_TASK_CHECK_NUMBER + index, stat_object );¹ 1-6:不允许把多个短语句写在一行中,即一行只写一条语句。示例:如下例子不符合规范。rect.length = 0; rect.width = 0;应如下书写rect.length = 0;rect.width = 0;¹ 1-7:if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号。 示例:如下例子不符合规范。if (pUserCR = NULL) return;应如下书写:if (pUserCR = NULL) return;¹ 1-8:对齐只使用空格键,不使用TAB键。说明:以免用不同的编辑器阅读程序时,因TAB键所设置的空格数目不同而造成程序布局不整齐,不要使用BC作为编辑器合版本,因为BC会自动将8个空格变为一个TAB键,因此使用BC合入的版本大多会将缩进变乱。¹ 1-9:函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求。¹ 1-10:程序块的分界符(如C/C+语言的大括号和)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。示例:如下例子不符合规范。for (.) . / program codeif (.) . / program code void example_fun( void ) . / program code 应如下书写。for (.) . / program codeif (.) . / program codevoid example_fun( void ) . / p

    注意事项

    本文(汇编语言与接口技术实验指导书.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开