单片机实验-星研集成软件环境

上传人:lisu****2020 文档编号:103413922 上传时间:2022-06-08 格式:DOC 页数:37 大小:877.01KB
收藏 版权申诉 举报 下载
单片机实验-星研集成软件环境_第1页
第1页 / 共37页
单片机实验-星研集成软件环境_第2页
第2页 / 共37页
单片机实验-星研集成软件环境_第3页
第3页 / 共37页
资源描述:

《单片机实验-星研集成软件环境》由会员分享,可在线阅读,更多相关《单片机实验-星研集成软件环境(37页珍藏版)》请在装配图网上搜索。

1、单片机实验-星研集成软件环境实验一 熟悉星研集成软件环境11 软件启动运行Windows,进入桌面窗口。鼠标单击“开始”按钮,在“程序”栏中打开“星研集成环境软件”菜单栏,在其中选择“星研(SUPER、STAR系列仿真器)”,开始启动星研集成环境软件。启动画面如图: 星研集成环境软件推荐您使用项目为单位来管理您的程序。如果您做一个简单的实验,或只希望看一个中间结果,您可以不建立项目文件,系统需要的各种设置,来源于“缺省项目”。本节不使用项目文件。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”,“Memory Model”选择

3、“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 L51的Operatin

4、g中选择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。窗口如下:按“确定”即可。然后即出现文件编辑窗口:实验步骤 1、连线说明: A3区:JP51G6区:JP652、编写程序或运行参考程序。 3、实验结果:通过G6区的LED指

6、示灯(8个指示灯轮流点亮),观察实验的输出结果是否正确。输入源程序,本实例的源程序如下:ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HMOVA,#0FFHCLRCSTART1:RLCAMOVP1,AACALLDelaySJMPSTART1Delay:MOVR5,#2;延时Delay1:MOVR6,#0Delay2:MOVR7,#0DJNZR7,$DJNZR6,Delay2DJNZR5,X3RETEND输入源程序,如下图:这样一个源文件就建立好了。3.编译、连接文件首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码

7、文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用 主菜单 项目 编译、连接 或主菜单 项目 重新编译、连接 ”。(2)点击图标或来“编译、连接”或“重新编译连接”。“编译连接”与“重新编译、连接”区别:“重新编译、连接”不管源文件是否修改、编译软件是否变化、编译控制项有无修改,对源文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下:若有错误则出现如下信息框:有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位

8、于出错行上。这时用户可以作相应的修改,直到编译、连接文件通过。4调试在进入调试状态以前,你还必须确定仿真器、实验仪与微机的正确连接,如果使用仿真器,仿真头正确地连接在仿真器上。电源接通,开关打开。在软件中选择对应的仿真器、实验仪型号,具体设置如下:执行 主菜单 辅助 仿真器、实验仪 ,对话框如下:根据你所使用的机型作相应选择。如果编译、连接正确后,可以开始调试程序。进入调试状态方法有:a) 执行 主菜单 运行 进入调试状态b) 点击工具条的c) 执行 主菜单 运行 装载DOB、HEX、BIN文件进入后的窗口如下:在整个图片中我们可以看到相对应的窗口信息。在“工作区窗”的“CommonRegis

9、ter”中我们可以了解通用寄存器的信息。中间的窗口为源程序窗口,用户可在此设置断点,设置光标的运行处,编辑程序等。寄存器窗我们可以看到一些常用的寄存器的数值。存贮窗1、存贮窗2显示相应的内部数据空间、外部数据空间的数据,还有变量窗,自动收集变量显示其中。反汇编窗显示对程序反汇编的信息代码、机器码。在信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。这种船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;将鼠标移到窗口的边上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移

10、动鼠标,变化一个或一组窗口的大小。在调试过程中,可以根据您的需要,在主菜单 查看中打开:寄存器窗、存贮器窗1、2、3、观察窗、变量窗、反汇编窗。您也可以通过主菜单 辅助 设置 格式,设置每一种窗口使用的字体、大小、颜色。移动窗口到您喜欢的位置、大小。首先在“种类”中选择一个窗口,然后选择“字体”、“大小”,在“颜色”中选择某一类,在“前景”、“背景”中选择您喜欢的颜色。对于高级语言,在您的程序前有一段库文件提供的初试化代码,(当前可执行标志)不会出现在您的文件行上,如果您使用C语言,可将光标移到main函数上,按F4功能键,让CPU全速运行到main行上后停下;如果您使用PL/M语言,按F7功

