单片机实验指导书_第1页
单片机实验指导书_第2页
单片机实验指导书_第3页
单片机实验指导书_第4页
单片机实验指导书_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、单 片 机 原 理 与 应 用实验指导书注意:1、做实验前必须预习 2、带教材和实验指导书理工大学自动化学院自动化系 实验仪的使用本实例是仿真INTEL的8031单片机,来循环点亮P1口的发光二极管(低电平有效)。程序是用汇编语言来编写。下面介绍相应的操作步骤:1、运行桌面“星研集成软件”,画面如下:2、建立源文件执行 主菜单 » 文件 » 新建,(或者点击图标)打开窗口。选择存放源文件的目录,输入文件名,注意:一定要输入文件名后缀。对源文件编译、连接、生成代码文件时,系统会根据不同的扩展名启动相应的编译软件。比如:.ASM文件,使用A51来对它编译。本实例文件名为xunh

2、uan.asm。窗口如下:按“确定”即可。然后即出现文件编辑窗口:输入源程序,参照实验一源程序。这样一个源文件就建立好了。3.编译、连接文件首先选择一个源文件,然后可以编译、连接文件了。对文件编译,如果没有错误,再与库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下二种:(1)使用 主菜单 » 项目 » 编译、连接 或主菜单 » 项目 » 重新编译、连接 ”。(2)点击图标或来“编译、连接”或“重新编译连接”。编译、连接过程中产生的信息显示在信息窗的“建立”视中。编译没有错误的信息如下:若有错误则出现如下信息框:有错误、警告信息,

3、用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自动打开对应的出错文件,并定位于出错行上。这时用户可以作相应的修改,直到编译、连接文件通过。4调试编译、连接正确后,可以开始调试程序。进入调试状态方法有:a) 执行 主菜单 » 运行 » 进入调试状态b) 点击工具条的进入后的窗口如下:在整个图片中我们可以看到相对应的窗口信息。在“工作区窗”的“CommonRegister”中我们可以了解通用寄存器的信息。中间的窗口为源程序窗口,用户可在此设置断点,设置光标的运行处,编辑程序等。寄存器窗我们可以看到一些常用的寄存器的数值。存贮窗1、存贮窗2显示相应的部数据空

4、间、外部数据空间的数据,还有变量窗,自动收集变量显示其中。反汇编窗显示对程序反汇编的信息代码、机器码。在信息窗的“装载”视中,显示装载的代码文件,装载的字节数,装载完毕后,显示启始地址,结束地址。这种船坞化的窗口比通常的窗口显示的容更多,移动非常方便。用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;将鼠标移到窗口的边上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小。在调试过程中,可以根据您的需要,在主菜单 » 查看中打开:寄存器窗、存贮器窗1、2、3、观察窗、变量窗、反汇编窗。您也可以通过主菜单 » 辅助

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

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

7、。 连续单步(功能键 Ctrl + F8)连续执行“单步”,用鼠标点击或按任意键后,停止运行。SUPER ICE16、SUPER ICE51“单步”时,不响应中断。 运行到光标行(功能键 F4)从当前地址开始全速运行用户程序,碰到光标行、断点或用鼠标点击,停止运行。 全速断点(功能键 F9)从当前地址开始全速运行用户程序,碰到断点或用鼠标点击,停止运行。 全速运行(功能键Ctrl + F10)从当前地址开始全速运行用户程序,此时,按用户系统的复位键,CPU从头开始执行用户程序,即对于MCS51类CPU是从0开始执行;对于MCS96、MCS196类CPU是从2080H开始执行。用鼠标点击,停止运

8、行。 停止运行终止微机与仿真器之间通信(功能键 ESC)。注意:欲终止微机与仿真器之间通信,功能键ESC是一个很方便的键,它的效果比点击相应的图标的效果要好。建议用户多用ESC键。在系统运行“连续单步”或者“连续单步进入”时ESC键被禁止,这时用户可以按键盘的其他任意键停止其运行。5调试的方法及技巧一般来说,用户的程序或多或少的会有一些逻辑错误,我们的仿真器、实验仪和星研集成软件可以帮助用户很快的定位,很快的查出相应的错误。一般刚刚写好的程序,在进入调试状态后,执行“单步”或者“单步进入”,我们推荐您能记住这些操作的相对应的功能键,这样您就在调试程序的过程中很方便。在调试状态的窗口中我们可以看

