ImageVerifierCode 换一换
格式:DOCX , 页数:77 ,大小:452.29KB ,
资源ID:5539633      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5539633.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验总汇.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机实验总汇.docx

1、单片机实验总汇星研集成环境软件简介STAR ES598PCIS实验仪提供详尽的C、汇编例子程序、使用说明,可以进行单片机、微机原理、32位微机接口课程的开放式实验教学,通过扩展模块,连接了各种类型的接口芯片,并可以做各种实时控制实验。下面通过对循环点亮发光二极管程序的设计,来说明如何使用星研集成环境软件。本实例是仿真INTEL的8031单片机,来循环点亮P1口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤:首先运行星研集成软件。启动画面如图:1、设置缺省项目执行 主菜单 辅助 缺省项目,出现一个对话框: (使用仿真器) (使用仿真模块)使用仿真器:这时您可以根据自己

2、的需要和实际情况来选择仿真头、公司、CPU、晶振。本实例选择仿真头为PODPH51(DIP),公司为INTEL,CPU为80(C)31,晶振12MHz。如果选择89C51等带有EPROM或FLASH的CPU,请点击“地址总线”命令。使用仿真模块:选择MCS51。点击进入下一步:“选择语言”您可以根据自己的需要以及程序的类型作相应的选择,本实例选择Keil的A51、C51、Intel的PL/M51(请确定在选择语言之前已经安装好相应的编译软件)。然后再点击进入下一步:“编译、连接控制项” 如果您使用C51编写C文件,“Code Rom Size”选择“Large:64K program”,“Me

3、mory Model”选择“Large:variables in XDATA”,如果您希望了解C文件行与汇编代码的对应关系、函数中参数是如何传递的,请选择“CODE”,编译以后生成的列表文件(扩展名为.LST)中就会包含汇编代码。如果您使用汇编语言,选择MOD51,Keil 自动使用缺省的8051特殊功能寄存器定义;如果不选择MOD51,在您的程序前边,加上:$include(reg52.inc)上一行必须顶格输入,reg52.inc是一个寄存器文件,您可以根据您选择的CPU,选择对应的寄存器文件(在Keil C51的ASM目录中)如果您使用RTX-51 Real-Time OS,请在Keil

4、 L51的Operating中选择RTX-51 Tiny Real-Time OS。然后再点击进入下一步:“存贮器出借方式” 使用仿真器:存贮器出借方式分为程序空间出借方式、外部数据空间出借方式。STAR系列仿真器内有128K仿真RAM,其中64K可以出借给您作为程序存贮器,存放机器码;64K可出借给您作为数据存贮器,存放外部数据。通常,您借用仿真RAM作为程序存贮器,便于调试程序;外部数据空间在您的应用系统上,便于对您系统上的I/O、数据RAM操作;如果您的线路板还未制成,您也可借用仿真RAM。具体操作是:选择“程序”或者“外部数据”然后点击“借用”即可,若不想借用可先选中,然后点击“删除选

5、中范围”即可。使用仿真模块:借用64K仿真RAM作为程序存贮器,64K CPU片外数据空间在实验仪上。本实例采用默认的选项。点击“完成”。 2、建立源文件下面我们建立源文件,执行 主菜单 文件 新建,(或者点击图标)打开窗口如下:首先选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:*.asm文件,使用A51来对它编译。本实例文件名为xunhuan.asm。窗口如下:按“确定”即可。然后即出现文件编辑窗口:输入源程序,本实例的源程序如下:ORG0000HLJMPSTARTORG0100HSTART:

6、MOVSP,#60HMOVA,#0FFHCLRCSTART1:RLCAMOVP1,A ACALLDelaySJMPSTART1Delay:MOVR5,#2;延时Delay1:MOVR6,#0Delay2:MOVR7,#0DJNZR7,$DJNZR6,Delay2DJNZR5,X3RET输入源程序,如下图:这样一个源文件就建立好了。3.编译、连接文件首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用 主菜单 项目 编译、连接 或主菜单 项目 重新编译、连接 ”。(2)点击图标或来“

7、编译、连接”或“重新编译连接”。“编译连接”与“重新编译、连接”区别:“重新编译、连接”不管源文件是否修改、编译软件是否变化、编译控制项有无修改,对源文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下:若有错误则出现如下信息框:有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。这时用户可以作相应的修改,直到编译、连接文件通过。4调试在进入调试状态以前,请正确设置通信口:执行 主菜单 辅助 通信 ,对话框如下:仿真器、

