单片机实验指导书.docx
- 文档编号:9886141
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:133
- 大小:921.84KB
单片机实验指导书.docx
《单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书.docx(133页珍藏版)》请在冰豆网上搜索。
单片机实验指导书
单片机原理与应用
实验指导书
徐爱钧徐阳张利勇编
长江大学工程技术学院信息系
第1章单片机实验系统简介…………………………………………………………………………………………3
1.1仿真实验系统的特点与基本组成…………………………………………………………………………3
1.2实验系统的软件支持………………………………………………………………………………………3
1.3实验系统模块………………………………………………………………………………………………6
第2章基础性实验……………………………………………………………………………………………………17
实验一实验系统基本操作………………………………………………………………………………………17
实验二汇编语言程序设计………………………………………………………………………………………23
实验三P1口应用实验……………………………………………………………………………………………25
实验四外部中断实验……………………………………………………………………………………………28
实验五定时器/计数器的计数功能实验…………………………………………………………………………31
实验六8255输入输出实验………………………………………………………………………………………35
实验七D/A转换实验……………………………………………………………………………………………38
实验八A/D转换实验………………………………………………………………………………………………41
实验九键盘显示实验……………………………………………………………………………………………45
第3章综合性实验………………………………………………………………………………………………………50
实验十电子时钟实验……………………………………………………………………………………………50
实验十一步进电机控制实验……………………………………………………………………………………55
实验十二直流电机转速测量与控制实验………………………………………………………………………59
实验十三电子琴实验………………………………………………………………………………………………67
实验十四串口通信实验……………………………………………………………………………………………71
实验十五温度测量实验…………………………………………………………………………………………76
实验十六点阵液晶显示屏实验实验………………………………………………………………………79
附录实验报告基本要求与书写格式…………………………………………………………………………………90
第1章单片机实验系统简介
1.1实验系统的特点与基本组成
超想-3000TC综合实验仪将所有的实验模块及CPU资源均全力对用户开放,充分满足“验证式”→“模仿式”→“探索式”→“开发式”的由浅入深的各种实验要求。
实验平台作为一个独立的目标系统,能让用户进行脱机验证实验结果的实验,使实验步骤与实际开发环境完全一致,学以致用。
该实验仪对基本实验仅需少量连线就可进行,以减少学员工作量,同时也提供了一些需较多连线的扩展性实验,并在硬件上预留了自主开发实验的空间,以进一步锻炼学员的动手能力。
本实验仪的自检监控能对所有模块进行检测,管理员仅需在键盘上输入各自检程序的代码即可。
综合实验仪新型实用模块:
(1)LCD液晶实验
(2)点阵LED广告屏(3)DS12887实时时钟(4)红外线发送、接收
(5)直流电机恒速(6)电子琴模拟实验(7)串行ROM/I2CROM(8)步进电机变速
传感器实验模块:
(1)温度传感器
(2)压力传感器(3)霍尔传感器(4)红外传感器
传统实验模块:
(1)模数转换A/D0809
(2)数模转换D/A0832(3)8155控制键显(4)V/F转换LM331
(5)串口通讯MAX232(6)音响实验LM386(7)EPROM27C256扩展(8)RAM6264扩展
(9)PWM模块(10)微型打印机接口(选配)
通用实验模块:
(1)模拟信号发生器
(2)开关量发生器(3)发光二极管组(4)信号发生器
(5)74LS138译码器(6)分频器电路(7)LED6位数码管(8)20个键盘组
(9)逻辑笔(10)常用门电路
自由实验模块:
由DIP40锁紧插座及40个插孔组成,CPU所有信号均以插孔方式引出,还设计了常用门电路、晶振源、电源插孔等,可以完成以上实验模块的组合实验以及由实验者自行命题和新器件、新方案的实验,使得实验方式和内容不受限制。
电源
超想-3000TC综合实验仪配备了+5V/2A、+12V/1A、-12V/0.5A的电源,直接使用220V交流电源工作。
1.2实验系统的软件支持
超想-3000TC综合实验仪支持KeiluVision2软件,其性能较其它同类产品优异,特别是兼容ANS1C后,又增加了很多与硬件密切相关的编译特性,使得在8051系列单片机上开发应用程序更为方便和快捷。
在KeiluVision2的平台下,用户源程序的大小不再有任何限制,支持ASM、C、PLM语言混合编程,源文本调试,具有项目管理功能,为用户的资源共享,课题重组提供强有力的手段。
丰富的显示方式,多方位、动态地显示仿真的各个过程,使用极为便利。
为了跟上形势,现在工程师需要掌握不同的项目管理器、编辑器、编译器。
它们由不同的厂家开发,相互不兼容,使用不同的界面,学习使用很吃力。
KeiluVision2调试软件为你提供了一个全集成环境,统一的界面包含一个项目管理器,一个功能强劲的编辑器,以及汇编和调试工具,并提供一个与第三方编译器的接口。
由于风格一致,从而大大节省时间和精力。
恒科KeilC超级仿真器优特点:
1、仿真8031内核的单片机。
2、接支持KeilC51的IDE开发仿真环境,63K用户程序空间。
3、全保留单片机特性,避免仿真正常而实际烧录芯片不正常的问题。
4、仿真频率0—40MHZ晶振可选。
5、程序代码可重复装载。
6、监控程序占用用户资源极少,全速运行不占用资源。
7、可在KeiluVision2下单步、断点、全速,可参考变量、RAM变量、结构变量等。
8、支持汇编、C语言、混合调试。
9、内部存储物理空间为68K,是伟福通用仿真器G6型的7倍,是伟福51专用仿真器的4倍。
10、仿真频率可达40MHZ。
11、支持10个硬件断点。
KEIL软件的安装
将带有KEIL安装软件的光盘放入光驱,打开光驱中名为“keil750AHK(3000TC)”的文件夹再打开setup文件夹,双击setup文件夹中“setup”文件即开始安装。
单击“FullVersion”.。
如图所示:
点击“Next”→“Yes”→”Next”,此时则须序列号(序列号在光盘keil750AHK(3000Tc))文件夹目录下的”sn”文件中’)输入序列号,其他四项输入任意字母。
如图:
点击“Next”开始安装,反复点击Next”,直到Finish即完成安装。
USB驱动的安装:
若使用的仿真器是USB接口的,则需要安装USB驱动。
打开安装光盘中的“安装USB驱动”文件夹,双击“USB_CP2102_XP_2000”开始安装。
1.3实验系统模块
超想-3000TC综合实验仪有丰富的实验电路和灵活的组成方法。
这些电路即可以和51CPU适配板(KeilC超级仿真器)组合,完成MCS51系列实验。
模拟信号发生器:
电位器电路用于产生可变的模拟量。
顺时钟旋转,电压值加大;反之,减小。
减小
加大
138译码器
实验仪的ROM、RAM采用64K空间统一分配地址,程序空间占用前32K(0000—7FFFH),数据空间占用后32K(8000H-0FFFFH),使用两片74LS138译码器对后32K空间进行译码。
地址分配如下:
EPROM27C256:
(0000H-7FFFH)
YC0-YC1(8000H-9FFFH):
6264RAM
YC7(0F000H-0FFFFH):
U17号74LS138选通
YC6(0E000H-0EFFFH):
8155
YC2(0A000H-0AFFFH):
备用
YC3(0B000H-0BFFFH):
备用
YS7(0FE00H-0FFFFH):
DALLAS12887
YS6(0FC00H-0FDFFH):
自检时的点阵LED
YS5(0FA00H-0FBFFH):
LCD液晶显示
YS4(0F800H-0F9FFH):
LCD液晶显示
YS2(0F400H-0F5FFH):
LED发光二极管
YS1(0F200H-0F3FFH):
自检时的DA0832
YS0(0F000H-0F1FFH):
自检时的AD0809
开关量发生器
实验平台上有8只拨动开关K0-K7及相应的驱动电路,以产生“1”、“0”的逻辑电平。
开关向上拨相应插孔输出高电平为“1”,反之,输出低电平为“0”。
向下:
0
信号发生器:
由U3的74LS04、U43的74LS00组成,每按一次带锁开关即产生一个单脉冲。
发光二极管组
实验平台上有8只发光二极管,由U33的74HC245驱动,以显示电平状态。
高电平“1”点亮发光二极管。
高电平“1”点亮
步进电机实验电路
超想-3000TC综合实验仪选用的是四相步进电机,由U25的74LS04和U21、U23的75452驱动。
D/A0832模块
音响模块:
喇叭由U16的LM386驱动。
AD0809模块
RS232通讯模块
TDI
PWM模块
分频器模块:
由74LS74的一组锁存器组成二分频的分频器,另一组的引脚均以插孔方式引出。
如把2D孔与2/Q孔相连还可产生另一个二分频的分频器。
EPROM27256扩展模块
V/F压频转换
RAM6264扩展模块
8155键显模块
DALLAS12887时钟模块
霍尔传感器
直流电机
122X32LCD液晶显示模块
点阵LED模块
压力传感器
温度传感器
微型打印机接口
逻辑笔电路
超想-3000TC综合实验仪上有逻辑测量电路,用于测量各种电平,其中红灯亮表示高电平,绿灯亮表示低电平。
如果两灯同时闪动,表示有脉冲信号;两灯都亮时,表示浮空(高阻态)。
复位电路
红外线发送/接收
LED发光二极管总线驱动
常用逻辑门电路
自由实验插座
超想-3000TC综合实验仪设计了一个扩展实验板,以供自开发实验用,插座全部引脚都被引出到相应的插孔,40芯、32芯、28芯、24芯、20芯、16芯、14芯、8芯通用,并按照各自的封装标明引脚号。
利用这些插座,可对双列直插式的各种微机芯片进行实验。
●
红色:
+5V
直流电源外引插座
总线插孔:
超想-3000TC综合实验仪的所有总线及控制信号均以插孔方式引出,以便进行开放式实验。
88
空间分配
扩展模块
资源分配(138译码)
27C256
0000H-7FFFH
6264
(YC0,YC1)8000H-9FFFH
8155
(YC6)0E000H-0EFFFH
LCD液晶显示
(YS4-YS5)0F800H-0FBFFH
DS12887
(YS7)0FE00H-0FFFFH
LED二极管总线驱动
(YS2)0F400H-0F5FFH
自检时AD0809
(YS0)0F000H-0F1FFH
自检时DA0832
(YS1)0F200H-0F3FFH
自检时点阵LED
(YS6)0FC00H-0FDFFH
自检时微型打印机
YC2(0A000H-0AFFFH)
备用
(YC2)0A000H-0AFFFH
备用
(YC3)0B000H-0BFFFH
第2章基础性实验
实验一熟悉操作环境(八段数码管显示)
将KEIL仿真器上40芯排线一端和实验箱上51CPU板上的40芯排针连接起来,将仿真器连接的USB或串口线与PC机对应的USB或串口连接起来,打开实验箱电源。
启动Vision3进入KEIL软件界面,用鼠标左键点击工具栏“项目”选项中的“新项目”,如下图所示:
输入项目文件名称,并选则保存文件的目录(该目录位置任意,可新建文件夹),如下图所示:
为项目文件选择一个目标器件(ATMEL89C51),如下图所示:
点确定后会弹出一个对话框选择否,如下图所示:
右键点击项目工作区的目标1,再弹出的菜单中选择“为目标‘目标1’选项”如下图所示:
在“为目标‘目标1’设置选项”中,点击“调试”菜单,在此菜单中可选择是使用硬件仿真,还是软件仿真,连接实验箱做实验时选择硬件仿真,点击硬件仿真选项后面的[设置]选项,在此对对话框中选择串口和波特率,串口根据所连电脑来决定。
波特率为38400。
如下图所示:
点击“文件/新建”创建程序文件并输入下面的实验程序:
OUTBITequ0e101h;位控制口
CLK164equ0e102h;段控制口(接164时钟位)
DAT164equ0e102h;段控制口(接164数据位)
INequ0e103h;键盘读入口
LEDBufequ60h;显示缓冲
Numequ70h;显示的数据
DelayTequ75h;
org0000h
ljmpStart
LEDMAP:
;八段管显示码
db3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db7fh,6fh,77h,7ch,39h,5eh,79h,71h
DELAY:
;延时子程序
MOVR6,#0FFH
MOVR7,#00H
DelayLoop:
djnzr7,DelayLoop
djnzr6,DelayLoop
ret
DisplayLED:
movr0,#LEDBuf
movr1,#6;共6个八段管
movr2,#00100000b;从左边开始显示
Loop:
movdptr,#OUTBIT
mova,#00h
movx@dptr,a;关所有八段管
mova,@r0
movB,#8;送164
DLP:
rlca
movr3,a
movacc.0,c
ANLA,#0FDH
movdptr,#DAT164
movx@dptr,a
movdptr,#CLK164
orla,#02h
movx@dptr,a
anla,#0fDh
movx@dptr,a
mova,r3
djnzB,DLP
movdptr,#OUTBIT
mova,r2
movx@dptr,a;显示一位八段管
movr6,#1
LCALLDelay
mova,r2;显示下一位
rra
movr2,a
incr0
djnzr1,Loop
movdptr,#OUTBIT
mova,#0
movx@dptr,a;关所有八段管
ret
Start:
movdptr,#0e100h
mova,#03h
movx@dptr,a
movsp,#40h
movNum,#0
MLoop:
incNum
mova,Num
movb,a
movr0,#LEDBuf
FillBuf:
mova,b
anla,#0fh
movdptr,#LEDMap
movca,@a+dptr;数字转换成显示码
mov@r0,a;显示在码填入显示缓冲
incr0
incb
cjner0,#LEDBuf+6,FillBuf
movDelayT,#30
DispAgain:
LCALLDisplayLED;显示
djnzDelayT,DispAgain
ljmpMLoop
END
输入完成后以.asm为扩展名保存到磁盘中,如下图所示:
右键点击目标1下的“源代码组1”→“添加文件到源代码组1”。
文件类型改为“所有文件”,把源程序添加进去,如下图所示:
文件类型的设置:
源程序示C语言就在“类型”选择C语言,是汇编则选择“汇编语言文件”点击确定。
如下图所示:
点击“编译连接”图标,对项目文件进行编译。
如下图所示:
若编译无误,则点击“调试”→“启动/停止调试”进入调试界面。
如下图所示:
在调试界面中点击“调试/启动/停止调试”,进入调试界面,点击“调试/运行”可看到8段数码管循环显示0—F。
实验二汇编语言程序设计实验
1、拆字程序实验
一、实验目的:
掌握汇编语言设计方法。
二、实验内容:
把8000H地址上的内容拆开,高位送8001H地址的低位,低位送8002H地址的低位,8001H、8002H地址的高位清零.本程序通常在把数据送显示缓冲区时使用。
三、实验器材:
计算机1台
四、实验步骤:
1、按流程图编写程序,以下是通过计算机交叉汇编得到的.LST文件清单,供参考。
2、文件编译连接、装载,用鼠标点击[项目/重建所有目标文件],系统自动进行编译,并弹出信息窗口,若有错误则重新修改再编译;若无错误,点击[调试/启动/停止调试]后进入调试状态。
3、设置观察窗口:
(1)用鼠标点击[视图/存储器窗口],在地址栏中输入[0X8000];
(2)在8000H中写入数据(任意);(3)单步执行观察寄存器和8000H—8002H的变化。
结束
五、程序框图:
七、实验程序:
;把指定字节的高低位拆开分别存放,多用于显示子程序
ORG0000H
MOVDPTR,#8000H;指定的字节
MOVXA,@DPTR
MOVB,A;暂存
SWAPA;交换
ANLA,#0FH;屏敝高位
INCDPTR
MOVX@DPTR,A
INCDPTR
MOVA,B
ANLA,#0FH;指定字节的内容屏敝高位
MOVX@DPTR,A
LOOP:
SJMPLOOP
END
2、数据区传送子程序实验
一、实验目的:
学习Windows平台下的编辑、编译、排错调试方法。
二、实验内容:
把外部扩展RAM(6264)的8000H-807FH中的内容传送到8080H开始的空间中去。
R2.R3存放源RAM区首址,R6.R7存放需传送的字节数,R4.R5存放目的RAM区首址。
结束
三、实验器材:
计算机1台
四、程序框图:
五、实验程序:
;数据传送子程序
ORG0000H
MOVR2,#80H
MOVR3,#00H
MOVR6,#00H
MOVR7,#7FH
MOVR4,#80H
MOVR5,#80H
LOOP0:
MOVDPL,R3
MOVDPH,R2;建立源程序首地址
MOVXA,@DPTR;取数
MOVDPL,R5
MOVDPH,R4;目标首地址
LOOP:
MOVX@DPTR,A;传送
CJNER3,#0FFH,LOOPA
INCR2
LOOPA:
INCR3;源地址加1
CJNER5,#0FFH,LOOP1
INCR4
LOOP1:
INCR5;目地址加1
CJNER7,#00H,LOOP2
CJNER6,#00H,LOOP3
LOOP4:
SJMPLOOP4
LOOP2:
DECR7;字节数减1
SJMPLOOP0
LOOP3:
DECR7
DECR6
SJMPLOOP0;未完继续
END
3、清零内存实验
Y
一、实验目的:
学习Windows软件的调试方法
二、实验内容:
把外部RAM的8000-80FFHRAM空间置零
三、实验器材:
计算机1台
四、程序框图:
五、实验程序:
ORG0000H
MOVR0,#00H
MOVDPTR,#8000H;空间首地址送DPTR
LOOP:
mova,#00h
MOVX@DPTR,A;清零
INCDPTR;DPTR加1
INCR0;字节数加1
CJNER0,#00H,LOOP;连续清256个字节
LOOP1:
SJMPLOOP1
END
实验三P1口应用实验
一、实验目的:
掌握P1口的基本方法和编程。
二、实验内容:
利用P1口输出高低电平,控制对外部装置的控制。
三、实验步骤
1采用P1口作输出
P1口是准双向口,它作为输出口使用时具有锁存功能。
实验所需要LED电平显示电路如图1所示。
实验平台上有8只发光二极管,由U33的74HC245驱动,以显示电平状态。
高电平“1”点亮发光二极管。
高电平“1”点亮
电平显示电路
在实验系统上如下表所示连线。
执行如下程序,发光二极管LED将循环显示。
连线
连接孔1
连接孔2
1
P1.0
L0
2
P1.1
L1
3
P1.2
L2
4
P1.3
L3
连线说明表
四、实验程序:
Loop:
mova,#01h
movr2,#8
Output:
movP1,a
rla
LCALLDelay
djnzr2,Output
ljmpLoop
Delay:
;延时子程序
movr6,#0
movr7,#0
DelayLoop:
djnzr6,DelayLoop
djnzr7,DelayLoop
ret
end
关于延时子程序的时间计算,查指令表可知MOV和DJNZ指令均需用两个机器周期,在6MHz晶振时,一个机器周期时间长度为12/6=2μs,所以上面延时子程序该的执行时间为:
(256×255+2)×2×12÷6≈261ms
2采用P1口作输入和输出
由P1口的准双向口结构可知,当作为输入口时,必须先对它置“1”。
若不先对它置“1”,读入的数据是不正确的。
实验所需要LED电平显示电路和逻辑电平开关电路如图2所示。
实验平台上有8只拨动开关K0-K7及相应的驱动电路,以产生“1”、“0”的逻辑电平。
开关向上拨相应插孔输出高电平为“1”,反之,输出低电平为“0”。
向下:
0
逻辑电平开关电路
在实验系统上如下表所示连线。
执行如下程序,发光二极管LED将随拨动开关的位置而点亮或熄灭。
连线
连接孔1
连接孔2
1
P1.0
k0
2
P1.1
k1
3
P1.2
L0
4
P1.3
L1
连线说明
实验程序
KeyLe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书