9、到很多的窗口,用户只要熟练地应用这些窗口来观察、分析数据就会很快的调试好程序,达到事半功倍的效果。比如在刚才的调试程序中我们多次执行“单步(F8)”命令,在工作区窗口的CommonRegister视中查看通用的寄存器:我们可以观察到在本程序中所使用的一些寄存器的变化,比如累加器A、P1口的数值的变化。我们可以看到P1口中的数值变化为:FEH(11111110B)FDH(11111101B)FBH(1111 1011B)F7H(1111 0111B)EFH(1110 1111B) DFH(1101 1111B)BFH(1011 1111B)7FH(0111 1111B)FEH(1111 1110

10、B)很好的实现了P1口循环点亮发光二极管的功能。对于其他的一些寄存器的数值的观察我们也可以用来分析自己的程序。把光标移动到DELAY子程序(具体操作是:用鼠标点击DELAY,然后再点击图标,即可运行到光标行):这时执行“连续单步(Ctrl+F7)”命令,在工作区窗口的CommonRegister视中我们可以寄存器R5,R6,R7的数据的连续的变化。用户可对此做专门的分析。我们在调试时,观察工作区窗口的CommonRegister视,就会看到尽管有A,R4的数值在变化,但是P1的数值始终没有变化。这样我们在调试时就会发现问题 LJMP START应改为LJMP LOOP。我们也可以在软件中查看变

11、量,查看变量有多种方法,a)鼠标移到文件窗、反汇编窗口中的变量、寄存器、部RAM、外部RAM上,半秒钟后,在它们的旁边,会显示相应的值。b)在变量窗中,“全局”显示所有的全局变量;“模块”显示所有模块级变量;“局部”显示所有当前函数中的变量;“自动”自动收集当前可执行及前二行中的所有变量、寄存器、部RAM、外部RAM。-实验一跑马灯实验一、实验目的与要求1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。2、熟悉MCS51汇编指令,能自己编写简单的程序,控制硬件。二、实验设备 STAR系列实验仪一套、PC机一台三、实验容1、熟悉星研集成环境软件或熟悉Keil C51集成环境软

12、件的安装和使用方法。2、照接线图编写程序:使用P1口控制G6区的8个指示灯,循环点亮,瞬间只有一个灯亮。四、实验原理图五、实验步骤 1、连线说明: A3区:JP51G6区:JP652、编写程序或运行参考程序。 3、实验结果:通过G6区的LED指示灯(8个指示灯轮流点亮),观察实验的输出结果是否正确。六、演示程序ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HMOVA,#0FEHSTART1:MOVP1,ARLAACALLDELAYSJMPSTART1DELAY:MOVR0,#0FFH;延时子程序DELAY1:MOVR1,#0DJNZR1,$本句循环DJNZR0

13、, DELAY1RETEND请考虑以下问题?1、运行程序前,打开变量窗;2、使用单步进入命令,运行到第六行后,运行过程中变量窗有何变化?将鼠标停留在A、SP上一秒后,出现什么?,它与变量窗使用场合的区别?3、第九行是调用延时子程序,如何进入延时子程序(使用单步进入命令)?如何将延时子程序一下子运行完毕(使用单步命令;也可以将光标移到下一行,使用运行到光标处命令;)?单步进入命令与单步命令有何区别?4、运行几次后,在第十行设置一个断点,使用全速断点命令运行几次,观察运行结果,它与运行到光标处命令有何区别?5、Delay是一个延时子程序,改变延时常数,使用全速运行命令,显示发生了什么变化?6、观察

14、寄存器,有哪几种方法?1)在工作区窗的通用寄存器标签视中;2)变量窗3)鼠标停留在寄存器上4)观察窗5)寄存器窗实验二数据传送(RAM>XRAM)一、实验目的熟悉星研集成环境软件或熟悉Keil C51集成环境软件的使用方法。熟悉MCS51汇编指令,能自己编写简单的程序,掌握数据传输的方法。二、实验容1、熟悉星研集成环境软件或熟悉Keil C51集成环境软件的安装和使用方法。2、编写程序,实现外部数据段的传送、校验。三、程序框图四、实验步骤在部RAM 30H 3FH中输入数据;使用单步、断点方式调试程序,检测外部数据RAM的1000H 100FH中的容。熟悉查看特殊功能寄存器、部数据RAM