11、能键,让CPU“单步进入”,运行到您的任何一个可执行后停下。您可以使用以下命令调试您的程序: 设置或清除断点(功能键为F2)在当前光标行上设置或清除一个断点 单步进入(功能键F7)单步执行当前行或当前指令,可进入函数或子程序。SUPER ICE16、SUPER ICE51“单步进入”时,不响应中断。 连续单步进入(功能键Ctrl + F7)连续执行“单步进入”,用鼠标点击或按任意键后,停止运行。SUPER ICE16、SUPER ICE51“单步进入”时,不响应中断。 单步(功能键 F8)单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。如果当前行中含有函数、子程序或发生中断,CPU

12、将执行完整个函数、子程序或中断,停止于当前行或当前指令的下一有代码的行上。SUPER ICE16、SUPER ICE51“单步”时,不响应中断。 连续单步(功能键 Ctrl + F8)连续执行“单步”,用鼠标点击或按任意键后,停止运行。SUPER ICE16、SUPER ICE51“单步”时,不响应中断。 运行到光标行(功能键 F4)从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击,停止运行。 全速断点(功能键 F9)从当前地址开始全速运行用户程序,碰到断点或用鼠标点击,停止运行。 全速运行(功能键Ctrl + F10)从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CP

13、U从头开始执行用户程序,即对于MCS51类CPU是从0开始执行;对于MCS96、MCS196类CPU是从2080H开始执行。用鼠标点击,停止运行。 停止运行终止微机与仿真器之间通信(功能键 ESC)。注意:欲终止微机与仿真器之间通信,功能键ESC是一个很方便的键,它的效果比点击相应的图标的效果要好。建议用户多用ESC键。在系统运行“连续单步”或者“连续单步进入”时ESC键被禁止,这时用户可以按键盘的其他任意键停止其运行。5调试的方法及技巧一般来说,用户的程序或多或少的会有一些逻辑错误,我们的仿真器、实验仪和星研集成软件可以帮助用户很快的定位,很快的查出相应的错误。一般刚刚写好的程序,在进入调试

14、状态后,执行“单步”或者“单步进入”,我们推荐您能记住这些操作的相对应的功能键,这样您就在调试程序的过程中很方便。在调试状态的窗口中我们可以看到很多的窗口,用户只要熟练地应用这些窗口来观察、分析数据就会很快的调试好程序,达到事半功倍的效果。比如在刚才的调试程序中我们多次执行“单步(F8)”命令,在工作区窗口的CommonRegister视中查看通用的寄存器:我们可以观察到在本程序中所使用的一些寄存器的变化,比如累加器A、P1口的数值的变化。我们可以看到P1口中的数值变化为FEH(1111 1110B)FDH(1111 1101B) FBH(1111 1011B)F7H(1111 0111B)E

15、FH(1110 1111B) DFH(1101 1111B)BFH(1011 1111B)7FH(0111 1111B)FEH(1111 1110B)很好的实现了P1口循环点亮发光二极管的功能。对于其他的一些寄存器的数值的观察我们也可以用来分析自己的程序。把光标移动到DELAY子程序(具体操作是:用鼠标点击DELAY行,然后再点击图标):这时执行“连续单步(Ctrl+F7)”命令,在工作区窗口的CommonRegister视中我们可以寄存器R5,R6,R7的数据的连续的变化。用户可对此做专门的分析。使用本软件也可以很好的查出逻辑错误。比如:如果我们输入程序为:ORG0000HLJMPSTART

16、START:MOVR4,#0FEHLOOP:MOVP1,R4MOVA,R4RRAMOVR4,ALCALLDELAYLJMP START DELAY:MOVR0,#02H;延迟子程序X3:MOVR1,#0FFHX2:MOVR2,#0FFHX1:DJNZR2,X1DJNZR1,X2DJNZR0,X3RETEND我们在调试时,观察工作区窗口的CommonRegister视,就会看到尽管有A,R4的数值在变化,但是P1的数值始终没有变化。这样我们在调试时就会发现问题 LJMP START应改为LJMP LOOP。我们也可以在软件中查看变量,查看变量有多种方法,a)鼠标移到文件窗、反汇编窗口中的变量、寄

