单片机实验指导书

  • 格式:doc
  • 大小:113.50 KB
  • 文档页数:12

目录Wave 6000(fo r wind o ws)使用简介 (1)存储器块清零 (2)数据传送实验 (3)二进制到ASCII码转换 (4)P口输入输出 (5)计数器实验 (6)定时器实验 (7)外部中断实验 (8)串并转换实验 (9)*串行口、外部中断综合实验 (11)Wave 6000 (for windows) 使用简介一、注意:1、目录不使用长文件名,编译器不支持长文件名(缺省目录为C:\W AVE6000)。

2、C:\WAVE6000\HELP文件夹内有帮助文件。

3、参考网址: 二、基本操作步骤简介:[1]1、双击桌面图标;2、文件→关闭项目(目的:避免编译器不编译当前编辑的源程序文件);3、仿真器→仿真器设置→仿真器→:选择仿真器,S51;选择CPU,8752;使用伟福软件模拟器,划勾;[2]4、文件→新建文件→(键入ORG 00H后)另存为……(在文件名输入处,键入****.asm,****处为任意文件名);5、完成程序输入,保存;6、项目→编译;(如果程序有语法错误等,屏幕下方有提示信息,其中有问题代码所在行数。

)7、执行→……8、窗口→CPU窗口(打开了Project,SFR,Disassembly,两个窗口):[3]Project,SFR窗口包含Project,REG,SFR,Watch四个小窗口;在SFR窗口,依次单击ACC,B,IE,IP,P0,P1,P2,P3,PCON,PSW等寄存器,观察屏幕上的变化;每单击一个上述寄存器后,用数字小键盘输入任意两位数,观察变化,找出对应关系;9、窗口→数据窗口→DATA(内部RAM)CODE(ROM)XDATA(外部RAM),上述三个窗口,单击任一单元,可通过键盘修改数据;右击,练习菜单提示。

在相关程序单步运行时,可以即时观察数据变化。

注:[1] 帮助→WAVE6000使用手册,可以打开pdf格式说明文件,详解在第23至52页;[2] 在使用仿真头和实验台进行实验时,不划勾,不使用“伟福软件模拟器”;[3] 界面上出现的任何窗口都可以拖动位置和尺寸,而且关闭后可以通过窗口打开。

存储器块清零一、实验目的1、掌握存储器读写方法;2、了解存储器的块操作方法;二、实验说明通过本实验,学生可以熟悉单片机的存储器结构及读写存储器的方法,初步了解单片机的编程、调试方法。

三、实验内容1、把通用工作寄存器R4内容清零(注意:先观察该单元内容,若清零前即为零,先修改为任意数,再清零,下同)。

2、把P1寄存器的内容清零。

3、片内RAM中某个存储单元(如40H)清零。

4、指定内部RAM中起始地址(如40H)和长度(如20个单元),将其内容清零。

5、片外RAM中某个存储单元(如0000H)清零。

6、片外RAM中某两个存储单元(如0005H和0006H)清零。

7、指定外部RAM中起始地址(如1000H)和长度(如255个单元),将其内容清零。

四、参考程序框图六、思考题1、如何将指定外部RAM中起始地址(如1000H)和长度(如255个单元)的内容置成某一固定值(如,全填充为66H)?写出程序。

2、若1中长度为256个单元,如何修改程序?数据传送实验一、实验目的掌握RAM中的数据操作。

二、实验说明数据块移动是单片机常用操作之一,多用于大量的数据复制和操作。

本实验中,给出起始地址,用“地址加一”方法移动块,将指定源地址和长度的数据块移到以指定目标地址为起始地址的单元中去。

三、实验内容和步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。

2、移动片内RAM 30H—>片外RAM 1000H,48字节长度。

设计程序进行编译,编译无误后,打开数据窗口(DA TA,XDA TA),观察DATA窗口中地址30H 开始的48个单元,XDATA窗口中地址1000H起始的48个单元;若各单元内数据对应相同,则用键盘输入改变其中一块的数据,全速运行程序。

点击暂停按钮,观察两个存储块的数据,可以看到两块数据已相同,说明存储块内数据已传送。

3、移动片外RAM 1000H-->2000H,256字节长度。

设计程序进行编译,编译无误后,打开数据窗口(XDATA),观察地址1000H起始的256个字节存储块和2000H起始的256个字节存储块,若各单元内数据对应相同,则用键盘输入改变其中一块的数据,全速运行程序。

点击暂停按钮,观察两个存储块的数据,可以看到两块数据已相同,说明存储块内数据已传送。

4、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程。

四、参考流程图五、思考题1、若源块地址和目标块地址有重叠,该如何避免重叠?2、若给出块结束地址,如何传送数据。

二进制到ASCII码转换一、实验目的1、掌握如何将二进制数转换成ASCII码;2、掌握如何查表进行数值转换;二、实验内容1、启动计算机,启动伟福仿真软件。

2、编辑、编译如下程序:TEST EQU 0AHORG 0LJMP STAR TASCIITAB:DB '0123456789ABCDEF' ;定义数字对应的ASCII表START:MOV DPTR,#ASCIITABMOV A,#TESTMOVC A,@A+DPTR ;查ASCII表JMP $END完成以下任务:①参照“指令和代码的对照表”和ASCII码表,分析数据窗口CODE内0000H~001AH区域的代码;②单步执行程序,观察DPH、DPL、ACC的变化;③把语句TEST EQU 0AH里的0AH依次改为00H,01H,…,0FH,每次改动后编译程序,重复步骤②;3、赋值给Acc类似1BH或0AEH的数据,编程、利用查表功能将高低半字节分别转换为ASCII码,存放在地址为30H、31H的RAM数据区。