15、、外部数据空间的各种方法。五、程序清单;将部RAM Address1 开始的16个字节送到外部RAM从Address2开始的单元里,再作比较。Address1DATA30HAddress2XDATA1000HORG0000HLJMPSTARORG0100HSTAR:MOVSP,#60HMOVR0,#Address1MOVDPTR,#Address2MOVR7,#10HSTAR1:MOVA,R0;传送MOVXDPTR,AINCR0INCDPTRDJNZR7,STAR1MOVR0,#Address1MOVDPTR,#Address2MOVR7,#10HSTAR2:MOVB,R0;比较MOVXA,D

16、PTRCJNEA,B,STAR3INCR0INCDPTRDJNZR7,STAR2SJMP$;传送正确STAR3:SJMP$;传送错误END请考虑以下问题:1、运行程序前,打开变量窗、二个存贮器窗(一个选择片数据;一个选择片外数据,起始地址选择1000H),每个存贮器窗有四个标签,有何好处?;2、使用单步进入命令,运行到第十四行后,运行过程中变量窗有何变化?将鼠标停留在A、SP、R0、DPTR上一秒后,出现什么?,它与变量窗使用场合的区别?3、将光标移到第十四行上,使用运行到光标处命令,观察运行结果,体会它与单步进入命令的不同处。4、在二十行上,设置一个断点,使用全速断点命令运行几次,观察运行结

17、果,它与运行到光标处命令有何区别?5、使用全速运行命令,稍后,点击工具条上停止运行命令按钮,当前执行箭头停在哪一行?运行结果是否正确?它与全速断点运行命令有何区别?6、观察寄存器,有哪几种方法?1)在工作区窗的通用寄存器标签视中;2)变量窗 3)鼠标停留在寄存器上。4)观察窗 5)寄存器窗7、查看CPU部数据RAM、CPU片外数据RAM:1)存贮器窗 2)变量窗 3)鼠标停留在CPU部数据RAM、CPU片外数据RAM的地址、R0、DPTR上。六、思考题 改编程序,使得当数据传输正确时,点亮1个发光二极管。当数据传输错误时,点亮2个发光二极管。实验三继电器控制实验一、实验目的与要求掌握使用继电器

18、控制外设的基本方法和编程。二、实验设备STAR系列实验仪一套、PC机一台。三、实验容1、预备知识自动化控制设备中,存在一个电子与电气电路的互连问题,一方面,电子电路需要控制电气电路的执行元件,如:电动机、电磁铁、电灯等;一方面又要为电子电路提供良好的电隔离,以保护电子电路和人身安全,减少干扰源。继电器就起这个桥梁作用。2、实验过程使用G6区的K7拨动开关,通过继电器控制直流电机转动、停止。如果K7损坏,可以用其他开关。四、实验原理图五、实验步骤1、连线说明:E3区:CtrlA3区:P1.0E3区:COM1C1区:VCCE3区:CUT1F1区:CtrlA3区:P1.7G6区:K72、运行程序,G

19、6区的K7拨动开关,控制继电器动作。P1.0为低电平时,继电器动作。六、演示程序ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HKeyH:P1.7,$;P1.7为1时,等待。CALLDelay; P1.7为0,延时去抖P1.7,KeyH;再次确认。为0则向下运行CLRP1.0 ;继电器上电,电机转动KeyL:JNBP1.7,$;P1.7为0,等待CALLDelay; P1.7为1时,延时去抖JNBP1.7,KeyL;再次确认为是否0。否则向下运行SETBP1.0; 继电器停电,电机停转SJMPKeyHDelay:MOVR6,#20H;延时子程序MOVR7,#0

20、Delay1:DJNZR7,$DJNZR6,Delay1RETEND七、思考题改编程序,使电机每次运行时间不超过1秒。实验四 中断、定时器系统一、实验目的:1、掌握定时/计数器、中断初始化程序的设计。2、掌握使用定时/计数器的方式1、方式2的编程方法3、掌握中断的编程方法。二、实验硬件电路: 三、实验容:1、外部中断 应用:硬件电路如上图,其中 输入部分是B2区的R-S触发器(硬件去抖动), B2区的S4是中断申请按键。P1口设置跑马灯,要求 每申请一次中断,即开关S4拨动一次,跑马灯循环点亮一次。 连线说明:B2区:单脉冲A3区:P3.2A3区:JP51G6区:JP65参考程序如下: ORG

