《单片机原理及应用》实验指导书.doc

上传人:小小飞 文档编号:5016802 上传时间:2020-01-28 格式:DOC 页数:28 大小:1.27MB
返回 下载 相关 举报
《单片机原理及应用》实验指导书.doc_第1页
第1页 / 共28页
《单片机原理及应用》实验指导书.doc_第2页
第2页 / 共28页
《单片机原理及应用》实验指导书.doc_第3页
第3页 / 共28页
《单片机原理及应用》实验指导书.doc_第4页
第4页 / 共28页
《单片机原理及应用》实验指导书.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《《单片机原理及应用》实验指导书.doc》由会员分享,可在线阅读,更多相关《《单片机原理及应用》实验指导书.doc(28页珍藏版)》请在三一文库上搜索。

1、单片机原理及应用(06通信、07通信)编撰闽江学院计算机实验教学中心印28实验一 单片机仿真软件wave6000练习一 实验目的11了解仿真软件wave6000的基本操作和使用12 学习简单程序的编写和调试方法。二 实验内容21观察复位时,CPU,SFR,DATA,CODE,XDATA,XCODE的值。21 单片机硬件资源的观察、修改及仿真等23 程序的运行并观察结果三 实验步骤1. 打开wave6000软件,新建一个文件,输入代码后并保存为.ASM的文件。2. 点击打开复位按钮然后,观察SFR,DATA,CODE,XDATA,XCODE在系统复位时值的情况如下所示: 3. 输入一个小程序代码

2、,在wave6000环境下运行,查看结果。ORG 0000H ORG 8000HMAIN:MOV R0,#20H MOV R1,#30H MOV R2,#10HLOOP:MOV A,R0 ANL A,#0F0H SWAP A ADD A,#30H MOV R1,A MOV A,R0 ANL A,#0FH ADD A,#30H INC R1 MOV R1,A INC R0 INC R1 DJNZ R2,LOOP LJMP MAIN四 实验思考题41通过本次实验熟悉了wave6000软件的各种操作,有几种方法可以运行程序?42 在实际操作中,主要碰到哪些问题使程序不能顺利执行?实验二 查表法实现字

3、符的转换程序设计一 实验目的11 学习简单程序的编写和调试方法。12运用仿真软件wave6000对程序进行调式和运行13检查程序运行结果是否正确二 实验内容编写查表法实现字符的转换程序并调试,查看运行过程及结果。三 实验步骤(参考)1 编写程序,编译通过,并运行得以下结果运行一下可以看到程序存储器中0060H0069H中存放表运行结果如下:3.采用单步运行查看程序的运行过程,先设置pc的值,然后单击单步运行图标即可通过实验,我们可以知道单步运行与全速执行的结果是一样的。四实验思考题41 在实际操作中,主要碰到哪些问题使程序不能顺利执行?42 若结果不正确,可能的问题是什么或使程序不能顺利执行?

4、实验三将两个字节的十六进制转换成十进制一、实验目的1 1熟悉程序的编写和调试方法。 12熟悉仿真软件wave6000对程序进行调式和运行 13检查程序运行结果是否正确二、实验内容编程实现将(10H)(11H)单元的两个字节的十六进制数转换成十进制存放在(20H)(21H)(22H)里面。三、实验步骤及参考程序1. 编写源程序,如下: ORG 0000HLJMP MAINORG 8000HMAIN:CLR A MOV 20H,A MOV 21H,A MOV 22H,A MOV R7,#16LOOP:CLR C MOV 10H,#0FFH MOV 11H,#0FFH MOV A,11H RLC A

5、 MOV 11H,A MOV A,10H RLC A MOV 10H,A MOV A,22H ADDC A,22H DA A MOV 22H,A MOV A,21H ADDC A,21H DA A MOV 21H,AMOV A,20HADDC A,20HDA AMOV 20H,ADJNZ R7,LOOPRET2.调试编译,并运行得以下结果: 四、实验思考题41 在实际操作中,主要碰到哪些问题使程序不能顺利执行?42 若结果不正确,可能的问题是什么或使程序不能顺利执行? 实验四 程序查询实现实时时钟的设计 一、 实验目的 通过本次实验学习使用程序查询实现实时时钟的设计二、 实验内容编程实现实时时