四、参考程序流程图P口输入、输出一、实验目的1、学习P口的使用方法;2、掌握延时子程序的编写和使用。

二、实验说明1、本实验需要使用DVCC仿真器和启东单片机开发综合实验装置;2、在“实验装置”上,一定在关闭电源的状态下进行电路连接和改动。

三、实验内容1、⑴按图连接线路:P1.0—P1.7用插针连至L0-L7;⑵在闪动“P.”状态,按PCDBG键;⑶双击DVCC图标,启动DVCC;⑷在系统设置选项中设定仿真模式为内程序、内数据;⑸在主菜单中选择联接;⑹新建文件,编辑实验源程序(1)和(2)(见附录),验证“八位逻辑电平显示”电路中的发光二极管的连接是共阴极还是共阳极。

⑺再在主菜单中选择调试,进入实验程序的编译、连接、目标文件的传送(三个步骤一起完成,也可以逐项进行);目标文件传送完后,在程序窗口内的首条指令前有一个蓝色光标出现;⑻连续运行实验程序(内程序,内数据)。

2、编辑、调试、运行源程序(3),观察发光二极管显示情况。

通过修改常数LED所代表的数值,观察发光二极管的显示与数值的关系;3、参照步骤2,编程完成:从右到左轮流循环点亮每只发光二极管;4、编程完成:发光二极管循环显示二进制数00H至0FFH。

四、思考题对于本实验延时子程序DELAY: MOV R6,#0MOV R7,#0DLLOOP: DJNZ R6,$DJNZ R7,DLLOOPRET若使用12MHz晶振,计算延时程序的执行时间是多少?附录:(源程序) (1)ORG 0 MOV P1,#0 JMP $END(2)ORG 0 MOV P1,#0FFH JMP $END (3) LED EQU 23HORG 0MOV A,#LED LOOP: MOV p1,ACALL DELAYCPL AJMP LOOP DELAY: MOV R6,#0MOV R7,#0 DLLOOP: DJNZ R6,$DJNZ R7,DLLOOP RETEND一、实验目的学习8051内部定时/计数器使用方法。

二、实验说明1、8051内部有两个16位定时/计数器T0和T1,其内部的计数器是16位的,由2个8位计数器组成;是加法计数器(加法计数器,指计数的方法是对脉冲计数,每次加1),需先设置计数器的初值,计数器计数满后溢出。

2、本实验使用T0作计数器,外部计数脉冲由T0(P3.4)引入。

单片机在每个机器周期采样一次输入波形(至少需要两个机器周期才能检测到一次跳变),这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样(输入波形的频率不能超过机器周期对应的频率)。

三、实验内容1、T0(P3.4)接单次脉冲输出孔,P1口接8位逻辑电平显示模块,脉冲的个数以二进制形式显示出来。

编译、运行程序一,连续按动单次脉冲按键,观察发光二极管的显示变化。

2、改用定时器T1,采用工作方式一,修改程序,完成步骤1的功能;3、参照步骤1,设置计数次数,达到如下要求:采用工作方式2,正确设置初始值,只使用低6位进行计数,并送LED显示。

四、示例源程序程序一:ORG 0MOV TMOD,﹟00000101b ;置T0计数器方式1MOV TH0,﹟0 ;置T0初值MOV TL0,﹟0SETB TR0 ;T0运行LOOP: MOV P1,TL0 ;记录P1口脉冲个数LJMP LOOP ;返回END五、思考题8051单片机的最高计数频率为多少?六、实验电路一、实验目的学习8051内部定时/计数器使用方法;二、实验说明关于内部定时/计数器的编程主要是初始值的设定和有关控制寄存器的设置。

本实验使用定时器功能,定时1秒钟。

CPU运用定时中断方式,每一秒钟输出状态发生一次反转,即发光管每隔一秒钟亮一次。

定时器是对内部机器周期进行计数。

每个机器周期的长度是12个振荡器周期。

若系统的晶振是6MHZ,选方式2, 定时器每100us发出一次中断,常数的设置可按以下方法计算:机器周期=12÷6MHz=2us,(256-定时常数)×2us=100us,定时常数=206,对每个100us的中断计数10000次,就是1秒钟。

在中断处理程序中,在对定时/计数器设置常数前要先关中断,设置完成再打开相应的中断。

三、实验内容1、用定时器T0计时,实现由P1.0输出25Hz的方波,采用查询方式控制。

2、若输出0.5Hz的方波,程序应如何修改?四、思考题如果更换不同频率的晶振,会出现什么现象?如何调整程序?五、实验电路一、实验目的1、掌握外部中断技术的基本使用方法。

2、掌握中断处理程序的编写方法。

二、实验说明外部中断的初始化设置共有三项内容:中断总允许即EA=1,外部中断允许即EX0=1或EX1=1,中断方式设置。

中断触发方式有两种:电平触发方式和边沿触发方式,本实验选用边沿触发方式,中断请求信号由引脚INT0或INT1引入,接单次脉冲发生器。