单片机原理实验指导书2013(含课程设计)_第1页
单片机原理实验指导书2013(含课程设计)_第2页
单片机原理实验指导书2013(含课程设计)_第3页
单片机原理实验指导书2013(含课程设计)_第4页
单片机原理实验指导书2013(含课程设计)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、单 片 机 原 理实 验 指 导 书丁易新 编安徽工业大学电气信息学院2012年6月实验01 Keil Vision编程平台与汇编指令练习一、实验器材1 微型计算机2 单片机硬件开发实验装置3 实验装置下载线二、实验目的1. 熟悉uVision3集成调试环境2. 熟悉MCS-51寻址方式及传送类指令三、实验要求与任务传送类指令练习。单步逐条向下执行指令。每执行一条指令,都要分析一下指令源操作数、目的操作数在存储空间的哪个单元,看一看你所理解的指令执行结果与实际运行结果是否符合,并且把每条指令执行后目的操作数的值记录下来。MCS-51单片机的存储空间如表所示:数据空间程序空间片内/片外片内片外片

2、内片外寻址方式RAM直接间接SFR直接寻址RAM间接寻址RAM间接寻址ROM间接寻址ROM间接寻址ROM间接寻址空间范围00-7FH80-FFH80H-FFH0000-FFFFH0000-0FFFH0000-0FFFH1000H-0FFFFH表示方法DATASFRIDATAXDATACODECODECODE1 直接寻址只能在DATA 区和SFR 中进行,如下例ORG 0000HLJMP STARTORG 0100HSTART: ; 此处加入RAM的初始化程序(见下文) MOV A, 03H ; 把地址03H 中的数移入累加器 MOV 43H, 22H ; 把地址22H 中的数移入地址43H 中

3、 MOV 02H, C ; 把Cy中的数移入位地址02H 中 MOV 42H, #18H ; 把立即数18 移入地址42H 中 MOV 09H, P1 ; 把端口1中的数移入地址09H 中 SJMP $END2间接寻址要使用DPTR,PC ,R0, R1 寄存器作为指针访问各存储器。可访问的空间为CODE、IDATA、XDATA存储区,对DATA 存储区也可进行间接寻址。只能用直接寻址方式对位地址进行寻址。XDATA 区寻址: ORG 0000H LJMP START ORG 0100HSTART: ; 此处加入RAM的初始化程序(见下文) MOV DPTR, #3048H ; DPTR 指向

4、外部存储区 MOVX A, DPTR ; 读入外部存储区地址3048H 中的数 INC DPTR ; 指针加一 MOV A, #26H ; 立即数26H 写入A 中 MOVX DPTR, A ; 将26H 写入外部存储区地址3049H 中 SJMP $ENDCODE区寻址:查CODE区的平方表: ORG 0000H LJMP START ORG 0100HSTART: MOV DPTR, #TABLE_BASE ; DPTR 指向表首地址 MOV A, #5 ; 把偏移量(立即数5)装入累加器中 MOVC A, A+DPTR ; 从表中读出数据到累加器中(5的平方) SJMP $TABLE_B

5、ASE: DB 0,1,4,9,16,25,36 ; 平方表END四、实验步骤: 创建项目 第一次使用,首先为我们编写的实验程序在D盘上新建一个文件夹D:单片机实验; 启动keil uVision2,新建一个项目文件并从器件库中选择一个器件,操作步骤如下:启动keil uVision2;新建一个项目文件:从菜单Project中选择New Project。选择保存路径(至D:单片机实验)输入项目文件名 (例:shiyan)点击保存选择CPU:弹出对话框Select Device for Target,为项目选择CPU。我们选择Atmel下的AT89C51。弹出对话框,询问是否添加标准的启动代码到

6、你的项目,不理会,点击NO。新建一个源文件从菜单File选择New来新建一个源文件。在text1编辑窗口中输入程序。把程序保存在D:单片机实验。由于是汇编程序,输入文件名时一定输入扩展名“.asm”。例:shiyan.asm。 将你的源文件加入到你的项目中 在你的Project Workspace窗口中点击Target 1前“+”,展开Source Group 1; 右击Source Group 1,出现菜单,选择Add files to Group “Suorce Group 1”选项; 弹出对话框。选择你刚刚生成的文件。例:shiyan.asm。文件类型选择 asm source file