6、钟的功能三、 实验步骤及参考程序1.编写源程序,如下:ORG 0000HLJMP MAINORG 8000H MAIN:MOV TMOD,#01H MOV 23H,#0AH CLR A MOV 20H,A MOV 21H,A MOV 22H,ALOOP:MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 JNB TF0,$ CLR TF0 DEC 23H MOV TH0,#3CH MOV TL0,#0B0H MOV A,23H CJNE A,#00H,LOOP MOV 23H,#0AH MOV A,#01H ADD A,22H DA A MOV 22H,A CJNE A,#

7、60H,LOOP MOV 22H,#00H MOV A,#01H ADD A,21H DA A MOV 21H,A CJNE A,#60H,LOOP MOV 21H,#00H MOV A,#01H ADD A,20H DA A MOV 20H,A CJNE A,#24H,LOOP MOV 20H,#00H END2.通过调试,编译并运行得如下结果20H,21H,22H单元分别存放着时分秒的值。四、实验思考题41 在实际操作中,主要碰到哪些问题使程序不能顺利执行?42 若时间和实际时间不一致,可能的问题是什么?43 还有什么办法可以实现时钟的功能?实验五 Keil C51集成开发环境的使用一、【

8、实验目的】1、熟悉Keil C51集成开发环境的使用方法2、熟悉DP-51PRO单片机综合仿真实验仪的使用3、掌握基于Keil C51的硬件仿真功能的使用二、【实验仪器】1、IBM PC机一台 2、DP-51PRO单片机综合仿真实验仪一台三、【实验内容】一、Keil C51的使用在Keil 软件中是以项目(Project)方式来组织管理所有相关的源码,和源码所处的文件夹没有太大关系。1、 熟悉uVision3集成开发环境菜单栏,工程项目窗口,编辑窗口,信息输出窗口等;2、 创建一个新的项目:Project - New uVision Project ,设置好工程存放路径、工程名称如:led。3

9、、 为这个项目选择一个相应的设备,即目标单片机型号:NXP (Philips) - P80/P87C52X2。(此设备型号也可以在属性中更改。)4、 提示如下: 选择否。(当用C语言开发时,可选是)。5、 新建一个文本文档File - New,输入实验源码:ORG8000H;伪指令,指定程序从8000H开始存放AJMPMAIN;跳转指令,程序跳转到MAIN处ORG8100H;伪指令,指定以下程序从8100H开始存放MAIN:MOVSP,#60;给堆栈指针赋初值LIGHT:CPLP1.0;取反P1.0,改变L9的亮灭状态CPLP1.1;取反P1.1,改变L10的亮灭状态CPLP1.2;取反P1.

10、2,改变L11的亮灭状态ACALLDELAY;调延时子程序AJMPLIGHT;跳转,程序继续;延时子程序DELAY:MOVR7,#10HDELAY0:MOVR6,#7FHDELAY1:MOVR5,#7FHDELAY2:DJNZR5,DELAY2DJNZR6,DELAY1DJNZR7,DELAY0RETEND保存为:led.asm (后缀.asm表示此源代码是用汇编语言编的)6、 在工程项目窗口中,右键点击Source Group 1, 点击Add Files to Group “Source Group 1”, 把刚刚编写的源文件加入工程中。7、 编译链接程序Project - Build T

11、arget。 如出错改正后再执行此命令直到链接成功。二、仿真调试功能的使用1、 在前面已编译好的基础上,对项目的属性做些特殊设置,即可进行硬件仿真。在工程项目窗口中点击选择Target 1, 而后Project - Options for Target Target 1, 弹出项目属性设置页面。设置如下:1) Target页:Off-chip Code memory 和Off-chip Xdata memory 如下设置。2) Output页:勾选Create HEX File, 编译连接生成HEX标准格式下载文件。3) Debug页:选择右边的Use: Keil Monitor-51 Dri

12、ver, 即选择将进行硬件仿真方式,如下图:左边的Use Simulator为软件仿真。4) 再点击Settings按钮,弹出下图:选择相应的串口,波特率为9600。其它选项如图设置。属性设置后,点击“确定”保存后,仿真调试的软件设置部分即完成, 需再对项目编译:Project - Build all Target files2、 实验仪的设置:1) 实验仪硬件仿真状态设置:在A1区,JP13中的SRAM_E和FLASH_E断开不短接,JP14断开不短接;JP15的TXD,RXD短接。MOD_SW1开关拨到RUN模式。按一下复位按键 RST。 按本实验的所实现的功能:使用导线把A2区的J61接