8、实验仪配套的通信线可以与微机USB口相连,即为USB通信线,请选择USB。仿真器配套的通信线可以与微机并口相连,即为并口通信线,如果并口地址是378H,请选择并口1;并口地址是278H,请选择并口2;并口地址是3BCH,请选择并口3。仿真器配套的通信线可以与微机串口相连,即为串口通信线。对于最下面一行的校验,通常您不必选中它,可以提高传送DOB/HEX文件时的速度。在进入调试状态以前,你还必须确定仿真器、实验仪与微机的正确连接,如果使用仿真器,仿真头正确地连接在仿真器上。电源接通,开关打开。在软件中选择对应的仿真器、实验仪型号,具体设置如下:执行 主菜单 辅助 仿真器、实验仪 ,对话框如下:根

9、据你所使用的机型作相应选择。如果编译、连接正确后,可以开始调试程序。进入调试状态方法有:a) 执行 主菜单 运行 进入调试状态b) 点击工具条的c) 执行 主菜单 运行 装载DOB、HEX、BIN文件进入后的窗口如下:在整个图片中我们可以看到相对应的窗口信息。在“工作区窗”的“CommonRegister”中我们可以了解通用寄存器的信息。中间的窗口为源程序窗口,用户可在此设置断点,设置光标的运行处,编辑程序等。寄存器窗我们可以看到一些常用的寄存器的数值。存贮窗1、存贮窗2显示相应的内部数据空间、外部数据空间的数据,还有变量窗,自动收集变量显示其中。反汇编窗显示对程序反汇编的信息代码、机器码。在

10、信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。这种船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;将鼠标移到窗口的边上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。在调试过程中,可以根据您的需要,在主菜单 查看中打开:寄存器窗、存贮器窗1、2、3、观察窗、变量窗、反汇编窗。您也可以通过主菜单 辅助 设置 格式,设置每一种窗口使用的字体、大小、颜色。移动窗口到您喜欢的位置、大小。首先在“种类”中选择一个窗口,然后选择“字体”、“

11、大小”,在“颜色”中选择某一类,在“前景”、“背景”中选择您喜欢的颜色。对于高级语言,在您的程序前有一段库文件提供的初试化代码,(当前可执行标志)不会出现在您的文件行上,如果您使用C语言,可将光标移到main函数上,按F4功能键,让CPU全速运行到main行上后停下;如果您使用PL/M语言,按F7功能键,让CPU“单步进入”,运行到您的任何一个可执行后停下。您可以使用以下命令调试您的程序: 设置或清除断点(功能键为F2)在当前光标行上设置或清除一个断点 单步进入(功能键F7)单步执行当前行或当前指令,可进入函数或子程序。SUPER ICE16、SUPER ICE51“单步进入”时,不响应中断。

12、 连续单步进入(功能键Ctrl + F7)连续执行“单步进入”,用鼠标点击或按任意键后,停止运行。SUPER ICE16、SUPER ICE51“单步进入”时,不响应中断。 单步(功能键 F8)单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。如果当前行中含有函数、子程序或发生中断,CPU将执行完整个函数、子程序或中断,停止于当前行或当前指令的下一有代码的行上。SUPER ICE16、SUPER ICE51“单步”时,不响应中断。 连续单步(功能键 Ctrl + F8)连续执行“单步”,用鼠标点击或按任意键后,停止运行。SUPER ICE16、SUPER ICE51“单步”时,不响应

13、中断。 运行到光标行(功能键 F4)从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击,停止运行。 全速断点(功能键 F9)从当前地址开始全速运行用户程序,碰到断点或用鼠标点击,停止运行。 全速运行(功能键Ctrl + F10)从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU从头开始执行用户程序,即对于MCS51类CPU是从0开始执行;对于MCS96、MCS196类CPU是从2080H开始执行。用鼠标点击,停止运行。 停止运行 终止微机与仿真器之间通信(功能键 ESC)。注意:欲终止微机与仿真器之间通信,功能键ESC是一个很方便的键,它的效果比点击相应的图标的效果要好

14、。建议用户多用ESC键。在系统运行“连续单步”或者“连续单步进入”时ESC键被禁止,这时用户可以按键盘的其他任意键停止其运行。5调试的方法及技巧一般来说,用户的程序或多或少的会有一些逻辑错误,我们的仿真器、实验仪和星研集成软件可以帮助用户很快的定位,很快的查出相应的错误。一般刚刚写好的程序,在进入调试状态后,执行“单步”或者“单步进入”,我们推荐您能记住这些操作的相对应的功能键,这样您就在调试程序的过程中很方便。在调试状态的窗口中我们可以看到很多的窗口,用户只要熟练地应用这些窗口来观察、分析数据就会很快的调试好程序,达到事半功倍的效果。比如在刚才的调试程序中我们多次执行“单步(F8)”命令,在