21、 0 SJMP MAINORG 0003H;外部中断0入口地址 SJMP LOOP;跳转到中断服务程序LOOPMAIN: SETB EA;开放总中断 SETB EX0;开放外部中断0 SETB IT0;开放定时器0中断HERE: SJMP HERE;在此等待LOOP: MOV P1,#0FEH;外中断0中断服务程序。点亮一个灯 MOV TMOD,#10H;定时器1设为方式1计时 MOV TL1,#00H ;设初值,定时器做为延时 MOV TH1,#00H MOV R2,#08H ;为点亮8个灯计数 SETB TR1;定时器启动L: MOV C,TF1;溢出标志送入C JNC L;TF1不等于1

22、,未溢出,循环等待 CLR TF1; 溢出,清除标志,以便下次判断 MOV A,P1 RL A; A容循环左移,准备点亮下个 MOV P1,A; DJNZ R2,L;循环点亮8灯 RETI END2、用定时器串联方式,实现每隔1秒钟发光二极管循环闪亮,单片机的晶振为11.0592MHZ。具体做法是:使T0 工作于定时方式1(产生71mS定时),使T1 工作计数(计数14次,约为1秒),每次T0溢出后从P3.0(RXD)口给P3.5(T1)口发送一个负脉冲,当T1溢出时控制P1口的发光二极管闪亮。T0、T1的溢出,采用查询方式。连线说明:A3区:P3.0A3区:P3.5A3区:JP51G6区:J

23、P65参考程序如下:ORG 0000H SJMP MAINORG 0030HMAIN: MOV P1,#0FEH;点亮一个灯 MOV TMOD,#51H;定时器0设为1方式定时器,定时器1设为计数L0: MOV TL1,#0F2H;初值F2H到溢出值100H,计数值为14. MOV TH1,#0FFH; SETB TR1;启动定时器1L1: MOV TL0,#00H;机器周期TCY=12/11.0592=1.085.最大计时为 MOV TH0,#00H; 216*1.085=71106us=71.1ms SETB TR0L2: MOV C,TF0 JNC L2 CLR TF0 CLR P3.0

24、 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、计算定时器/计数器时间常数。3、写出预习报告五、思考题:1、对于实验容2用定时器串联方式的延时方法,若T0、T1的溢出采用中断方法,程序应如何修改。2、若改变延时时间,程序应如何修改。 实验五 PWM电压转换实验一实验目的1、了解PWM电压转换原理2、掌握单片机控制的PWM电压转换二、实验设备STAR系列实验仪一套、PC机一台三、实验容1、

25、PWM电压转换原理:(1) 将一定频率的输入信号转换为直流电;(2) 通过调节输入信号占空比调节输出的直流电电压,输出电压随着占空比增大而减小2、实验过程(1) 输入15kHZ左右的方波,经LM358进行PWM电压转换,输出直流电,驱动直流电机(2) 通过按键调整占空比来改变PWM输出电压,直流电机的转速会随之变化四、实验原理图五、实验步骤1、连线说明:E2区:INA3区:P1.2,方波输入E2区:OUTE2区:IN1E2区:OUT1F1区:CTRL,直流电机电源输入A3区:JP51G6区:JP742、通过G6区的1、2键调整占空比来改变PWM输出电压,直流电机的转速会随之变化:1号键减少占空

26、比;2号键增加占空比六、演示程序INBITP1.2;PWM方波输入PWM_LOWDATA30H;低电平时间PWM_HIGHDATA31H ;高电平时间,控制频率在15kHZ左右periodsEQU0E0H;周期64usORG0000HLJMPSTARTORG000BHLJMPiTIMER0ORG0100HSTART:MOVSP,#60HMOVPWM_LOW,#periodsMOVPWM_HIGH,#periodsMOVTH0,#periodsMOVTL0,#periodsMOVTMOD,#02H;T0设为定时器,方式2自动重装SETBEA;开中断SETBET0;开定时器中断SETBTR0;启动