17、存器、内部RAM、外部RAM上,半秒钟后,在它们的旁边,会显示相应的值。b)在变量窗中,“全局”显示所有的全局变量;“模块”显示所有模块级变量;“局部”显示所有当前函数中的变量;“自动”自动收集当前可执行及前二行中的所有变量、寄存器、内部RAM、外部RAM。所以说星研集成软件为用户提供了许多实用和方便的观察、调试、分析的功能,其他的一些功能我们会在后续的实例中作更详细的介绍。用户也可以依此类推,发掘出更多更好的为自己调试程序方便的功能。21 对CPU内部RAM、片外数据RAM读写的小程序您在调试程序时,对内部RAM、外部RAM以及程序空间的数据都十分关心,总是想能很方便的观察、修改和分析。星研

18、集成软件充分体现了为用户着想的理念。在调试窗口中设置了3个存贮器窗口,每个窗口又设置了4个分页项,总计多达12个页面供用户查看选用。下面通过一个小的程序段,对使用存贮器窗口观察片内数据和片外数据以及程序空间的功能作一个介绍。本程序是实现将CPU内部RAM的30H到3FH单元中数据传送给从外部数据RAM的1000H到100FH单元中;再将它们作比较,如果不相同,说明程序有问题或实验仪B4区上的61C256有问题。本例子使用项目文件来管理,旨在通过建立一个具体的项目来介绍星研集成软件的使用方法。如果您的系统有几个文件组成,就必须使用项目文件。1、建立项目文件执行 主菜单 文件 新建,(或者点击图标

19、)打开窗口如下:由于星研集成软件是以项目为单位来管理程序的。所以我们在建立文件之前先要建立项目文件。点击“创建项目文件”分页项,如图示:我们可以输入项目文件名,以及选择目录,星研集成软件在您输入一个项目文件名时,就建立了以项目文件名为名的一个文件夹,以后您在编译、调试过程中生成的所有文件都在此文件夹里。这体现了星研集成软件的人性化设计。键入项目文件名“move”,如下:然后按确定,进入“设置项目文件”部分。2、设置项目文件设置项目文件与设置缺省项目操作完全一样,请参阅上一节。3、建立源文件建立好项目文件的窗口如下图所示:工作区窗的项目视中,包含“源文件”、“头文件”、“库文件”、“其它文件”,

20、“其它文件”中通常包含对该项目用途作一些说明的文件。“库文件”通常包含编译软件自带的OBJ文件、LIB等库文件。下面我们建立源文件,执行 主菜单 文件 新建,(或者点击图标)打开窗口如下:选定刚才建立的项目文件的文件夹,输入文件名,注意:一定要输入文件名后缀。系统会根据不同的后缀名给文件归类。比如:*.asm文件系统会自动归类为源文件。选中“添加到项目文件中”,系统自动将该模块文件加入到项目中。本实例文件名为move.asm。按“确定”即可。然后即出现文件编辑窗口:实验步骤在内部RAM 30H 3FH中输入数据;使用单步、断点方式调试程序,检测外部数据RAM的1000H 100FH中的内容。熟

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

22、MOVB,R0;比较MOVXA,DPTRCJNEA,B,STAR3INCR0INCDPTRDJNZR7,STAR2SJMP$;传送正确STAR3:SJMP$;传送错误END建立好文件的窗口如下:附: 注意:若在新建文件时不输入文件后缀,则其文件不会保存在源文件那一项,而是保存在其他文件的文件夹中。一般我们建立对项目说明的文件即可用此方法。如图建立一个本程序的说明文档“shuoming”然后编辑文档,如下图:然后保存,就可以了。4、编译、连接文件在建立好项目文件、源文件后,就可以编译、连接文件了。对工作区窗项目视的“源文件”中所有模块文件编译,如果没有错误,再与“库文件”中所有库文件连接,生成代

23、码文件(DOB、HEX文件)。编译、连接文件的方法有如下三种:(1)在工作区窗的项目视中按鼠标右键,系统弹出快捷菜单,选择“编译、连接”或“重新编译连接”。(2)使用 主菜单 项目 编译、连接 或主菜单 项目 重新编译、连接 ”。(3)点击图标或来“编译、连接”或“重新编译连接”。“编译连接”与“重新编译、连接”区别:“重新编译、连接”不管项目中有无添加、删除模块文件、编译软件是否变化、编译控制项有无修改、模块文件有无修改,对“源文件”中所有模块文件编译,如果没有错误,再与“库文件”中所有库文件连接,生成代码文件(DOB、HEX文件)。编译、连接过程中产生的信息显示在信息窗的“建立”视中。详细