7、点击Add后关闭对话框。 编译(或汇编)你的源程序 点击菜单Project下Options for Target弹出对话框Options for Target target1。 Xtal:定义CPU时钟,12MHz。 下面依次是编译的存储模式、程序空间大小等设置,均使用默认值即可。 若要生成下载文件(.hex文件),点击Output选项,选中Create Hex Files。 点击菜单Project下Build Target即可编译(或汇编)你的源程序(留意一下,在工具栏上可找到相应快捷按钮)。在下面的输出窗口Output Window可看到编译(汇编)的结果,应该没有错误才可继续下面实验。否

8、则修改你的源程序,直到没有错误为止。 调试你的程序点击菜单Debug下Start/Stop Debug Session进入调试模式。你现在就可以采用连续运行、停止、指令单步、函数单步、运行到光标处行等命令调试你的程序(这些命令在Debug下Run、Stop Running、Step、Step over,Run to Cursor line。也可利用快捷按钮)。你也可以设置断点后,连续执行程序进行调试。如程序运行到中间想从头再来,只要按RST按钮即可。常用调试快捷按钮符号说明RstRunStop RunningStep intoStep overRun to Cursor lineStart/S

9、top Debug Session复位连续运行停止指令单步函数单步运行到光标处行调试模式/编辑模式 切换 存储器、寄存器的查看、修改在调试程序时,经常需要查看存储器内容,你可以查看8051内的4个存储器逻辑空间的任一个。在调试模式下,依次点击View,Memory Window,你可以看到包含4个存储器空间的窗口,你在第一个存储器空间的Address栏内输入C:0,即可看到从0000H开始的一段程序存储内容;你也可以在其它Address栏内分别填入X:0、D:0、I:0就可以查看外部数据存储器空间、直接寻址的片内存储空间(包括片内00-7FH的RAM,及80H-0FFH的SFR)、间接寻址的片

10、内存储空间(包括片内00-7FH的RAM,及8032的80H-0FFH的数据RAM)。如要修改Memory Window内存储单元内容,可用鼠标右键点击选定存储单元,根据提示即可修改。在Project Workspace窗口,你还可以看到8051的所有寄存器。如要查看单片机的外围部件,像端口P0-P3,定时器T0、T1等,可点击Peripherals。实验02 二进制数转换成十进制数实验一、实验器材1 微型计算机2 单片机硬件开发实验装置3 实验装置下载线二、实验目的1. 熟悉uVision3集成调试环境2学习掌握51单片机的汇编语言程序设计。三、实验要求与任务将RAM地址61H,60H的16

11、进制数(高位61H,低位60H),转换成十进制数,结果送到44H、43H、42H、41H、40H(最高位44H,低位在40H)。 程序思路:数据-10000,够减X次,则万位为X;差值-1000,够减Y次,则千位为Y;差值-100,够减Z次,则百位为Z;差值-10,够减U次,则十位为U;个位为差值。四、实验步骤:实验步骤同实验01实验03 流水灯实验一、实验器材1 微型计算机2 单片机硬件开发实验装置3 实验装置下载线二、实验目的1. 熟悉uVision3集成调试环境2学习掌握51单片机的I/O端口及编程。三、实验电路:123456789RP30220×8VccQ1Q2Q3Q4Q5Q

12、6Q7Q874LS373LEOED1D2D3D4D5D6D7D8GND12345678LD0LD1LD2LD3LD4LD5LD6LD7VCCJD30VCCVCC12345678JD1380C51单片机P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7图1-3 8位流水灯显示电路四、实验要求与任务1. 设计节日流水灯。8051单片机P0口驱动流水灯:输出“1”时灯灭,“0”时灯亮。流水灯效果如下图2-1所示。图中 表示灯亮, 表示灯灭,流水灯效果在1-8状态中循环。 LD0 LD7 LD0 LD71 12 23 34 45 56 67 78 89 910图2-1 流水灯 1 111