15、工作区窗口的CommonRegister视中查看通用的寄存器:我们可以观察到在本程序中所使用的一些寄存器的变化,比如累加器A、P1口的数值的变化。我们可以看到P1口中的数值变化为FEH(1111 1110B)FDH(1111 1101B) FBH(1111 1011B)F7H(1111 0111B)EFH(1110 1111B) DFH(1101 1111B)BFH(1011 1111B)7FH(0111 1111B)FEH(1111 1110B)很好的实现了P1口循环点亮发光二极管的功能。对于其他的一些寄存器的数值的观察我们也可以用来分析自己的程序。把光标移动到DELAY子程序(具体操作是:

16、用鼠标点击DELAY行,然后再点击图标):这时执行“连续单步(Ctrl+F7)”命令,在工作区窗口的CommonRegister视中我们可以寄存器R5,R6,R7的数据的连续的变化。用户可对此做专门的分析。使用本软件也可以很好的查出逻辑错误。比如:如果我们输入程序为:ORG0000HLJMPSTARTSTART:MOVR4,#0FEHLOOP:MOVP1,R4MOVA,R4RRAMOVR4,ALCALLDELAYLJMP START DELAY:MOVR0,#02H;延迟子程序X3:MOVR1,#0FFHX2:MOVR2,#0FFHX1:DJNZR2,X1DJNZR1,X2DJNZR0,X3R

17、ETEND我们在调试时,观察工作区窗口的CommonRegister视,就会看到尽管有A,R4的数值在变化,但是P1的数值始终没有变化。这样我们在调试时就会发现问题 LJMP START应改为LJMP LOOP。我们也可以在软件中查看变量,查看变量有多种方法,a)鼠标移到文件窗、反汇编窗口中的变量、寄存器、内部RAM、外部RAM上,半秒钟后,在它们的旁边,会显示相应的值。b)在变量窗中,“全局”显示所有的全局变量;“模块”显示所有模块级变量;“局部”显示所有当前函数中的变量;“自动”自动收集当前可执行及前二行中的所有变量、寄存器、内部RAM、外部RAM。所以说星研集成软件为用户提供了许多实用和

18、方便的观察、调试、分析的功能,其他的一些功能我们会在后续的实例中作更详细的介绍。用户也可以依此类推,发掘出更多更好的为自己调试程序方便的功能。软件实验实验一 数据传送(RAMXRAM)一、实验目的熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。熟悉MCS51汇编指令,能自己编写简单的程序,掌握数据传输的方法。二、实验内容1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。2、编写程序,实现内外部数据段的传送、校验。三、程序框图四、实验步骤 在内部RAM 30H 3FH中输入数据;使用单步、断点方式调试程序,检测外部数据RAM的1000H 100FH中的

19、内容。熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。五、程序清单;将内部RAM Address1 开始的16个字节送到外部RAM从Address2开始的单元里,再作比较。Address1DATA30HAddress2XDATA1000HORG0000HLJMPSTARORG0100HSTAR:MOVSP,#60HMOVR0,#Address1MOVDPTR,#Address2MOVR7,#10HSTAR1:MOVA,R0;传送MOVXDPTR,AINCR0INCDPTRDJNZR7,STAR1MOVR0,#Address1MOVDPTR,#Address2MOVR7,#10H

20、STAR2:MOVB,R0;比较MOVXA,DPTRCJNEA,B,STAR3INCR0INCDPTRDJNZR7,STAR2SJMP$;传送正确STAR3:SJMP$;传送错误END如果读者使用星研集成环境软件,请考虑以下问题:1、运行程序前,打开变量窗、二个存贮器窗(一个选择片内数据;一个选择片外数据,起始地址选择1000H),每个存贮器窗有四个标签,有何好处?;2、使用单步进入命令,运行到第十四行后,运行过程中变量窗有何变化?将鼠标停留在A、SP、R0、DPTR上一秒后,出现什么?,它与变量窗使用场合的区别?3、将光标移到第十四行上,使用运行到光标处命令,观察运行结果,体会它与单步进入命