24、请参阅上一节。5、调试项目文件然后进入调试界面,调整存贮器窗口的大小,也可以打开多个存贮器窗口,具体操作是:主菜单查看然后根据你的需要打开不同的窗口。调整后的调试界面为:由于我们本次操作主要是观察存贮器窗口,所以我们拉大了这两个存贮器窗口的大小。每个窗口设置了4个分页项:,我们可以在不同的分页项设置不同的观察数据空间以及地址范围。在中可以选择程序空间、片内数据、片外数据,根据需要可以做不同的观察空间的选择。在中可以直接输入地址,然后按回车,就可以直接转到我们输入的地址的窗口上面观察数据。由于我们在此程序中写入数据的RAM空间分别为片内数据RAM、外部数据RAM 1000H,故我们建立的分页项如

25、下:存贮0分页项:存贮1分页项:存贮2分页项:我们这样设置界面的目的就是当用户要观察不同地址段的数据时,只要切换一下分页项就行了。若用户想要同时观察不同地址的数据,我们的软件也可以。如图:软件中总共存在3个存贮器窗。可以同时观察三个不同的地址。存贮器窗口支持数据的直接修改功能。本软件的所有窗口中的数据都支持直接修改功能。用户可以根据自己的需要在窗口中直接修改数据。比如:执行程序前,将片内的RAM 30H3FH中的数据改为11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,在相对应的地址中直接输入数据即可。如图:选择执行“连续单步”我们可以看到存贮器窗

26、口中的相对应的RAM的数据的变化。其中右边为相应数据的ASCII码。切换分页项我们可以观察到其它地址的数据。当然我们打开两个存贮器窗口可以同时观察相对应地址的数据:这就极大的方便了用户的调试。实验二 散转一、实验目的熟悉使用MCS51指令,掌握汇编语言的设计和调试方法;理解并能运用散转指令。二、实验内容编写程序,根据接收到的键值,作不同的处理。三、程序框图四、实验步骤1、连线说明:E5区 :CLKB2区:2ME5区 :CSA3区:CS5E5区 :A0A3区:A0E5区 :A、B、C、DG5区:A、B、C、D2、在G5区的键盘上输入1位数3、使用各种手段调试程序3、结果显示在G5区的数码管上五、

27、程序清单;调用GetKey返回键值,根据键值执行相应的程序;0号键显示3;1号键显示2,.,3号键显示0EXTRNCODE(GetKeyB, Display8)bufferDATA30H;内部RAM30H-37H为缓冲区ORG0000HLJMPSTARORG0100HSTAR:MOVSP,#60HSTAR1:MOVA,#1;按一下键,就返回MOVR0,#buffer;键值存放在内部RAM 30HLCALLGetKeyBCJNEA,#4,$+3JCSTAR2CLRA;大于3,作0处理STAR2:RLAMOVDPTR,#Tab_1JMPA+DPTRTab_1:SJMPKey0SJMPKey1SJM

28、PKey2SJMPKey3Key0:MOVA,#3SJMPKeyKey1:MOVA,#2SJMPKeyKey2:MOVA,#1SJMPKeyKey3:MOVA,#0SJMPKeyKey:MOVR7,#8MOVR0,#bufferKey_1:MOVR0,AINCR0DJNZR7,Key_1MOVR0,#bufferLCALLDisplay8Delay:MOVR5,#4Delay1:MOVR6,#0Delay2:MOVR7,#0DJNZR7,$DJNZR6,Delay2DJNZR5,Delay1LJMPSTAR1END六、思考题 程序中为什么要把输入的值作乘以2处理?实验三冒泡排序一、实验目的熟悉