13、2131415161718图2-2 流水灯 22. 设计节日流水灯。8051单片机P0口驱动流水灯:输出“1”时灯灭,“0”时灯亮。流水灯效果如上图2-2所示。图中 表示灯亮, 表示灯灭,流水灯效果在1-16状态中循环。五、实验步骤:1. 系统各跳线器处在初始设置状态(参见附录)(J1的1,2处8只短路帽打在左边,3,4的5只短路帽打在右边),MCU的JD13连接到八位逻辑电平显示模块的JD30。2. 程序输入、编译等实验步骤同实验01。3程序下载编程。系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。打开STC-ISP V397

14、软件。 步骤一:选择单片机芯片型号STC89C52RC 步骤二:打开hex文件 步骤三:选择COM口,与设备管理器(我的电脑,点击鼠标右键,选择设备管理器)中端口一致。 步骤四:设置为12T/单倍速 步骤五:Download/下载。 关学习机电源握手接线打开学习机电源4程序验证。实验04 数码管显示实验一、实验器材1 微型计算机2 单片机硬件开发实验装置3 实验装置下载线二、实验目的1. 掌握8段数码管硬件线路原理;2掌握用HD7279A芯片实现数码管显示的编程方法。三、实验电路 HD7279A是一片具有串行接口,可同时驱动8位共阴数码管(或64只独立LED)的智能显示驱动芯片,该芯片还可同时

15、连接多达64键的键盘矩阵。HD7279A内部含译码器,可直接接受16进制码。 HD7279A芯片介绍请见附录一。abcdefgdpVDDVDDNCVSSNCCSCLKDATAKEYCLK0RCRESETDIG7DIG6DIG5DIG4DIG3DIG2DIG1DIG0DPSASBSCSDSESFSG7279A25242322212019181716151413121110123456789262728VCCVCC200200200200200200200200VCC80C51单片机P2.7P1.6P1.7P1.3R303.3KC3015PF四、实验要求与任务 根据电路使用HD7279A驱动共阴数

16、码管,显示自己学号后3位(例如:101)。 程序可参考附录一。五、实验步骤:1. 系统各跳线器处在初始设置状态(参见附录)(J1的1,2处8只短路帽打在左边,3,4的5只短路帽打在右边),J3打在7279处。2. 程序输入、编译等实验步骤同实验01。3程序下载编程。系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。打开STC-ISP V397软件,下载程序(同实验03)。六、实验程序参考框图:变量定义堆栈指针初始化IO口 初始化延时7279复位显示字符送A调用SEND 子程序课程设计实验01 AD转换实验一、实验器材1 微型计算机

17、2 单片机硬件开发实验装置3 实验装置下载线二、实验目的1. 掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用;2掌握用查询方式完成模/数转换程序的编写方法。三、实验电路实验使用ADC00809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片。片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁器输出。由于片内没有时钟需外接时钟信号。芯片的引脚如图5-1,各引脚功能如下:图5-1 ADC0809引脚图IN0IN7:八路模拟信号输入端。ADD-A、ADD-B、ADD-C:三位地址码输入端。CLOCK: 外部时钟输入端。C

18、LOCK输入频率范围在10-1280KHz,典型值为640KHz,此时A/D转换时间为100S。51单片机ALE直接或分频后可与CLOCK相连。本实验CLOCK信号由CPLD Lattice3128分频产生(12MHz晶振12分频)。D0D7: 数字量输出端。OE(ENABLE):A/D转换结果输出允许端。当OE为高电平时,允许A/D转换结果从D0-D7输出。ALE: 地址锁存允许信号输入端。八路模拟通道地址由A、B、C输入,在ALE信号有效时将地址锁存。START: 启动A/D转换信号输入端。当START端输入一个正脉冲时,将进行A/D转换。EOC: A/D转换结束信号输出端。当 A/D转换