13、口与D1区的J52接口相连。2) 运行 Keil C 的 Debug - Start/Stop Debug Session 命令,即把程序下载到单片机的SRAM中,开始仿真调试,在调试过程中,注意观察调试中实验仪器的变化。进入调试界面如下:3) 在Output windows 选择Command页,在后输入:g, 程序将跳转到Main开始调试, 而后即可进行单步、断点调试等:跳转后的页面:4)单步调试:点击快捷工具: 体会这几种工具的不同之处5)断点调试:点击快捷工具: 前者为设断点,后者为清除断点;或双击相应行即可设置/清除断点,然后点击: 执行。如图为设置了一个断点:)查看内存:如没显示如

14、下窗口,选择View - Memory Window 打开该窗口。在Address:输入框中,输入字符格式为:“存储器标识符:地址”, 如上图c表示程序存储器,0x8109是地址(0x表示是16进制)。还有d表示内部数据存储器,x表示外部数据存器。)点击这个图标: 退出调试。实现流水灯循环点亮: 程序如下:具体步骤如前所述。实验六 数据的冒泡排序一、实验目的 通过本次实验学习使用冒泡排序的单片机实现二、 实验内容使用冒泡排序实现20H-2FH单元的数据从小到大排列,并把正确的排序结果仍存放在20H-2FH单元三、 实验步骤及参考程序1. 编写源程序,并编译。ORG 0000H LJMP MAI

15、N ORG 4000HMAIN: MOV R3,#00HLOOP:MOV R0,#20H MOV R1,#21H MOV R2,#0FHLOOP1:MOV A,R0 CLR C SUBB A,R1 JC LOOP2 MOV A,R0 XCH A,R1 MOV R0,A INC R0 INC R1 LJMP LOOP3LOOP2:INC R0 INC R1LOOP3:DJNZ R2,LOOP1 INC R3 CJNE R3,#0FH,LOOP END2. 运行可执行文件,得到最后结果:(1) 运行前20H-2FH单元的内容如下:(2) 运行后20H-2FH单元的内容如下:四、实验思考题41 还有

16、什么办法可以实现数据排序的功能?实验七 单片机的I/O实验(电子琴)一、实验目的1、学会利用单片机的输入输出口, 熟悉定时器的使用;2、了解计算机(蜂鸣器)发声原理;3、了解键盘扫描电路的工作原理及编程方法;二、实验原理在单片机的开发使用中,经常会用到IO口来输入数据或输出控制信号,利用IO口是单片机编程的最基础技能。定时器常常用在要求比较精确计时的场合,能实时的处理一些特定的操作。实验原理图利用实验仪上提供的按键K1-K7作为电子琴按键,控制蜂鸣器发声,了解计算机发声原理,熟悉定时器和键盘扫描电路的工作原理及编程方法。三、实验仪器1、IBM PC机一台2、DP-51PRO单片机综合仿真实验仪

17、一台四、实验内容编写一段程序来检测按键的状态,当某一按键按下时,蜂鸣器发出对应的音调;用P3.3口控制(输出7种音阶标称频率的方波),使D4区的蜂鸣器发出不同的音调。1、认真理解程序控制流程,弄懂两个问题:如何扫描键盘及每个按键闭合时对定时器的影响。2、创建一个工程,编写按键的动态扫描程序,根据不同音阶的频率编写蜂鸣器的音调控制程序,完成编译、链接。并按实验一配置好工程属性,把实验仪设置为仿真状态。3、用导线将A2区J58接口P3.3口(INT1)和D4区的J8接口相连,然后将D1区的J53接口和A2区的J61接口一一对应相连。4、仿真调试程序,测试每个按键的音调。程序如下:BUZZ EQU