29、使用MCS51指令,掌握汇编语言的设计和调试方法,了解如何使用高效方法对数据排序。二、实验内容编写并调试一个排序程序,要求使用冒泡法将一组数据从小到大重新排列。三、程序框图四、实验步骤使用断点方式调试程序,检查内部RAM 30H3FH中数据是否按从小到大的顺序排列。五、程序清单bSortBITF0ORG0000HLJMPSTARORG0100HSTAR:MOVSP,#60H;堆栈MOVR0,#30H;存放待排序数据的首地址MOVR7,#16;数据个数MOVDPTR,#TAB_1STAR1:CLRAMOVCA,A+DPTRMOVR0,A;将数据移入内部RAM中INCR0INCDPTRDJNZR7

30、,STAR1MOVR7,#16-1;存放比较次数STAR2:PUSH07HMOVR0,#30H;存放启始地址CLRbSortMOVR1,00HINCR1MOVA,R0STAR3:MOVB,AMOVA,R1CJNEA,B,$+3JNCSTAR5XCHA,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六、思考题 你还知道哪些排

31、序方法?另外编写一个排序子程序。(数据结构方面的教材上有十几种排序方法)。实验四 电子钟(定时器、中断综合实验)一、实验目的熟悉MCS51类CPU的定时器、中断系统编程方法,了解定时器的应用、实时程序的设计和调试技巧。二、实验内容编写一个时钟程序,使用定时器产生一个50ms的定时中断,对定时中断计数,将时、分、秒显示在数码管上。三、程序框图四、实验步骤1、连线说明:E5区 :CLKB2区:2ME5区 :CSA3区:CS5E5区 :A0A3区:A0E5区 :A、B、C、DG5区:A、B、C、D2、时间显示在数码管上五、程序清单ms50DATA31H;存放多少个50mssecDATA32H;秒mi

32、nDATA33H;分hourDATA34H;时bufferDATA35H;显示缓冲区EXTRNCODE(Display8)ORG0000HLJMPSTARORG000BH;定时器T0中断处理入口地址LJMPINT_Timer0ORG0100HSTAR:MOVSP,#60H;堆栈MOVms50,A;清零ms50MOVhour,#12;设定初值: 12:59:50MOVmin,#59MOVsec,#50MOVTH0,#60;定时中断计数器初值MOVTL0,#176;定时50msMOVTMOD,#1;定时器0:方式一MOVIE,#82H;允许定时器0中断SETBTR0;开定时器T0STAR1:LCA

33、LLDisplay;调用显示JNBF0,$CLRF0SJMPSTAR1;需要重新显示时间;中断服务程序INT_Timer0:MOVTL0,#176-5MOVTH0,#60PUSH01HMOVR1,#ms50INCR1;50ms单元加1CJNER1,#20,ExitIntMOVR1,#0;恢复初值INCR1INCR1;秒加1CJNER1,#60,ExitInt1MOVR1,#0INCR1INCR1;分加1CJNER1,#60,ExitInt1MOVR1,#0INCR1INCR1;时加1CJNER1,#24,ExitInt1MOVR1,#0ExitInt1:SETBF0ExitInt:POP01H

34、RETIHexToBCD:MOVB,#10DIVABMOVR0,BINCR0MOVR0,AINCR0RETDisplay:MOVR0,#bufferMOVA,secACALLHexToBCDMOVR0,#10H;第三位不显示INCR0MOVA,minACALLHexToBCDMOVR0,#10H;第六位不显示INCR0MOVA,hourACALLHexToBCDMOVR0,#bufferLCALLDisplay8RETEND六、思考题1、电子钟走时精度与哪些有关系?中断程序中给TL0赋值为什么与初始化程序中不一样?2、使用定时器方式二,重新编写程序。实验五串转并实验一、实验目的与要求1、了解7

35、4HC164芯片的性能,熟悉串并转换原理,掌握使用串并转换芯片扩展I/O口的实现方法。2、认真预习实验内容,做好准备工作,完成实验报告。二、实验设备 STAR系列实验仪一套、PC机一台三、实验内容1、照接线图编写程序,循环点亮G6区的8个指示灯,瞬间只有一个灯亮。2、观察实验结果,验证串并转换数据的正确性。74HC164真值表输入输出CLKABQAQBQHLXXQA0QB0QH0HHHQAnQGnLXLQAnQGnXLLQAnQGn四、实验原理图五、实验步骤 1、连线说明: D5区:74HC164的A、CLKA3区:P1.1、P1.2D5区:BC1区:VCCD5区:JP49G6区:JP652、