27、定时器0START1:ACALLScanKeyJNZKey1Key0:MOVA,PWM_HIGH; 减少占空比CJNEA,#0FBH,Key0_1SJMPSTART1 ;大于这个值,对定时中断已反应不过来Key0_1:INCPWM_HIGHDECPWM_LOWSJMPSTART1Key1:MOVA,PWM_LOW;增加占空比CJNEA,#0FBH,Key1_1SJMPSTART1 ;大于这个值,对定时中断已反应不过来Key1_1: INCPWM_LOWDECPWM_HIGHSJMPSTART1iTIMER0:JBCIN,iTIMER0_1;若IN为1,跳转并将IN清零。MOVTL0,PWM_H

28、IGH;加载高电平时间SETBIN;置为高电平RETIiTIMER0_1:MOVTL0,PWM_LOW;加载低电平时间NOPRETIScanKey:JNBP1.0, ScanKey1;若 P1.0电平为0,1键按下,P1.1, ScanKey;若P1.1电平为0,2键按下ScanKey1:ACALLDelay20ms;消抖动ACALLDelay20msJNBP1.0, ScanKey2P1.1, ScanKeyMOVA,#1;2键按下,A置为1SJMPScanKey3ScanKey2:CLRA;1键按下,A置为0ScanKey3:JNBP1.0,$JNBP1.1,$RETDelay20ms:M

29、OVR6,#10Delay1:MOVR7,#100DJNZR7,$DJNZR6,Delay1RETEND七、实验扩展及思考改变PWM的输入频率,使用示波器观看LM358的输出,由此加深对PWM电压转换的了解。实验六8155输入、输出、SRAM实验一、实验目的与要求了解8155的部资源与结构;了解8155与单片机的接口逻辑;熟悉对8155的初始化编程、输入和输出程序的设计方法、8155定时器/计数器的使用方法。认真预习,做好实验前的准备工作,填写实验报告二、实验设备STAR系列实验仪一套、PC机一台三、实验容1、编写程序:从8155的PB口将G6区的8位开关读入,写入8155的部RAM,再读出后

30、,写入PA口,显示于LED指示灯上。2、连接线路,验证8155的功能,熟悉它的使用方法。四、实验原理图五、实验步骤1、连线说明:B4区:CS、IO/MA3区:CS1、A8B4区:JP76(PA口)G6区:JP65B4区:JP75(PB口)G6区:JP802、测试实验结果:G6区的开关状态反应在G6区的LED指示灯上。六、演示程序COM_8155XDATA0F100H;控制/状态寄存器PA_8155XDATA0F101H;PA口地址PB_8155XDATA0F102H;PB口地址RAM_8155XDATA0F000H;8155部RAM 00单元地址ORG0000HLJMPSTARORG0100H

31、STAR:MOVSP,#60H;堆栈MOVDPTR,#COM_8155;控制口地址MOVA,#1;PA为基本输出,PB为基本输入MOVXDPTR,ASTAR1:MOVDPTR,#PB_8155;从PB口获得输入值(拨码盘输入)MOVXA,DPTRMOVDPTR,#RAM_8155;存入8155部RAM里MOVXDPTR,AMOVA,#0FFH;消除输入结果MOVXA,DPTR;重新从8155相同地址取数MOVDPTR,#PA_8155MOVXDPTR,A;输出送显示(八个发光二极管)SJMPSTAR1END七、实验扩展及思考1、例子程序中只展示了8155的输入输出和读写数据RAM的功能,815

32、5还有定时器/计数器的功能,有兴趣读者可以自己编写程序,通过8155来实现定时,当作定时器用时,如何接线?2、若是要对PC口位操作,应该如何编写程序?3、如何使用8155实现键盘扫描和LED显示?实验七 并行AD实验(数字电压表实验)一、实验目的与要求1、了解几种类型AD转换的原理;掌握使用ADC0809进行模数转换2、认真预习实验容,做好准备工作,完成实验报告。二、实验设备 STAR系列实验仪一套、PC机一台、万用表一个。三、实验容1、ADC0809(G4区)(1) 模数转换器,8位精度,8路转换通道,并行输出(2) 转换时间100us,转换电压围05V2、编写程序:制作一个电压表,测量05V,结果显示于数码管上。四、实验原理图五、

温馨提示

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

评论

0/150

提交评论