19、结束后,EOC输出高电平。Vref(+)、Vref(-):正负基准电压输入端。基准正电压的典型值为+5V。图5-2 ADC0809时序图A15A03:0010 1111 0000 0 实验数码管显示部分电路,同实验04。实验ADC0809电路如下图5-3所示。实验采用外设与存储器同一编址,在使用中可直接将外设当作数据存储器访问。第0路ADC地址为2f00H(即:CS AD信号对应A15A3为0010 1111 0000 0)。EOC(A/D转换结束信号输出端)接单片机P1.7,若采用查询方式完成模/数转换,只需查询P1.7即可。本实验CLOCK信号由CPLD Lattice3128分频产生(1

20、2MHz晶振12分频)。P1.7P1.7图5-3 ADC0809模拟转换电路四、实验要求与任务本实验从ADC0809的IN-0输入模拟量05V,数码管以十进制形式显示模拟量(单位为伏特)。提示:将AD转换结果*500/255的运算可简化为将AD转换结果*500/256。五、实验步骤:1. 系统跳线:1)系统各跳线器处在初始设置状态(参见附录),将MCU模块JT12跳线器的C、D、E、F四只短路帽置为上边(1、2短接),G短路帽置为下面(2、3短接)。2)A/D、D/A模块J101跳线器的短路帽置位左边;CPLD模块JT110跳线器的短路帽置位左边。J1的都打到左边,J2的 WR,RD打在左侧,

21、J3打在CS7279处。2. 程序输入、编译等实验步骤同实验01。3程序下载编程。系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。打开STC-ISP V397软件,下载程序(同实验03)。4数码管以十进制形式显示模拟量(单位伏特),手动调节电位器 RP100,改变输入模拟量电压的大小,数码管显示将随之变化。ALE与START接在一起,MOV DPTR, #02f00H ; A/DMOV A,#00NOPNOPMOVX DPTR,A ; 启动六、实验程序参考框图:查询P1.7即可:JNB P1.7,$1. MOVX A,DPTR

22、; 读入结果2. 数据运算3. 数码管显示课程设计实验02 RS232通信实验一、实验器材1 微型计算机2 单片机硬件开发实验装置3 实验装置下载线二、实验目的1. 了解8051串行口的工作原理以及发送数据的方式;2了解PC机通信的基本要求。三、实验电路 8051串行口经RS232电平转换后,与PC机串行口相连。PC机使用串口调试应用程序V2.2.exe ,实现上位机与下位机的通讯。波特率设为4800。 图6-1 串口通信接口电路 四、实验要求与任务本实验从ADC0809的IN-0输入模拟量05V,数码管以十进制形式显示模拟量(单位为伏特)。将单片机测得的数字量送PC机串口(PC上使用串口助手

23、调试应用程序V2.2.exe,可显示出单片机传送的数据)。系统晶振为11.0592MHz。五、实验步骤:1. 程序输入、编译等实验步骤同实验01。2程序下载编程。系统各跳线器处在初始设置状态(参见附录)(JT40打在左边,JD18打在右边),J2的P3.0,P3.1打在右边。打开STC-ISP V397软件,下载程序(同实验03)。3实验箱上的CON2和PC的串行口相连,J1的P1.0,P1.1打在左边,D18的四只短路帽打在右边。4打开串口助手调试应用程序V2.2.exe,选择下列属性: 波特率4800 数据位8 奇偶校验无 停止位15调试运行程序附录一:HD7279A芯片介绍 HD7279

24、A是一片具串行接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。1.主要特性 (1).串行接口,无需外围元件可直接驱动LED。 (2).各位独立控制译码/不译码及消隐和闪烁属性。 (3).(循环)左移/(循环)右移指令。 (4).具有段寻址指令,方便控制独立LED。 (5).64键键盘控制器,内含去抖动电路。2.引脚说明: VDD: 正电源 VSS: 地 CS: 片选 CLK: 时钟输入端 DATA: 串行数据输入/输出端 CLK0: 振荡输出端 KEY: 按键有效输出端 RES: 复位端 SG-SA:

25、段g段a驱动输出 DP: 小数点驱动输出 DIG0-7: 数位0-7驱动输出 RC: RC振荡器连接端3. HD7279A硬件电路:注意:(1).HD7279A应连接共阴式数码管。 (2).应用中,无需用到的键盘和数码管可以不连接。 (3).应用中,串入DP及SASG连接的8只电阻为200欧。(4).应用中, 8只下拉电阻和8只键盘连接位选线DIG0DIG7的电阻,应遵从一定的比例关系,典型值为10倍,下拉电阻的取值范围是10K100K,位选电阻的取值围是1K10K。 (5).HD7279A需要一外接的RC振荡电路以供系统工作,其典型值分别为R1.5K,C15pF。(6).HD7279A的RE