36、编写程序或运行参考程序,实现串并数据转换; 3、实验结果:通过G6区的LED指示灯(8个指示灯轮流点亮),观察实验的输出结果是否正确。六、演示程序DAINBITP1.1;输入CLKBITP1.2;时钟ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60H;堆栈CLRCLK;时钟初始为低电平MOVA,#0FEH;输入初值SETBCLOOP:MOVR7,#8;一次串行输出要移位八次LOOP1:RRCA;实现动态循环点亮八个二极管MOVDAIN,CSETBCLKNOPCLRCLKDJNZR7,LOOP1ACALLDLTIME;延时SJMPLOOPDLTIME:PUSH05

37、HPUSH06HPUSH07HMOVR5,#02HDLTIME1:MOVR6,#0FFHDLTIME2:MOVR7,#0FFHDJNZR7,$ DJNZR6,DLTIME2DJNZR5,DLTIME1POP07HPOP06HPOP05HRETEND七、实验扩展及思考1、本实验使用串行移位来实现,读者也可以用单片机的串行口模式0实现,此时需要更改哪些硬件连线和软件程序?2、实验中只用到一片74HC164,在需要输出更多口线的系统中,就需要多片74HC164串联使用,如何级连它们?使用单片机的串行口模式0的例子程序ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60H;

38、堆栈MOVSCON,#00000000B;串行方式0MOVA,#07FH;输入初值LOOP:RLALOOP1:MOVSBUF,AJNBTI,$CLRTIACALLDLTIME;延时SJMPLOOPDLTIME:PUSH05HPUSH06HPUSH07HMOVR5,#02HDLTIME1:MOVR6,#0FFHDLTIME2:MOVR7,#0FFHDJNZR7,$DJNZR6,DLTIME2DJNZR5,DLTIME1POP07HPOP06HPOP05HRETEND实验六并转串实验一、实验目的与要求1、了解74HC165芯片的性能,熟悉并串转换原理,掌握使用并串转换芯片扩展I/O口的方法。2、认

39、真预习,做好实验前的准备工作,填写实验报告。二、实验设备STAR系列实验仪一套、PC机一台三、实验内容1、熟悉74HC165的工作原理2、照接线图编写程序,将G6区的8位开关作为74HC165的并行数据输入,读出的结果通过A3区的P1口显示在G6区的8个LED指示灯上。3、观察实验结果,验证并串转换数据的正确性。输入功能SH/LDCLKINHLXXParallel loadHHXNo changeHXHNo changeHLShiftHLShift四、实验原理图五、实验步骤1、连线说明: D4区:74HC165的QH、SH/LD、CLK、SERA3区:P3.0、P3.1、P3.2、P3.3D4

40、区:JP36G6区:JP80A3区:JP51G6区:JP652、编写程序或运行参考程序,验证结果。3、实验结果:G6区的开关状态反应在G6区的LED指示灯上六、演示程序QHBITP3.0SHBITP3.1CLKBITP3.2SERBITP3.3ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60H;堆栈CLRSERLOOP:CLRSHSETBSH;上升沿锁存输入MOVR0,#08HCLRCLK;准备读数LOOP1:MOVC,QH;读入一位RLCASETBCLKCLRCLKDJNZR0,LOOP1CPLA;取反输入值MOVP1,A;点亮二极管,验证输入是否正确SJMP

41、LOOPEND七、实验扩展及思考1、利用D4区的74HC165、G6区的八个按键,编写一个键盘动态扫描程序。2、如果需要扩展一个16键的小键盘,如何将二片的74HC165级连?3、本实验使用串行移位来实现,读者也可以用单片机的串行口0模式实现,此时需要更改哪些硬件连线和软件程序?使用单片机的串行口0模式的例子程序QHBITRXDCLKBITTXDSHBITP3.2SERBITP3.3ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60H;堆栈MOVSCON,#00H;串行方式0,允许输入CLRSERLOOP:CLRSHSETBSH;锁存输入LOOP1:SETBREN

42、JNBRI,$;等待输入CLRRENCLRRI;清零接收中断标志MOVA,SBUF;获得输入值CPLAMOVP1,A;点亮二极管,验证输入是否正确SJMPLOOP;暂停END实验七 并行AD实验(数字电压表实验)一、实验目的与要求1、了解几种类型AD转换的原理;掌握使用ADC0809进行模数转换2、认真预习实验内容,做好准备工作,完成实验报告。二、实验设备 STAR系列实验仪一套、PC机一台、万用表一个。三、实验内容1、ADC0809(G4区)(1) 模数转换器,8位精度,8路转换通道,并行输出(2) 转换时间100us,转换电压范围05V2、编写程序:制作一个电压表,测量05V,结果显示于数

