单片机原理实验指导书含课程设计Word格式文档下载.docx
- 文档编号:20502440
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:30
- 大小:764.58KB
单片机原理实验指导书含课程设计Word格式文档下载.docx
《单片机原理实验指导书含课程设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机原理实验指导书含课程设计Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。
0000-0FFFH
1000H-0FFFFH
表示
方法
DATA
IDATA
XDATA
CODE
1.直接寻址只能在DATA区和SFR中进行,如下例
ORG0000H
LJMPSTART
ORG0100H
START:
;
此处加入RAM的初始化程序(见下文)
MOVA,03H;
把地址03H中的数移入累加器
MOV43H,22H;
把地址22H中的数移入地址43H中
MOV02H,C;
把Cy中的数移入位地址02H中
MOV42H,#18H;
把立即数18移入地址42H中
MOV09H,P1;
把端口1中的数移入地址09H中
SJMP$
END
2.间接寻址要使用DPTR,PC,R0,R1寄存器作为指针访问各存储器。
可访问的空间为CODE、IDATA、XDATA存储区,对DATA存储区也可进行间接寻址。
只能用直接寻址方式对位地址进行寻址。
①XDATA区寻址:
ORG0000H
LJMPSTART
ORG0100H
MOVDPTR,#3048H;
DPTR指向外部存储区
MOVXA,@DPTR;
读入外部存储区地址3048H中的数
INCDPTR;
指针加一
MOVA,#26H;
立即数26H写入A中
MOVX@DPTR,A;
将26H写入外部存储区地址3049H中
②CODE区寻址:
查CODE区的平方表:
MOVDPTR,#TABLE_BASE;
DPTR指向表首地址
MOVA,#5;
把偏移量(立即数5)装入累加器中
MOVCA,@A+DPTR;
从表中读出数据到累加器中(5的平方)
TABLE_BASE:
DB0,1,4,9,16,25,36;
平方表
四、实验步骤:
Ⅰ创建项目
⒈第一次使用,首先为我们编写的实验程序在D盘上新建一个文件夹D:
\单片机实验;
⒉启动keiluVision2,新建一个项目文件并从器件库中选择一个器件,操作步骤如下:
⑴启动keiluVision2;
⑵新建一个项目文件:
从菜单Project中选择NewProject。
①选择保存路径(至D:
\单片机实验)
②输入项目文件名(例:
shiyan)
③点击保存
⑶选择CPU:
弹出对话框SelectDeviceforTarget,为项目选择CPU。
我们选择Atmel下的AT89C51。
弹出对话框,询问是否添加标准的启动代码到你的项目,不理会,点击NO。
Ⅱ新建一个源文件
从菜单File选择New来新建一个源文件。
在text1编辑窗口中输入程序。
把程序保存在D:
\单片机实验。
由于是汇编程序,输入文件名时一定输入扩展名“.asm”。
例:
shiyan.asm。
Ⅲ将你的源文件加入到你的项目中
⒈在你的ProjectWorkspace窗口中点击Target1前“+”,展开SourceGroup1;
⒉右击SourceGroup1,出现菜单,选择AddfilestoGroup“SuorceGroup1”选项;
⒊弹出对话框。
①选择你刚刚生成的文件。
②文件类型选择asmsourcefile
③点击Add后关闭对话框。
Ⅳ编译(或汇编)你的源程序
⒈点击菜单Project下OptionsforTarget弹出对话框OptionsforTarget‘target1’。
Xtal:
定义CPU时钟,12MHz。
下面依次是编译的存储模式、程序空间大小等设置,均使用默认值即可。
若要生成下载文件(.hex文件),点击Output选项,选中CreateHexFiles。
⒉点击菜单Project下BuildTarget即可编译(或汇编)你的源程序(留意一下,在工具栏上可找到相应快捷按钮)。
在下面的输出窗口OutputWindow可看到编译(汇编)的结果,应该没有错误才可继续下面实验。
否则修改你的源程序,直到没有错误为止。
Ⅴ调试你的程序
点击菜单Debug下Start/StopDebugSession进入调试模式。
你现在就可以采用连续运行、停止、指令单步、函数单步、运行到光标处行等命令调试你的程序(这些命令在Debug下Run、StopRunning、Step、Stepover,RuntoCursorline。
也可利用快捷按钮)。
你也可以设置断点后,连续执行程序进行调试。
如程序运行到中间想从头再来,只要按RST按钮即可。
常用调试快捷按钮
符号
说明
Rst
Run
StopRunning
Stepinto
Stepover
RuntoCursorline
Start/StopDebugSession
复位
连续运行
停止
指令单步
函数单步
运行到光标处行
调试模式/
编辑模式切换
Ⅵ存储器、寄存器的查看、修改
在调试程序时,经常需要查看存储器内容,你可以查看8051内的4个存储器逻辑空间的任一个。
在调试模式下,依次点击View,MemoryWindow,你可以看到包含4个存储器空间的窗口,你在第一个存储器空间的Address栏内输入C:
0,即可看到从0000H开始的一段程序存储内容;
你也可以在其它Address栏内分别填入X:
0、D:
0、I:
0就可以查看外部数据存储器空间、直接寻址的片内存储空间(包括片内00-7FH的RAM,及80H-0FFH的SFR)、间接寻址的片内存储空间(包括片内00-7FH的RAM,及8032的80H-0FFH的数据RAM)。
如要修改MemoryWindow内存储单元内容,可用鼠标右键点击选定存储单元,根据提示即可修改。
在ProjectWorkspace窗口,你还可以看到8051的所有寄存器。
如要查看单片机的外围部件,像端口P0-P3,定时器T0、T1等,可点击Peripherals。
实验02二进制数转换成十进制数实验
2.学习掌握51单片机的汇编语言程序设计。
将RAM地址61H,60H的16进制数(高位61H,低位60H),转换成十进制数,结果送到44H、43H、42H、41H、40H(最高位44H,低位在40H)。
程序思路:
数据-10000,够减X次,则万位为X;
差值-1000,够减Y次,则千位为Y;
差值-100,够减Z次,则百位为Z;
差值-10,够减U次,则十位为U;
个位为差值。
实验步骤同实验01
实验03流水灯实验
2.学习掌握51单片机的I/O端口及编程。
三、实验电路:
图1-38位流水灯显示电路
四、实验要求与任务
1.设计节日流水灯。
8051单片机P0口驱动流水灯:
输出“1”时灯灭,“0”时灯亮。
流水灯效果如下图2-1所示。
图中表示灯亮,表示灯灭,流水灯效果在1-8状态中循环。
LD0……LD7LD0……LD7
11
22
33
44
55
66
77
88
99
10
图2-1流水灯111
12
13
14
15
16
17
18
图2-2流水灯2
2.设计节日流水灯。
流水灯效果如上图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-ISPV397软件。
⑴步骤一:
选择单片机芯片型号STC89C52RC
⑵步骤二:
打开hex文件
⑶步骤三:
选择COM口,与设备管理器(我的电脑,点击鼠标右键,选择设备管理器)中端口一致。
⑷步骤四:
设置为12T/单倍速
⑸步骤五:
Download/下载。
关学习机电源→握手接线→打开学习机电源
4.程序验证。
实验04数码管显示实验
1.掌握8段数码管硬件线路原理;
2.掌握用HD7279A芯片实现数码管显示的编程方法。
三、实验电路
HD7279A是一片具有串行接口,可同时驱动8位共阴数码管(或64只独立LED)的智能显示驱动芯片,该芯片还可同时连接多达64键的键盘矩阵。
HD7279A内部含译码器,可直接接受16进制码。
HD7279A芯片介绍请见附录一。
根据电路使用HD7279A驱动共阴数码管,显示自己学号后3位(例如:
101)。
程序可参考附录一。
1.系统各跳线器处在初始设置状态(参见附录)(J1的1,2处8只短路帽打在左边,3,4的5只短路帽打在右边),J3打在7279处。
打开STC-ISPV397软件,下载程序(同实验03)。
六、实验程序参考框图:
课程设计实验01AD转换实验
1.掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用;
2.掌握用查询方式完成模/数转换程序的编写方法。
实验使用ADC00809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片。
片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁器输出。
由于片内没有时钟需外接时钟信号。
芯片的引脚如图5-1,各引脚功能如下:
图5-1ADC0809引脚图
IN0~IN7:
八路模拟信号输入端。
ADD-A、ADD-B、ADD-C:
三位地址码输入端。
CLOCK:
外部时钟输入端。
CLOCK输入频率范围在10-1280KHz,典型值为640KHz,此时A/D转换时间为100μS。
51单片机ALE直接或分频后可与CLOCK相连。
本实验CLOCK信号由CPLDLattice3128分频产生(12MHz晶振12分频)。
D0~D7:
数字量输出端。
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转换结束后,EOC输出高电平。
Vref(+)、Vref(-):
正负基准电压输入端。
基准正电压的典型值为+5V。
图5-2ADC0809时序图
A15~A03:
0010111100000
实验数码管显示部分电路,同实验04。
实验ADC0809电路如下图5-3所示。
实验采用外设与存储器同一编址,在使用中可直接将外设当作数据存储器访问。
第0路ADC地址为2f00H(即:
CSAD信号对应A15~A3为0010111100000)。
EOC(A/D转换结束信号输出端)接单片机P1.7,若采用查询方式完成模/数转换,只需查询P1.7即可。
P1.7
图5-3ADC0809模拟转换电路
本实验从ADC0809的IN-0输入模拟量0~5V,数码管以十进制形式显示模拟量(单位为伏特)。
提示:
将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打在左侧,J3打在CS7279处。
4.数码管以十进制形式显示模拟量(单位伏特),手动调节电位器RP100,改变输入模拟量电压的大小,数码管显示将随之变化。
ALE与START接在一起,
MOVDPTR,#02f00H;
A/D
MOVA,#00
NOP
MOVX@DPTR,A;
启动
查询P1.7即可:
JNBP1.7,$
1.MOVXA,@DPTR;
读入结果
2.数据运算
3.数码管显示
课程设计实验02RS232通信实验
1.了解8051串行口的工作原理以及发送数据的方式;
2.了解PC机通信的基本要求。
8051串行口经RS232电平转换后,与PC机串行口相连。
PC机使用串口调试应用程序V2.2.exe,实现上位机与下位机的通讯。
波特率设为4800。
图6-1串口通信接口电路
将单片机测得的数字量送PC机串口(PC上使用串口助手调试应用程序V2.2.exe,可显示出单片机传送的数据)。
系统晶振为11.0592MHz。
1.程序输入、编译等实验步骤同实验01。
2.程序下载编程。
3.实验箱上的CON2和PC的串行口相连,J1的P1.0,P1.1打在左边,D18的四只短路帽打在右边。
4.打开串口助手调试应用程序V2.2.exe,选择下列属性:
波特率——4800数据位——8
奇偶校验——无停止位——1
5.调试运行程序
附录一:
HD7279A芯片介绍
HD7279A是一片具串行接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。
1.主要特性
(1).串行接口,无需外围元件可直接驱动LED。
(2).各位独立控制译码/不译码及消隐和闪烁属性。
(3).(循环)左移/(循环)右移指令。
(4).具有段寻址指令,方便控制独立LED。
(5).64键键盘控制器,内含去抖动电路。
2.引脚说明:
VDD:
正电源VSS:
地
CS:
片选CLK:
时钟输入端
DATA:
串行数据输入/输出端CLK0:
振荡输出端
KEY:
按键有效输出端RES:
复位端
SG-SA:
段g—段a驱动输出
DP:
小数点驱动输出DIG0-7:
数位0-7驱动输出
RC:
RC振荡器连接端
3.HD7279A硬件电路:
注意:
(1).HD7279A应连接共阴式数码管。
(2).应用中,无需用到的键盘和数码管可以不连接。
(3).应用中,串入DP及SA—SG连接的8只电阻为200欧。
(4).应用中,8只下拉电阻和8只键盘连接位选线DIG0-DIG7的电阻,应遵从一定的比例关系,典型值为10倍,下拉电阻的取值范围是10K—100K,位选电阻的取值围是1K—10K。
(5).HD7279A需要一外接的RC振荡电路以供系统工作,其典型值分别为R=1.5KΩ,C=15pF。
(6).HD7279A的RESET复位端在一般应用情况下,可以直接与正电源连接,在需要较高可靠性的情况下,可以连接一外部的复位电路,或直接由MCU(单片机)控制。
在上电或RESET端由低电平变为高电平后,HD7279A大约需要经过18-25MS的时间才会进入正常工作状态。
4.控制指令
HD7279A的控制指令分为二大类——纯指令和带有数据的指令。
主要控制指令如下:
A.纯指令
(1).复位(清除)指令A4H
D7
D6
D5
D4
D3
D2
D1
D0
1
当HD7279A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。
执行该指令后,芯片所处的状态与系统上电后所处的状态一样。
(2).左移指令A1H
例如,原显示为:
4
2
5
L
P
3
9
其中第2位‘3’和第4位‘L’为闪烁显示。
执行了左移指令后,显示变为:
第2位‘9’和第4位‘P’为闪烁显示。
(3).右移指令A0H
与左移指令类似,但所做移动为自左向右移动,移动后,最左边一位为空
B.带有数据的指令
(1).下载数据且按方式0译码
a2
a1
a0
DP
X
d3
d2
d1
d0
命令由二字节组成,前半部分为指令,其中a2,a1,a0为位地址。
d0-d3为数据,收到此指令时,按以下规则进行译码。
小数点的显示由DP位控制:
DP=1时,小数点显示,DP=0时,小数点不显示。
(2).下载数据且按方式1译码
此指令与上一条指令其本相同,所不同的是译码方式。
(3).下载数据但不译码
A
B
C
D
E
F
G
其中,a2,a1,a0为位地址,A-G和DP为显示数据,分别对应7段LED数码管的各段。
当相应的数据位为‘1’时,该段点亮,否则不亮。
此指令灵活,通过造字形表,可以显示用户所需的字符。
(4).闪烁控制88H
d8
d7
d6
d5
d4
此命令控制各个数码管的闪烁属性,d1—d8分别对应数码管1-8。
0=闪烁,1=不闪烁。
开机后,缺省的状态为各位均不闪烁。
(5).读键盘数据指令15H
该指令从HD7279A读出当前的按键代码。
前一个字节015H为指令代码,而
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 实验 指导书 课程设计