26、SET复位端在一般应用情况下,可以直接与正电源连接,在需要较高可靠性的情况下,可以连接一外部的复位电路,或直接由MCU(单片机)控制。在上电或RESET端由低电平变为高电平后,HD7279A大约需要经过18-25MS的时间才会进入正常工作状态。4. 控制指令 HD7279A的控制指令分为二大类纯指令和带有数据的指令。 主要控制指令如下:A. 纯指令(1). 复位(清除)指令A4HD7D6D5D4D3D2D1D010100100当HD7279A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。(2). 左移指令A1

27、HD7D6D5D4D3D2D1D010100001例如,原显示为: 4252LP39其中第2位3和第4位L为闪烁显示。执行了左移指令后,显示变为:252LP39第2位9和第4位P为闪烁显示。(3)右移指令A0H D7D6D5D4D3D2D1D010100000与左移指令类似,但所做移动为自左向右移动,移动后,最左边一位为空B带有数据的指令(1). 下载数据且按方式0译码 D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010000a2a1a0DPXXXd3d2d1d0命令由二字节组成,前半部分为指令,其中a2,a1,a0为位地址。d0d3为数据,收到此指令时,按以下规则进行译码。

28、 小数点的显示由DP位控制:DP=1时,小数点显示, DP=0时,小数点不显示。 (2)下载数据且按方式1译码D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D011001a2a1a0DPXXXd3d2d1d0此指令与上一条指令其本相同,所不同的是译码方式。(3)下载数据但不译码 D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010010a2a1a0DPABCDEFG其中,a2,a1,a0为位地址,AG和DP为显示数据,分别对应7段LED数码管的各段。当相应的数据位为1时,该段点亮,否则不亮。此指令灵活,通过造字形表,可以显示用户所需的字符。(4)闪烁控制88H D

29、7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D010001000d8d7d6d5d4d3d2d1此命令控制各个数码管的闪烁属性,d1d8分别对应数码管1-8。0=闪烁,1=不闪烁。开机后,缺省的状态为各位均不闪烁。 (5). 读键盘数据指令15H D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D000010101d7d6d5d4d3d2d1d0该指令从HD7279A读出当前的按键代码。前一个字节015H为指令代码,而后一个字节d0-d7则为HD7279A返回的按键代码,其范围是00H-3FH(无键按下时为FFH)。当HD7279A检测到有效的按键时,KEY引脚从高电

30、平变为低电平,并一直保持到按键结束。在此期间,如果HD7279A接收到读键盘数据指令,则输出当前按键的键盘代码;如果在收到读键盘指令时没有有效按键,HD7279A将输出FFH。5串行接口的时序图。A、HD7279A的指令结构类型:(1)、不带数据的纯指令,指令的宽度为8个BIT。即微处理器需发送8个CLK脉冲。(2)、带有数据的指令,宽度为16个BIT,即微处理器需发送16个CLK脉冲。(3)、读取键盘数据指令,宽度为16个BIT,前8个为微处理器发送到HD7279A的指令,后8个BIT为HD7279A返回的键盘代码。执行此指令时,HD7279A的DATA端在第9个CLK脉冲的上升沿变为输出状

31、态,并与第16个 脉冲的下降沿恢复为输入状态,等待接收下一个指令。B、串行接口的时序图:(1). 纯指令T1=50us; T2=8us; T3=8us (2). 带数据指令T4=25us(3). 读键盘指令T5=25us; T6=8us; T7=8us6. 软件编程 发送一字节子程序:(发送数存于A中)KEY BIT P1.3CLK BIT P1.6DAT BIT P1.7CS BIT P2.7SEND: MOV R0,#8 CLR CS CALL LONG_DELAYSEND_LOOP: MOV C,ACC.7 MOV DAT,C SETB CLK RL A CALL SHORT_DELAY CLR CLK CALL SHORT_DELAY DJNZ R0,SEND_LOOP CLR DAT RETLONG_D

温馨提示

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

评论

0/150

提交评论