单片机实验指导书.docx
- 文档编号:11778914
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:20
- 大小:693.13KB
单片机实验指导书.docx
《单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书.docx(20页珍藏版)》请在冰点文库上搜索。
单片机实验指导书
单片机应用系统设计
实验指导书
机械电子工程实验室编印
(内部教材)
实验须知
一、预习要求
1.实验前认真阅读实验教程中有关内容,明确实验目的和实验任务。
2.每次实验前应有预习报告,未预习者不允许参加实验。
3.预习报告中:
对软件实验,要求画出程序流程图,编好上机程序。
二、实验要求
1.实验是学习“汇编语言程序设计”这门课程的重要环节,实验课请勿迟到,缺席。
2.爱护设备,保持清洁,不随意更换设备。
3.认真完成实验任务,实验结果经教师检查,教师对实验内容提问,对完成者做记录。
4.做实验时,发生事故,应立即切断电源,并马上向教师报告,检查原因,吸取教训。
5.实验完毕,请整理实验设备,再离开实验室。
三、报告要求
每次实验后,应递交一份实验报告,报告中应包括下列内容:
1.实验名称、实验人姓名、学号、班级、所用的设备号。
2.实验目的、任务。
3.程序流程图、程序清单(应加适量注释)。
4.记录和分析实验结果。
5.根据实验目的认真做小结
实验项目名称:
(所属课程:
)
院系:
专业班级:
姓名:
学号:
实验日期:
实验地点:
合作者:
指导教师:
本实验项目成绩:
教师签字:
日期:
(以下为实验报告正文)
一、实验目的
简述本实验要达到的目的。
目的要明确,要注明属哪一类实验(验证型、设计型、综合型、创新型)。
二、实验仪器设备
列出本实验要用到的主要仪器、仪表、实验材料等。
三、实验内容
简述要本实验主要内容,包括实验的方案、依据的原理、采用的方法等。
四、实验步骤
简述实验操作的步骤以及操作中特别注意事项。
五、实验结果
给出实验过程中得到的原始实验数据或结果,并根据需要对原始实验数据或结果进行必要的分析、整理或计算,从而得出本实验最后的结论。
六、讨论
分析实验中出现误差、偏差、异常现象甚至实验失败的原因,实验中自己发现了什么问题,产生了哪些疑问或想法,有什么心得或建议等等。
七、参考文献
列举自己在本次准备实验、进行实验和撰写实验报告过程中用到的参考文献资料。
格式如下:
作者,书名(篇名),出版社(期刊名),出版日期(刊期),页码
实验一软件的认知实验
一、实验目的
初步掌握KeilC51和PLC-单片机-微机原理综合实训装置的操作和使用,能够输入和运行简单的程序。
二、实验仪器设备
PLC-单片机-微机原理综合实训装置、具有一个RS232串行口并安装KeilC51的计算机一台。
三、实验原理及环境
在计算机上已安装KeilC51软件。
这个软件既可以与硬件(PLC-单片机-微机原理综合实训装置)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。
如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。
四、实验内容
1.掌握软件的开发过程
(1)建立一个工程项目选择芯片确定选项。
(2)加入C源文件或汇编源文件。
(3)用项目管理器生成各种应用文件。
(4)检查并修改源文件中的错误。
(5)编译连接通过后进行软件模拟仿真。
(6)编译连接通过后进行硬件仿真。
2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。
3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波。
五、预习要求
1.熟悉使用KeilC51的步骤。
2.理解实验内容2中程序的工作原理。
3.编写实验内容3所需要的程序。
六、实验步骤
以下假定你在E:
\TEST文件夹下学习、运行Keil
1.建立一个工程项目选择芯片确定选项
如图1-1所示:
Project→
NewProject→
输入工程名test→
保存工程文件(鼠标点击保存按钮)
图1-1创建工程名
弹出下一界面。
如图1-2所示:
选CPU厂家(Atmel)→
选CPU型号(89C51),
选好后确定
图1-2选厂家,选CPU型号
接着选晶振频率及生成HEX文件等。
如图1-3所示:
Project→
OptionsforTarget‘Target1’…→
在Target中→
更改CPU晶振频率为12MHz→⑤在Output中→⑥选择生成HEX格式其它采用缺省设置→⑦选好后确定。
图1-3选晶振频率及生成HEX文件等窗口
2.建立汇编源文件
如图1-4所示:
File→
New,
弹出源文件编辑窗口。
输入以下源文件:
ORG0000H
AGAIN:
CPLP1.0
MOVR0,#10;延时0.5秒
LOOP1:
MOVR1,#100
LOOP2:
MOVR2,#250
DJNZR2,$
DJNZR1,LOOP2
DJNZR0,LOOP1
SJMPAGAIN
END
图1-4进入编辑源文件窗口
源程序编写完后,
File→
SaveAs将文件以test.asm保存在E:
\test目录下,获得汇编语言源程序。
3.用项目管理器生成(编译)各种应用文件
点击Target1前之+号→出现
SourceGroup1→
点击它并按鼠标右键会生弹出下拉菜单见图1-5编译文件文件窗口→选择
AddFilestoGroup‘SourceGroup1’→
点击add向项目中添加Test.asm源文件→⑥点击close关闭AddFilestoGroup‘SourceGroup1’窗口→
在SourceGroup1前会出现一个+号→
点击之弹出test.asm文件名点击该文件名→
主窗口中会出现该程序
图1-5进入编译文件文件窗口
编译:
Project→Buildtarget就会生成一系列到文件如OBJ文件LST文件HEX文件等。
4.检查并修改源文件中的错误
如果在源文件中存在错误在Output窗口中会出现错误提示信息,你可以在源程序中进行修改,然后存盘后重新Build观察错误提示信息。
5.编译连接通过后进行软件模拟仿真
Debug→Start/StopDebugSession进入软件模拟的仿真窗口,可使用单步、设断点来进行调试和除错。
6.编译连接通过后进行硬件仿真
实验箱的仿真串口必须与PC机串口连接,通电,拨位开关K10必须拨在B端,连接P10和L00,连接P11和L01,设置硬件实时仿真调试选项:
Project→OptionsforTarget‘Targetl’→Debug.硬件实时仿真调试选项窗口,见图1-5选硬件仿真选项,按确定按钮确定。
图1-5硬件实时仿真调试选项窗口
进入硬件实时调试窗口后,可打开各种观察窗口,进行单步断点运行到光标连续执行等操作,无误后可连续运行观察LED发光管的显示效果。
注意退出时须按单片机的复位按键SS10,在进行硬件连接前最好也先按单片机的复位按键SS10。
7.修改以上程序,实现同时在P1.0和P1.1上各输出一个频率为1Hz但电平状态相反的方波。
重要提示:
1.指令中的“,:
;”是西文字符,切不可使用中文符号;数字“0”与字符“o”不可混淆。
2.以上菜单操作都可以点击工具栏中的相应图标快速实现。
3.退出硬件连接可以按SS10,在进行硬件连接前最好也按一次SS10。
4.生成源文件的方法:
从键盘上输入源文件;
用其他编辑软件(包括MicrosoftWord)编辑源文件,然后复制到KeilC51文件窗口中,使Word文档变为TXT文档,这种方法最好,可方便输入中文注释;
也可装入在其它编辑软件中编辑的源文件如:
*.asm/*.a51/*.c...等。
实验二电子时钟实验
一、实验目的
1.掌握定时器的使用和编程方法;
2.掌握中断处理程序的编程方法。
二、实验内容
根据系统提供的显示电路,利用单片机的定时器设计一个电子时钟。
格式如下:
XXXXXX由左向右分别为:
时、分、秒。
三、实验要求
根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明
使用单片机内部计数器的定时器功能,编程设置主要针对定时器/计数器工作方式寄存器TMOD。
具体为:
工作方式选择位,设置为方式2;计数/定时方式选择位,设置为定时器工作方式。
电子时钟每一秒钟更新一次,因此MCU须产生一秒钟定时,工程上常采用如下方法:
1.定时器使用方式一,设系统使用12MHz晶振,可使T0或T1产生50毫秒钟定时中断,再在中断服务程序中,对中断次数进行计数,计数到20次即可产生一秒钟定时。
2.定时器使用方式二,定时器每100uS中断一次,在中断服务程序中,对中断次数进行计数,100uS计数10000次就是1秒。
本实验采用第二种方法定时。
本实验需要用到D10(C)单片机最小应用系统模块和D10(A1)动态数码管显示模块。
五、实验预习要求
学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。
六、实验步骤
1.用8P数据线分别连接单片机最小应用系统模块的JD4C(P0口)、JD1C(P1口)到动态数码显示模块的JD1A1、JD2A1,EA控制脚应接高电平。
2.打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加源程序“TH43_实时时钟.ASM”,编译无误后,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中。
实验现象:
动态数码显示模块显示时、分、秒值。
七、实验参考程序(见光盘中的程序文件夹)
本实验参考程序“TH43_电子时钟.ASM”。
LEDBufEQU60H;显示缓冲
HourEQU40H
MinuteEQU41H
SecondEQU42H
C100usEQU43H
TickEQU10000
T100usEQU256-92
LJMPStart
ORG000BH
T0Int:
PUSHPSW
PUSHACC
MOVA,C100us+1
JNZGoon
DECC100us
Goon:
DECC100us+1
MOVA,C100us
ORLA,C100us+1
JNZExit
MOVC100us,#27H;#high(Tick)
MOVC100us+1,#10H;#low(Tick)
INCSecond
MOVA,Second
CJNEA,#60,Exit
MOVSecond,#0
INCMinute
MOVA,Minute
CJNEA,#60,Exit
MOVMinute,#0
INCHour
MOVA,Hour
CJNEA,#24,Exit
MOVHour,#0
Exit:
POPACC
POPPSW
RETI
Delay:
;延时子程序
MOVR7,#0FFH
DelayLoop:
DJNZR7,DelayLoop
DJNZR6,DelayLoop
RET
LEDMAP:
;八段管显示码
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DB7FH,6FH,77H,7CH,39H,5EH,79H,71H
DisplayLED:
MOVR0,#LEDBuf
MOVR1,#6;共6个八段管
MOVR2,#00100000B;从左边开始显示
Loop:
MOVP1,#0
MOVA,@r0
MOVP0,A
MOVA,R2
MOVP1,A;显示一位八段管
MOVR6,#01H
ACALLDelay
MOVA,R2;显示下一位
RRA
MOVR2,A
INCR0
DJNZR1,Loop
RET
;===============================================
ToLED:
MOVDPTR,#LEDMap
MOVCA,@A+DPTR
RET
Start:
MOVTMOD,#02h;模式2,定时器
MOVTH0,#T100us
MOVTL0,#T100us
MOVIE,#10000010b;EA=1,IT0=1
MOVHour,#0
MOVMinute,#0
MOVSecond,#0
MOVC100us,#27h;#high(Tick)
MOVC100us+1,#10h;#low(Tick)
SETBTR0;启动定时器0
MLoop:
MOVA,Hour
MOVB,#10
DIVAB
ACALLToLED
MOVLEDBuf,A
MOVA,B
ACALLToLED
ORLA,#80H
MOVLEDBuf+1,A
MOVA,Minute
MOVB,#10
DIVAB
ACALLToLED
MOVLEDBuf+2,A
MOVA,B
ACALLToLED
ORLA,#80H
MOVLEDBuf+3,A
MOVA,Second
MOVB,#10
DIVAB
ACALLToLED
MOVLEDBuf+4,A
MOVA,B
ACALLToLED
MOVLEDBuf+5,A
ACALLDisplayLED
LJMPMLoop
END
实验三串行口通信实验
一、实验目的
1.掌握8051串行口的工作原理和编程方法;
2.了解RS-232串行通信接口芯片的应用。
二、实验内容
8X51串行口经RS232电平转换后,与PC机串行口相连。
PC机可使用串口调试应用软件如:
“WINDOWS超级终端”、“串口调试助手”、“串口精灵”等,实现上位机与下位机的通讯。
本实验使用查询法接收和发送资料。
上位机发出指定字符,下位机收到后,加一运算后回传给PC机。
波特率设为4800。
三、实验要求
根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图
8X51串行口经RS232电平转换后,与PC机串行口相连,使用2、3平行串口线。
RS232串口通信电路
五、实验预习要求
学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。
六、实验步骤
1.用导线分别连接D10(C)单片机最小应用系统的RXD、TXD到D10(E8)RS232模块的RXD、TXD;用2、3平行串口线连接D10(E8)RS232模块的COM1E8到PC机串口座,EA控制脚应接高电平
2.打开Keil仿真软件,建立本实验的项目文件,添加源程序并编译,把可执行文件(hex文件)用ISP下载器烧录到AT89S52芯片中运行。
实验现象:
.打开串口调试应用程序,选择下列属性:
(注意选择通信串口)
波特率——4800数据位——8
奇偶校验——无停止位——1
在‘发送的字符/数据’区输入一个字符,点击手动发送或自动发送,接收区收到加一后的数据。
七、实验参考程序(见光盘中的程序文件夹)
本实验参考程序“TH35_RS232.ASM”。
实验四ADC0809模数转换实验
一、实验目的
1.掌握ADC0809模/数转换芯片与单片机的连接方法及ADC0809的典型应用;
2.掌握用查询方式、中断方式完成模/数转换程序的编写方法。
二、实验内容
利用系统提供的ADC0809接口电路,实现单片机模数转换。
模拟信号为0~5V电位器分压输出,单片机控制ADC0809读取模拟信号,并在数码管上用十进制形式显示出来。
三、实验要求
根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图
1)A/D转换芯片ADC0809简介
本实验使用ADC0809模数转换器,ADC0809是8通道8位CMOS逐次逼近式A/D转换芯片,片内有模拟量通道选择开关及相应的通道锁存、译码电路,A/D转换后的数据由三态锁存器输出,由于片内没有时钟需外接时钟信号。
芯片的引脚如右图,各引脚功能如下:
IN0~IN7:
八路模拟信号输入端。
ADD-A、ADD-B、ADD-C:
三位地址码输入端。
CLOCK:
外部时钟输入端。
CLOCK输入频率范围在10~1280KHz,典型值为640KHz,此时A/D转换时间为100us。
51单片机ALE直接或分频后可与CLOCK相连。
D0~D7:
数字量输出端。
OE:
A/D转换结果输出允许控制端。
当OE为高电平时,允许A/D转换结果从D0~D7端输出。
ADC0809引脚图
ALE:
地址锁存允许信号输入端。
八路模拟通道地址由A、B、C输入,在ALE信号有效时将该八路地址锁存。
START:
启动A/D转换信号输入端。
当START端输入一个正脉冲时,将进行A/D转换。
EOC:
A/D转换结束信号输出端。
当A/D转换结束后,EOC输出高电平。
Vref(+)、Vref(-):
正负基准电压输入端。
基准正电压的典型值为+5V。
ADC0809模数转换电路
五、实验预习要求
学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。
六、实验步骤
1.D10(C)单片机最小应用系统的P0口JD4C接D10(D2)A/D转换的D0~D7口JD1D2,单片机最小应用系统的Q0~Q7口JD7C接0809的A0~A7口JD2A2,单片机最小应用系统的WR、RD、P2.0、ALE、INT1分别接A/D转换的WR、RD、CS、CLK、EOC。
AIN0接可调电源模块A2区的输出端(AIN0也可在程序运行之后接),单片机最小应用系统的RXD、TXD分别接D10(A2)串行静态显示的DIN、CLK。
打开单片机最小应用系统、并行A/D转换的电源开关,EA控制脚应接高电平。
2.打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加TH30_AD0809.ASM源程序,进行编译,直到编译无误,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中。
4.实验现象:
8LED静态显示“ADXX”,“XX”为AD转换后的值,调节模拟信号输入端的电位器旋钮,显示值随着变化,顺时针旋转值增大,AD转换值的范围是00~FF。
七、实验参考程序(见光盘中的程序文件夹)
本实验参考程序“TH30_0809.ASM”。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书