18、P3.3ORG 8000HLJMP MAINORG 800BHLJMP INT_T0ORG 8100HMAIN: MOV SP,#60H MOV P1,#0FFH MOV TMOD,#01H SETB ET0 SETB EA CLR TR0START: MOV R0,P1 CJNE R0,#0FFH,KEY1 CLR TR0 SJMP STARTKEY1: CJNE R0,#0FEH,KEY2 MOV 30H,#0FBH MOV 31H,#0E9H LJMP SET_TIMERKEY2: CJNE R0,#0FDH,KEY3 MOV 30H,#0FCH MOV 31H,#5CH LJMP SE

19、T_TIMERKEY3: CJNE R0,#0FBH,KEY4 MOV 30H,#0FCH MOV 31H,#0C1H LJMP SET_TIMERKEY4: CJNE R0,#0F7H,KEY5 MOV 30H,#0FCH MOV 31H,#0EFH LJMP SET_TIMERKEY5: CJNE R0,#0EFH,KEY6 MOV 30H,#0FDH MOV 31H,#045H LJMP SET_TIMERKEY6: CJNE R0,#0DFH,KEY7 MOV 30H,#0FDH MOV 31H,#92H LJMP SET_TIMERKEY7: CJNE R0,#0BFH,NOKEY

20、MOV 30H,#0FDH MOV 31H,#0D6HSET_TIMER: SETB TR0 SJMP STARTNOKEY: CLR TR0 SJMP STARTINT_T0: MOV TH0,30H MOV TL0,31H CPL BUZZ RETI ; END五、实验思考题51 若发出的音调和实际不一致,可能的问题是什么?52 用什么办法可以改变音准、节奏和演奏速度?实验八 单片机的I/O实验(串口/并口转换)一、实验目的熟悉并掌握串转并的I/O口扩展方法二、实验设备及器件IBM PC机、DP-51PRO单片机综合仿真实验仪三、实验内容1、写程序,通过单片机的P1口控制74HC164的串

21、行输入端口,实现串并转换2、验证串并转换数据的正确性四、实验要求熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O口资源。五、实验步骤1、短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10P13对应相连(clk对P10等等)。2、运行编写好的软件程序,完成一次串并转换。3、使用C2区的逻辑笔或D1区的J52接口(LED指示灯)测试并行输出数据Q0Q7数据的正确性。六、实验参考程序 CLK EQU P1.0DINA EQU P1.1DINB EQU P1.2CLR164 EQU P1.3ORG 8000HLJMP MAINORG 8100HMAIN:MOV SP

22、,#60H NOP CLR CLK SETB DINB CLR CLR164 MOV A,# 0AAH MOV R4,#08HSLCHG: RLC A MOV DINA,C SETB CLK NOP CLR CLK NOP DJNZ R4,SLCHG SJMP $ ; END七、实验思考题71 还有哪些办法可以实现I/O的扩展和转换?实验九 单片机与译码器的接口实验一、实验目的熟悉译码器的使用方法,灵活应用74HC138译码器电路设计。二、实验设备及器件IBM PC机 一台DP-51PRO单片机综合仿真实验仪 一台三、实验内容(1)编写程序,通过单片机的P1口控制74HC138的数据输入端,从

23、而选通相应的数据输出位。(2)将译码器数据输出端口连接到8个LED指示灯,验证译码器的正确性。四、实验要求通过实验掌握译码器的工作原理和实际应用方法。五、实验步骤(1)短接C6区JP4接口上的短路帽,将C6区J20,J22接口与A2区J61接口的P10P15相连。实验原理图如下图所示(2)将D1区的J52接口连接到C6区J51译码数据输出接口。(3)打开程序调试软件,下载运行编写好的软件程序,查看程序运行结果是否正确。六、实验参考程序ORG 8000HLJMP MAINORG 8100HMAIN:MOV SP,#60HMOV R4,#0DJNZ R4,$CLR P1.5CLR P1.4SETB

24、 P1.3CLR P1.0CLR P1.1SETB P1.2SJMP $;END七、实验思考题71如何利用单片机实现编码器的功能?实验十:单片机的串口通信实验一、实验目的1、学会单片机的串行口的使用2、掌握单片机烧写程序的方法和步骤二、实验原理1、通过串口实现一个单片机与PC机的简单握手通信的程序。2、利用单片机的TXD、RXD口向PC机发送。三、实验仪器1、IBM PC机一台2、DP-51PRO单片机综合仿真实验仪一台四、实验内容由于使用硬件仿真功能将占用串口,所以本次实验不能在实验仪上进行仿真,只能把程序下载到片上运行验证。1、实验编程 按以下要求编写两个程序,特别是在项目属性的设置中要勾

