《2023年单片机实验指导书.pdf》由会员分享,可在线阅读,更多相关《2023年单片机实验指导书.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、单 片 机 原 理 与 应 用 实验指导书 注意:1、做实验前必须预习 2、带教材和实验指导书 哈尔滨理工大学 自动化学院自动化系 实验仪的使用 本实例是仿真 INTEL 的 8031 单片机,来循环点亮 P1 口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤:1、运行桌面“星研集成软件”,画面如下:2、建立源文件 执行 主菜单?文件?新建,(或者点击图标)打开窗口。选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:.ASM 文件,使 用A51来 对 它 编 译。本 实
2、例 文 件 名 为xunhuan.asm。窗 口 如 下:按“确定”即可。然后即出现文件编辑窗口:输入源程序,参照实验一源程序。这样一个源文件就建立好了。3.编译、连接文件 首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX 文件)。编译、连接文件的方法有如下二种:(1)使用 主菜单?项目?编译、连接 或主菜单?项目?重新编译、连接”。(2)点击图标或来“编译、连接”或“重新编译连接”。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下:若有错误则出现如下信息框:有错误、警告信息,用鼠标左键双击错误、警
3、告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。这时用户可以作相应的修改,直到编译、连接文件通过。4调试 编译、连接正确后,可以开始调试程序。进入调试状态方法有:a)执行 主菜单?运行?进入调试状态 b)点击工具条的进入后的窗口如下:在整个图片中我们可以看到相对应的窗 口 信 息。在“工 作 区 窗”的“CommonRegister”中我们可以了解通用寄存器的信息。中间的窗口为源程序窗口,用户可在此设置断点,设置光标的运行处,编辑程序等。寄存器窗我们可以看到一些常用的寄存器的数值。存贮窗1、存贮窗 2 显示相应的内部数据空间、外部数据空间的数据,还有变量
4、窗,自动收集变量显示其中。反汇编窗显示对程序反汇编的信息代码、机器码。在信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。这种船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;将鼠标移到窗口的边上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。在调试过程中,可以根据您的需要,在主菜单?查看中打开:寄存器窗、存贮器窗 1、2、3、观察窗、变量窗、反汇编窗。您也可以通过主菜单?辅助?设置?格式,设置每一种窗口使用的字体、大小、颜色。移动窗
5、口到您喜欢的位置、大小。首先在“种类”中选择一个窗口,然后选择“字体”、“大小”,在“颜色”中选择某一类,在“前景”、“背景”中选择您喜欢的颜色。操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译对于高级语言,在您的程序前有一段库文件提供的初试化代码,(当前可执行标志)不会出现在您的文件行上,如果您使用 C 语言,可将光标移到 main 函数
6、上,按 F4 功能键,让 CPU 全速运行到 main 行上后停下;如果您使用 PL/M 语言,按 F7 功能键,让 CPU“单步进入”,运行到您的任何一个可执行后停下。您可以使用以下命令调试您的程序:设置或清除断点(功能键为 F2)在当前光标行上设置或清除一个断点 单步进入(功能键 F7)单步执行当前行或当前指令,可进入函数或子程序。SUPER ICE16、SUPER ICE51“单步进入”时,不响应中断。连续单步进入(功能键 Ctrl+F7)连续执行“单步进入”,用鼠标点击或按任意键后,停止运行。SUPER ICE16、SUPER ICE51“单步进入”时,不响应中断。单步(功能键 F8)
7、单步执行当前行或当前指令,将函数或子程序作为一条指令来执行。如果当前行中含有函数、子程序或发生中断,CPU 将执行完整个函数、子程序或中断,停止于当前行或当前指令的下一有代码的行上。SUPER ICE16、SUPER ICE51“单步”时,不响应中断。连续单步(功能键 Ctrl+F8)连续执行“单步”,用鼠标点击或按任意键后,停止运行。SUPER ICE16、SUPER ICE51“单步”时,不响应中断。运行到光标行(功能键 F4)从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击,停止运行。全速断点(功能键 F9)从当前地址开始全速运行用户程序,碰到断点或用鼠标点击,停止运行。全速
8、运行(功能键 Ctrl+F10)从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU 从头开始执行用户程序,即对于 MCS51 类 CPU 是从 0 开始执行;对于 MCS96、MCS196 类 CPU是从 2080H 开始执行。用鼠标点击,停止运行。停止运行 终止微机与仿真器之间通信(功能键 ESC)。注意:欲终止微机与仿真器之间通信,功能键 ESC 是一个很方便的键,它的效果比点击相应的图标的效果要好。建议用户多用 ESC 键。在系统运行“连续单步”或者“连续单步进入”时 ESC 键被禁止,这时用户可以按键盘的其他任意键停止其运行。5调试的方法及技巧 一般来说,用户的程序或多或
9、少的会有一些逻辑错误,我们的仿真器、实验仪和星研集成软件可以帮助用户很快的定位,很快的查出相应的错误。一般刚刚写好的程序,在进入调试状态后,执行“单步”或者“单步进入”,我们推荐您能记住这些操作的相对应的功能键,这样您就在调试程序的过程中很方便。在调试状态的窗口中我们可以看到很多的窗口,用户只要熟练地应用这些窗口来观察、分析数据就会很快的调试好程序,达到事半功倍的效果。比如在刚才的调试程序中我们多次执行“单步(F8)”命令,在工作区窗口的CommonRegister视中查看通用的寄存器:我们可以观察到在本程序中所使用的一些寄存器的变化,比如累加器 A、P1 口的数值的变化。我们可以看到 P1
10、口中的数值变化为:FEH(1111 操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译把光标移动到 DELAY 子程序(具体操作是:用鼠标点击 DELAY,然后再点击图标,即可运行到光标行):这时执行“连续单步(Ctrl+F7)”命令,在工作区窗口的 CommonRegister 视中我们可以寄存器 R5,R6,R7 的数据的连续的变化。用户
11、可对此做专门的分析。我们在调试时,观察工作区窗口的 CommonRegister 视,就会看到尽管有 A,R4 的数值在变化,但是 P1 的数值始终没有变化。这样我们在调试时就会发现问题 LJMP START 应改为 LJMP LOOP。我们也可以在软件中查看变量,查看变量有多种方法,a)鼠标移到文件窗、反汇编窗口中的变量、寄存器、内部 RAM、外部 RAM 上,半秒钟后,在它们的旁边,会显示相应的值。b)在变量窗中,“全局”显示所有的全局变量;“模块”显示所有模块级变量;“局部”显示所有当前函数中的变量;“自动”自动收集当前可执行及前二行中的所有变量、寄存器、内部 RAM、外部 RAM。-实
12、验一 跑马灯实验 一、实验目的与要求 1、熟悉星研集成环境软件或熟悉Keil C51 集成环境软件的使用方法。2、熟悉 MCS51 汇编指令,能自己编写简单的程序,控制硬件。二、实验设备 STAR 系列实验仪一套、PC 机一台 三、实验内容 1、熟悉星研集成环境软件或熟悉 Keil C51 集成环境软件的安装和使用方法。2、照接线图编写程序:使用 P1 口控制 G6 区的 8 个指示灯,循环点亮,瞬间只有一个灯亮。四、实验原理图 五、实验步骤 1、连线说明:A3区:JP51 G6 区:JP65 操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的
13、目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译2、编写程序或运行参考程序。3、实验结果:通过 G6 区的 LED 指示灯(8 个指示灯轮流点亮),观察实验的输出结果是否正确。六、演示程序 ORG 0000H LJMP START ORG 0100H START:MOV SP,#60H MOV A,#0FEH START1:MOV P1,A RL A ACALL DELAY SJMP START1 DELAY:MOV R0,#0FFH;延
14、时子程序 DELAY1:MOV R1,#0 DJNZ R1,$本句循环 DJNZ R0,DELAY1 RET END 请考虑以下问题?1、运行程序前,打开变量窗;2、使用单步进入命令,运行到第六行后,运行过程中变量窗有何变化?将鼠标停留在A、SP 上一秒后,出现什么?,它与变量窗使用场合的区别?3、第九行是调用延时子程序,如何进入延时子程序(使用单步进入命令)?如何将延时子程序一下子运行完毕(使用单步命令;也可以将光标移到下一行,使用运行到光标处命令;)?单步进入命令与单步命令有何区别?4、运行几次后,在第十行设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区别?
15、5、Delay 是一个延时子程序,改变延时常数,使用全速运行命令,显示发生了什么变化?6、观察寄存器,有哪几种方法?1)在工作区窗的通用寄存器标签视中;2)变量窗 3)鼠标停留在寄存器上 4)观察窗 5)寄存器窗 实验二 数据传送(RAM XRAM)一、实验目的 熟悉星研集成环境软件或熟悉 Keil C51 集成环境软件的使用方法。熟悉 MCS51 汇编指令,能自己编写简单的程序,掌握数据传输的方法。操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照
16、实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译二、实验内容 1、熟悉星研集成环境软件或熟悉Keil C51 集成环境软件的安装和使用方法。2、编写程序,实现内外部数据段的传送、校验。三、程序框图 四、实验步骤 在内部 RAM 30H 3FH 中输入数据;使用单步、断点方式调试程序,检测外部数据RAM 的 1000H 100FH 中的内容。熟悉查看特殊功能寄存器、内部数据 RAM、外部数据空间的各种方法。五、程序清单;将内部 RAM Address1 开始的 16 个字节送到外部 RAM 从 Address2 开始的单元里,再作比较
17、。Address1 DATA 30H Address2 XDATA 1000H ORG 0000H LJMP STAR ORG 0100H STAR:MOV SP,#60H MOV R0,#Address1 MOV DPTR,#Address2 MOV R7,#10H STAR1:MOV A,R0;传送 MOVX DPTR,A INC R0 INC DPTR DJNZ R7,STAR1 MOV R0,#Address1 MOV DPTR,#Address2 MOV R7,#10H STAR2:MOV B,R0;比较 MOVX A,DPTR CJNE A,B,STAR3 INC R0 INC D
18、PTR DJNZ R7,STAR2 SJMP$;传送正确 STAR3:SJMP$;传送错误 END 请考虑以下问题:1、运行程序前,打开变量窗、二个存贮器窗(一个选择片内数据;一个选择片外数据,起始地址选择 1000H),每个存贮器窗有四个标签,有何好处?;2、使用单步进入命令,运行到第十四行后,运行过程中变量窗有何变化?将鼠标停留在 A、SP、R0、DPTR 上一秒后,出现什么?,它与变量窗使用场合的区别?3、将光标移到第十四行上,使用运行到光标处命令,观察运行结果,体会它与单步进入命令的不同处。4、在二十行上,设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区
19、别?操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译5、使用全速运行命令,稍后,点击工具条上停止运行命令按钮,当前执行箭头停在哪一行?运行结果是否正确?它与全速断点运行命令有何区别?6、观察寄存器,有哪几种方法?1)在工作区窗的通用寄存器标签视中;2)变量窗 3)鼠标停留在寄存器上。4)观察窗 5)寄存器窗 7、查看 CPU 内部数据 RA
20、M、CPU 片外数据 RAM:1)存贮器窗 2)变量窗 3)鼠标停留在 CPU 内部数据 RAM、CPU 片外数据 RAM 的地址、R0、DPTR 上。六、思考题 改编程序,使得当数据传输正确时,点亮 1 个发光二极管。当数据传输错误时,点亮2 个发光二极管。实验三 继电器控制实验 一、实验目的与要求 掌握使用继电器控制外设的基本方法和编程。二、实验设备 STAR 系列实验仪一套、PC 机一台。三、实验内容 1、预备知识 自动化控制设备中,存在一个电子与电气电路的互连问题,一方面,电子电路需要控制电气电路的执行元件,如:电动机、电磁铁、电灯等;一方面又要为电子电路提供良好的电隔离,以保护电子电
21、路和人身安全,减少干扰源。继电器就起这个桥梁作用。2、实验过程 使用 G6 区的 K7 拨动开关,通过继电器控制直流电机转动、停止。如果 K7 损坏,可以用其他开关。四、实验原理图 五、实验步骤 1、连线说明:E3 区:Ctrl A3 区:P1.0 E3 区:COM1 C1 区:VCC E3 区:CUT1 F1 区:Ctrl A3 区:P1.7 G6 区:K7 2、运行程序,G6 区的 K7 拨动开关,控制继电器动作。P1.0 为低电平时,继电器动作。六、演示程序 ORG 0000H LJMP START ORG 0100H START:MOV SP,#60H KeyH:JB P1.7,$;P
22、1.7 为 1 时,等待。CALL Delay;P1.7 为 0,延时去抖 JB P1.7,KeyH;再次确认。为 0 则向下运行 CLR P1.0 ;继电器上电,电机转动 KeyL:JNB P1.7,$;P1.7 为 0,等待 CALL Delay;P1.7 为 1 时,延时去抖 操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译 JNB
23、P1.7,KeyL;再次确认为是否 0。否则向下运行 SETB P1.0;继电器停电,电机停转 SJMP KeyH Delay:MOV R6,#20H;延时子程序 MOV R7,#0 Delay1:DJNZ R7,$DJNZ R6,Delay1 RET END 七、思考题 改编程序,使电机每次运行时间不超过1 秒。实验四 中断、定时器系统 一、实验目的:1、掌握定时/计数器、中断初始化程序的设计。2、掌握使用定时/计数器的方式 1、方式 2 的编程方法 3、掌握中断的编程方法。二、实验硬件电路:三、实验内容:1、外部中断INT0 应用:硬件电路如上图,其中 INT0 输入部分是B2 区的 R-
24、S 触发器(硬件去抖动),B2 区的 S4 是中断申请按键。P1 口设置跑马灯,要求INT0 每申请一次中断,即开关S4 拨动一次,跑马灯循环点亮一次。连线说明:B2 区:单脉冲 A3 区:P3.2 A3 区:JP51 G6 区:JP65 参考程序如下:ORG 0 SJMP MAIN ORG 0003H ;外部中断 0 入口地址 SJMP LOOP ;跳转到中断服务程序 LOOP MAIN:SETB EA ;开放总中断 SETB EX0 ;开放外部中断 0 SETB IT0 ;开放定时器 0 中断 HERE:SJMP HERE ;在此等待 LOOP:MOV P1,#0FEH;外中断 0 中断服
25、务程序。点亮一个灯 MOV TMOD,#10H;定时器 1 设为方式 1 计时 MOV TL1,#00H ;设初值,定时器做为延时 MOV TH1,#00H MOV R2,#08H ;为点亮 8 个灯计数 SETB TR1 ;定时器启动 L:MOV C,TF1 ;溢出标志送入 C 操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译 JNC L
26、 ;TF1 不等于 1,未溢出,循环等待 CLR TF1 ;溢出,清除标志,以便下次判断 MOV A,P1 RL A ;A 内容循环左移,准备点亮下个 MOV P1,A ;DJNZ R2,L ;循环点亮 8 灯 RETI END 2、用定时器串联方式,实现每隔 1 秒钟发光二极管循环闪亮,单片机的晶振为11.0592MHZ。具体做法是:使 T0 工作于定时方式 1(产生 71mS 定时),使 T1 工作计数(计数 14 次,约为 1 秒),每次 T0 溢出后从 P3.0(RXD)口给 P3.5(T1)口发送一个负脉冲,当 T1 溢出时控制 P1 口的发光二极管闪亮。T0、T1 的溢出,采用查询
27、方式。连线说明:A3 区:P3.0 A3 区:P3.5 A3 区:JP51 G6 区:JP65 参考程序如下:ORG 0000H SJMP MAIN ORG 0030H MAIN:MOV P1,#0FEH ;点亮一个灯 MOV TMOD,#51H ;定时器 0 设为 1 方式定时器,定时器 1 设为计数 L0:MOV TL1,#0F2H ;初值 F2H 到溢出值 100H,计数值为 14.MOV TH1,#0FFH ;SETB TR1 ;启动定时器 1 L1:MOV TL0,#00H ;机器周期 TCY=12/11.0592=1.085.最大计时为 MOV TH0,#00H ;216*1.08
28、5=71106us=71.1ms SETB TR0 L2:MOV C,TF0 JNC L2 CLR TF0 CLR P3.0 NOP NOP CPL P3.0 MOV C,TF1 JNC L1 CLR TF1 MOV A,P1 RL A MOV P1,A SJMP L0 END 四、预习要求:1、阅读教科书中有关中断、定时器/计数器的内容、熟悉定时器/计数器的基本结构和工作过程。2、计算定时器/计数器时间常数。操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入
29、源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译3、写出预习报告 五、思考题:1、对于实验内容 2 用定时器串联方式的延时方法,若 T0、T1 的溢出采用中断方法,程序应如何修改。2、若改变延时时间,程序应如何修改。实验五 PWM 电压转换实验 一实验目的 1、了解 PWM 电压转换原理 2、掌握单片机控制的 PWM 电压转换 二、实验设备 STAR 系列实验仪一套、PC 机一台 三、实验内容 1、PWM 电压转换原理:(1)将一定频率的输入信号转换为直流电;(2)通过调节输入信号占空比调节输出的直流电电压,输出电压随着占
30、空比增大而减小 2、实验过程(1)输入 15kHZ 左右的方波,经 LM358 进行 PWM 电压转换,输出直流电,驱动直流电机(2)通过按键调整占空比来改变 PWM 输出电压,直流电机的转速会随之变化 四、实验原理图 五、实验步骤 1、连线说明:E2 区:IN A3 区:P1.2,方波输入 E2 区:OUT E2 区:IN1 E2区:OUT1 F1 区:CTRL,直流电机电源输入 A3 区:JP51 G6 区:JP74 2、通过 G6 区的 1、2 键调整占空比来改变 PWM 输出电压,直流电机的转速会随之变化:1 号键减少占空比;2 号键增加占空比 六、演示程序 IN BIT P1.2;P
31、WM 方波输入 PWM_LOW DATA 30H ;低电平时间 PWM_HIGH DATA 31H ;高电平时间,控制频率在15kHZ左右 periods EQU 0E0H;周期 64us ORG 0000H LJMP START ORG 000BH LJMP iTIMER0 ORG 0100H START:MOV SP,#60H 操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使
32、用主菜单项目编译连接或主菜单项目重新编译 MOV PWM_LOW,#periods MOV PWM_HIGH,#periods MOV TH0,#periods MOV TL0,#periods MOV TMOD,#02H;T0 设为定时器,方式 2 自动重装 SETB EA;开中断 SETB ET0;开定时器中断 SETB TR0;启动定时器 0 START1:ACALL ScanKey JNZ Key1 Key0:MOV A,PWM_HIGH;减少占空比 CJNE A,#0FBH,Key0_1 SJMP START1 ;大于这个值,对定时中断已反应不过来 Key0_1:INC PWM_HI
33、GH DEC PWM_LOW SJMP START1 Key1:MOV A,PWM_LOW;增加占空比 CJNE A,#0FBH,Key1_1 SJMP START1 ;大于这个值,对定时中断已反应不过来 Key1_1:INC PWM_LOW DEC PWM_HIGH SJMP START1 iTIMER0:JBC IN,iTIMER0_1;若 IN 为 1,跳转并将 IN 清零。MOV TL0,PWM_HIGH;加载高电平时间 SETB IN;置为高电平 RETI iTIMER0_1:MOV TL0,PWM_LOW;加载低电平时间 NOP RETI ScanKey:JNB P1.0,Scan
34、Key1;若 P1.0 电平为 0,1 键按下,JB P1.1,ScanKey;若 P1.1 电平为 0,2 键按下 ScanKey1:ACALL Delay20ms;消抖动 ACALL Delay20ms JNB P1.0,ScanKey2 JB P1.1,ScanKey MOV A,#1;2 键按下,A 置为 1 SJMP ScanKey3 ScanKey2:CLR A;1 键按下,A 置为 0 ScanKey3:JNB P1.0,$JNB P1.1,$操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件
35、名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译 RET Delay20ms:MOV R6,#10 Delay1:MOV R7,#100 DJNZ R7,$DJNZ R6,Delay1 RET END 七、实验扩展及思考 改变 PWM 的输入频率,使用示波器观看 LM358 的输出,由此加深对 PWM 电压转换的了解。实验六 8155 输入、输出、SRAM 实验 一、实验目的与要求 了解 8155 的内部资源与结构;了解 8155 与单片机的接口逻辑;熟悉对 8155 的初始
36、化编程、输入和输出程序的设计方法、8155 定时器/计数器的使用方法。认真预习,做好实验前的准备工作,填写实验报告 二、实验设备 STAR 系列实验仪一套、PC 机一台 三、实验内容 1、编写程序:从 8155 的 PB 口将 G6 区的 8 位开关读入,写入 8155 的内部 RAM,再读出后,写入 PA 口,显示于 LED 指示灯上。2、连接线路,验证 8155 的功能,熟悉它的使用方法。四、实验原理图 五、实验步骤 1、连线说明:B4 区:CS、IO/M A3 区:CS1、A8 B4 区:JP76(PA 口)G6 区:JP65 B4 区:JP75(PB 口)G6 区:JP80 2、测试实
37、验结果:G6 区的开关状态反应在 G6 区的 LED 指示灯上。六、演示程序 COM_8155 XDATA 0F100H;控制/状态寄存器 PA_8155 XDATA 0F101H;PA 口地址 PB_8155 XDATA 0F102H;PB 口地址 RAM_8155 XDATA 0F000H;8155 内部 RAM 00 单元地址 ORG 0000H LJMP STAR ORG 0100H STAR:MOV SP,#60H;堆栈 MOV DPTR,#COM_8155;控制口地址 MOV A,#1 ;PA 为基本输出,PB 为基本输入 MOVX DPTR,A STAR1:MOV DPTR,#P
38、B_8155;从 PB 口获得输入值(拨码盘操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译输入)MOVX A,DPTR MOV DPTR,#RAM_8155;存入 8155 内部 RAM 里 MOVX DPTR,A MOV A,#0FFH;消除输入结果 MOVX A,DPTR;重新从 8155 相同地址取数 MOV DPTR,#PA_81
39、55 MOVX DPTR,A ;输出送显示(八个发光二极管)SJMP STAR1 END 七、实验扩展及思考 1、例子程序中只展示了 8155 的输入输出和读写数据 RAM 的功能,8155 还有定时器/计数器的功能,有兴趣读者可以自己编写程序,通过 8155 来实现定时,当作定时器用时,如何接线?2、若是要对 PC 口位操作,应该如何编写程序?3、如何使用 8155 实现键盘扫描和 LED 显示?实验七 并行 AD 实验(数字电压表实验)一、实验目的与要求 1、了解几种类型 AD 转换的原理;掌握使用 ADC0809 进行模数转换 2、认真预习实验内容,做好准备工作,完成实验报告。二、实验设
40、备 STAR 系列实验仪一套、PC 机一台、万用表一个。三、实验内容 1、ADC0809(G4 区)(1)模数转换器,8 位精度,8 路转换通道,并行输出(2)转换时间 100us,转换电压范围 05V 2、编写程序:制作一个电压表,测量 05V,结果显示于数码管上。四、实验原理图123BAIN31IN42IN53IN64IN75START6EOC7D38OE9CLK10VCC11VREF+12GND13D114D215VREF-16D017D418D519D620D721ALE22ADD C23ADD B24ADD A25IN026IN127IN228ADC0809CCNU18VCCCLKD
41、0D1D2D3D4D5D6D7EOCADDAADDBADDCWRRD231SN74LS02NU24A564SN74LS02NU24BDS24470R72IN7IN5IN3IN0CS500K(B2)(D2)0-5VA0A1A2P1.2CS1(0F000H)操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译五、实验步骤 1、连线说明:G4 区:C
42、S、ADDA、ADDB、ADDC A3 区:CS1、A0、A1、A2(选择通道)G4 区:EOC(转换结束标志)A3 区:P1.2 G4 区:CLK B2 区:500K G4 区:IN0 D2 区:05V E5 区:CLK B2 区:2M E5 区:CS A3 区:CS5 E5 区:A0 A3 区:A0 E5 区:A、B、C、D G5 区:A、B、C、D 2、调节 05V 电位器(D2 区)输出电压,显示在 LED 上,第 4、5 位显示 16 进制数据,第 0、1、2 位,显示十进制数据。用万用表验证 AD 转换的结果。六、演示程序 EXTRN CODE(Display8)Addr_0809
43、 XDATA 0F000H buffer DATA 30H;8 个字节的显示缓冲区 EOC_0809 BIT P1.2 ORG 0 LJMP START ORG 0100H START:MOV SP,#60H;设堆栈 START1:ACALL AD0809 ACALL Display_Data MOV R0,#Buffer;显示缓冲区首地址 LCALL DisPlay8;调用显示子程序 LCALL TIME;延时 SJMP START1 Display_Data:MOV B,A ANL A,#0FH MOV buffer+4,A MOV A,B ANL A,#0F0H SWAP A MOV b
44、uffer+5,A MOV A,B MOV B,#51;255/5(16 进制的 1=1/51V)DIV AB ORL A,#80H;加上小数点 MOV buffer+2,A ACALL Display_Data_1 MOV buffer+1,A;第一位小数 ACALL Display_Data_1 MOV buffer,A;第二位小数 MOV buffer+3,#10H 操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成
45、代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译 MOV buffer+6,#10H MOV buffer+7,#10H;消隐 RET Display_Data_1:MOV A,#10 MUL AB ADD A,B JNC Display_Data_11 INC A INC B Display_Data_11:MOV R7,A MOV A,B RL A RL A ADD A,B XCH A,R7 MOV B,#51 DIV AB ADD A,R7 RET AD0809:MOV A,#0 MOV DPTR,#Addr_0809 MOVX DPTR,A ;启动 A
46、D 转换 JNB EOC_0809,$;是否转换完成 MOVX A,DPTR ;读转换结果 RET TIME:PUSH 06H PUSH 07H MOV R6,#200 TIME1S1:MOV R7,#200 DJNZ R7,$DJNZ R6,TIME1S1 POP 07H POP 06H RET END 七、实验扩展及思考 如何实现多路模拟量的数据采集、显示?操作步骤运行桌面星研集成软件画面如下建立源文件执行主菜单文件新建或者点击图标打开窗口选择存放源文件的目译软件比如文件使用来它编译本实例文件名为窗口如下按确定即可然后即出现文件编辑窗口输入源程序参照实验一源误再与库文件连接生成代码文件文件编译连接文件的方法有如下二种使用主菜单项目编译连接或主菜单项目重新编译