43、码管上。四、实验原理图五、实验步骤1、连线说明:G4区:CS、ADDA、ADDB、ADDCA3区:CS1、A0、A1、A2(选择通道)G4区:EOC(转换结束标志)A3区:P1.2G4区:CLKB2区:500KG4区:IN0D2区:05VE5区:CLKB2区:2ME5区:CSA3区:CS5E5区:A0A3区:A0E5区:A、B、C、DG5区:A、B、C、D2、调节05V电位器(D2区)输出电压,显示在LED上,第4、5位显示16进制数据,第0、1、2位,显示十进制数据。用万用表验证AD转换的结果。六、演示程序EXTRNCODE(Display8)Addr_0809XDATA0F000Hbuff

44、erDATA30H;8个字节的显示缓冲区EOC_0809BITP1.2ORG0LJMPSTARTORG0100HSTART:MOVSP,#60H;设堆栈START1:ACALLAD0809ACALLDisplay_DataMOVR0,#Buffer;显示缓冲区首地址LCALLDisPlay8;调用显示子程序LCALLTIME;延时SJMPSTART1Display_Data:MOVB,AANLA,#0FHMOVbuffer+4,AMOVA,BANLA,#0F0HSWAPAMOVbuffer+5,AMOVA,BMOVB,#51;255/5 (16进制的1 = 1/51V)DIVABORLA,#8

45、0H;加上小数点MOVbuffer+2,AACALLDisplay_Data_1MOVbuffer+1,A;第一位小数ACALLDisplay_Data_1MOVbuffer,A;第二位小数MOVbuffer+3,#10HMOVbuffer+6,#10HMOVbuffer+7,#10H;消隐RETDisplay_Data_1:MOVA,#10MULABADDA,BJNCDisplay_Data_11INCAINCBDisplay_Data_11:MOVR7,AMOVA,BRLARLAADDA,BXCHA,R7MOVB,#51DIVABADDA,R7RETAD0809:MOVA,#0MOVDPT

46、R,#Addr_0809MOVXDPTR,A;启动AD转换JNBEOC_0809,$;是否转换完成MOVXA,DPTR;读转换结果RETTIME:PUSH06HPUSH07HMOVR6,#200TIME1S1:MOVR7,#200DJNZR7,$DJNZR6,TIME1S1POP07HPOP06HRETEND七、实验扩展及思考如何实现多路模拟量的数据采集、显示?实验八 串行DA实验一、实验目的与要求熟悉串行D/A TLC5615转换的工作原理;学会使用TLC5615输出模拟电压信号。二、实验设备STAR系列实验仪一套、PC机一台、万用表一个。三、实验内容1、编写程序:使用TLC5615,输出几

47、组有代表性的数据;2、使用万用表测量TLC5615输出的电压信号,与期望值是否一致。(电压正确输出范围是(05v)。四、实验原理图五、 实验步骤1、连线说明:G3区:CS、SCLK、DINA3区:P1.2、P1.1、P1.0G3区:OUT接万用表2、运行编写好的程序,使用万用表测量输出的模拟电压信号,分析D/A转换结果是否与期望值一致。(至少输出三种模拟电压信号:最小、中间、最大)。 六、演示程序DINBITP1.0;数据SCLKBITP1.1;时钟CSBITP1.2;片选ORG0AJMPSTARTORG100HSTART:MOVR6,#0FFHMOVR7,#0FFHACALLD_AMOVR6,#80HMOVR7,#00HACALLD_AMOVR6,#0BFHMOVR7,#0C0HACALLD_ASJMP$;R6(高字节)R7(低字节),有效数据在R6和R7的高二位,共移位12次,最后二次的数据无效D_A:PUSHPSWSETBF0CLRSCLKCLRCSMOVA,R6MOVR6,#8DA_1:RLCAMOVDIN,CSETBSCLKCLRSCLKDJNZR6,DA_1JNBF0,DA_2CLRF0MOVR6,#4MOVA,R7SJMPDA_1DA_2:SETBCSPOPPSWRETEND

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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