25、选Create HEX File这一选项,才能编译生成DPFlash下载所需要的.HEX文件,按第二节介绍的下载流程步骤把程序下载到片上验证。1)编写一段程序,利用串行口向PC机发送数据0x55。(第二节的截图为本实验的实验结果)2)编写一段程序,实现一个单片机与PC机的简单握手通信的程序。通信流程: PC机串口发送数据0x55(ASCII码为字母U),在单片机接收到0x55时返回一个数据0x41(ASCII码为字母A)即完成通信流程。程序如下:程序1:发送程序2:接收与发送2、下载流程1)安装烧写软件DPFlash。2)运行DPFlash下载程序,如图13)设置实验仪为下载模式(即把A1区的

26、MOD_SW1拨到load方向,再按RST按钮复位实验仪)。4)点击左侧工具栏的擦除按钮,把单片机片内ram清空,如图2 5)文件-装载,载入待下载的.HEX文件,如:rs232.hex,如图36)点击左侧工具栏的编程按钮,把装载的.hex文件烧写入单片机。如图47)退出编程窗口,把实验仪设置为运行(RUN)模式后,单片机即已运行片内程序。按需要调试、观察实验仪的运行表现。 本实验是调试RS232串口,我们可以使用DPFlash软件自带的一个串口调试工具。点击串口调试器,弹出一个界面,如图5,按本实验通信要求设置波特率等参数,即可观察到单片机发送的数据。8)采用同样的方法可观察到单片机接收与发

27、送3、本次实验结束后需把硬件仿真程序重新烧写回单片机。运行DPFlash,点击左边工具栏“编程(P)”按钮,然后选择“编程MON51”,点击“编程”,即把仿真接口程序重新烧入单片机中。界面如下:五、思考题51 如何进行单片机与单片机之间的串行通信。52 如何使用中断方法编写程序。53 如何实现单片机的多机通讯?54 哪些方法可以实现单片机通讯中的数据校验?实验十一 Keil C51集成开发环境的使用一、【实验目的】1、熟悉Keil C51集成开发环境的使用方法2、熟悉DP-51PRO单片机综合仿真实验仪的使用3、掌握基于Keil C51的硬件仿真功能的使用二、【实验仪器】1、IBM PC机一台

28、 2、DP-51PRO单片机综合仿真实验仪一台三、【实验内容】1、Keil C51的使用2、仿真调试功能的使用四、【实验步骤】1、 新建一个工程iso,并为工程选用相应的cpu型号。2、 如果程序没有编好,新建一个文件,编写相关的程序,用iso.asm文件名保存。ORG 8000HLJMP MainORG 80F0HMain: MOV R7, #0 Loop: MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1

29、.2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP MainEND3、 将编写好的程序添加到工程的Target中。4、设置iso工程编译连接环境为硬件仿真并选择相应的驱动程序库。 5、进行源程序的编译连接,直到程序编译连接成功为止。6、将程序载人到51单片机中,并运行查看结果。五、【实验结果】p1的8个输出端口连接显示灯上,8个显示灯实现流水灯循环点亮。实验十二 定时器的设计一、实验目的 通过本次实验学习使用定时器功能。二、实验内

30、容利用定时器T0编程实现定时1秒,假设系统时钟采用6MHZ。三、实验步骤及参考程序(1)定时器T0工作方式的确定方式0最长可定时16.384ms,方式1最长可定时131.072ms,方式2最长可定时512us。终上可得,可选方式1,每隔100ms中断一次,中断10次为1s。(2)计算初值 因为:(216-X)*2*10-6=10-1 所以:X=15536=3CB0H 因此:TH0=3CH,TL0=B0H(3)编写程序ORG 0000HLJMP MAINORG 000BHAJMP IT0PORG 0100HMAIN:MOV SP,#60H MOV B,#0AH MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 SETB ET0 SETB EAHERE:SJMP HEREIT0P:MOV TL0,#0B0H MOV TH0,#3CH DJNZ B,LOOP CLR TR0LOOP:RETIEND四、运行结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1