21、令的不同处。4、在二十行上,设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区别?5、使用全速运行命令,稍后,点击工具条上停止运行命令按钮,当前执行箭头停在哪一行?运行结果是否正确?它与全速断点运行命令有何区别? 6、观察寄存器,有哪几种方法? 1)在工作区窗的通用寄存器标签视中; 2)变量窗 3)鼠标停留在寄存器上 4)观察窗 5)寄存器窗 7、查看CPU内部数据RAM、CPU片外数据RAM: 1)存贮器窗 2)变量窗 3)鼠标停留在CPU内部数据RAM、CPU片外数据RAM的地址、R0、DPTR上六、思考题 编写一个程序,将外部数据RAM中的数据传送到内部数据

22、RAM中。 实验二 双字节BCD码(十进制数)加法一、实验目的熟悉51汇编指令,学会使用星研集成环境软件,能自己编写简单的程序,熟悉BCD码,了解如何调用系统提供的子程序。二、实验内容从键盘上输入4位被加数、加数,实现双字节BCD码(四位数)的加法,结果显示在数码管上;熟悉使用断点、单步进入、单步、运行到光标处、修改PC指针、全速运行等各种调试手段;熟悉查看特殊功能寄存器、内部数据RAM、外部数据空间的各种方法。三、实验框图四、实验步骤 1、连线说明:D3区 :CLKB2区:2MD3区 :CSA3区:CS5D3区 :A0A3区:A02、在F4区的键盘上输入4位被加数、加数3、结果显示在F4区的

23、数码管上五、程序清单EXTRNCODE(Display8, GetBCDKey)BufferDATA30H;8字节显示缓冲区F1BIT0D1H;PSW.1ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HCLRF1;先清除显示,再接收键输入START1:MOVR0,#bufferMOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(被加数)SETBF1;接收到第一个键,才清除显示MOVR0,#buffer+4MOVA,#4;按键次数LCALLGetBCDKey;得到双字节十进制数(加数)MOVA,buffer+1ADDA,buffer+5DA

24、AMOVbuffer+5,AMOVA,bufferADDCA,buffer+4DAAMOVbuffer+4,ACLRARLCADisplay:PUSHACC;显示结果MOVR0,#bufferMOVA,buffer+5;低位ACALLB1toB2;压缩BCD码转换成非压缩BCD码MOVA,buffer+4;高位ACALLB1toB2POPACC;进位ACALLB1toB2MOVR0,#10H;最高二位消隐INCR0MOVR0,#10HMOVR0,#buffer+5MOVR7,#5ACALLBlackDisplay;将高位0消隐MOVR0,#bufferLCALLDisplay8SJMPSTAR

25、T1;将一个字节压缩BCD码转换成二个字节非压缩BCD码B1toB2:PUSHACCANLA,#0FHMOVR0,AINCR0POPACCANLA,#0F0HSWAPAMOVR0,AINCR0RETBlackDisplay:MOVA,R0;将高位0消隐JNZExitMOVA,#10HMOVR0,ADECR0DJNZR7,BlackDisplayExit:RETEND 实验三 冒泡排序一、实验目的熟悉使用MCS51指令,掌握汇编语言的设计和调试方法,了解如何使用高效方法对数据排序。二、实验内容 编写并调试一个排序程序,要求使用冒泡法将一组数据从小到大重新排列。三、程序框图四、实验步骤 使用断点方

26、式调试程序,检查内部RAM 30H3FH中数据是否按从小到大的顺序排列。五、程序清单 bSortBITF0ORG0000HLJMPSTARORG0100HSTAR:MOVSP,#60H;堆栈MOVR0,#30H;存放待排序数据的首地址MOVR7,#16;数据个数MOVDPTR,#TAB_1STAR1:CLRAMOVCA,A+DPTRMOVR0,A;将数据移入内部RAM中INCR0INCDPTRDJNZR7,STAR1MOVR7,#16-1;存放比较次数STAR2:PUSH07HMOVR0,#30H;存放启始地址CLRbSortMOVR1,00HINCR1MOVA,R0STAR3:MOVB,AM

27、OVA,R1CJNEA,B,$+3JNC STAR5XCHA,R0MOVR1,ASETBbSortSTAR5:INCR0INCR1DJNZR7,STAR3POP07HJNBbSort,ExitDECR7SJMPSTAR2Exit: SJMP$TAB_1:DB 0H,5H,6H,3H,8H,92H,04H,57H,46H,01H,0FFH,0A0H,45H,99H,55H,66HEND 六、思考题 你还知道哪些排序方法?另外编写一个排序子程序。(数据结构方面的教材上有十几种排序方法)。实验四 电子钟(定时器、中断综合实验)一、实验目的熟悉MCS51类CPU的定时器、中断系统编程方法,了解定时器的应用、实时程序的设计和调

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2