单片机实验指导书 经典版22.docx
- 文档编号:25236753
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:38
- 大小:412.49KB
单片机实验指导书 经典版22.docx
《单片机实验指导书 经典版22.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书 经典版22.docx(38页珍藏版)》请在冰豆网上搜索。
单片机实验指导书经典版22
单片机原理及应用
实验指导书
2011年4月
目录
一、实验环境介绍1
1.1Keil集成开发环境介绍1
1.2G2010+实验箱介绍10
1.3EasyProbe8052F仿真器介绍11
二、实验内容12
实验一练习使用集成调试软件12
实验二汇编语言程序设计13
实验三简单输入/输出实验14
实验四外部中断实验16
实验五定时器/计数器应用实验18
实验六串行口应用实验21
实验七C51编程实验24
实验八交通灯控制综合实验25
三、附录26
一、实验环境介绍
1.1Keil集成开发环境介绍
Keil集成开发环境是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编语言、PLM语言、C语言的程序设计,界面友好,易学易用。
(1)建立工作文件夹
在规定的盘符建立一个以自己学号命名的文件夹,作为工作文件夹,将日后实验所有的文件都存放在该文件夹中。
(2)进入集成开发环境
双击桌面图标
,进入uVision2集成开发环境。
(3)新建工程
选择菜单“工程—新建工程”,弹出“新建工程”对话框;
在“保存在”下拉列表中选择自己的工作文件夹,在“文件名”文本框中键入工程名(不需要键入扩展名,扩展名默认为.uv2),单击“保存”按钮,关闭“新建工程”对话框,弹出“为目标‘target1’选择设备”对话框,选择目标芯片型号;
选择Atmel公司的89C52芯片,单击“确定”按钮,关闭对话框,完成新建工程。
(4)选择调试方式
单击“目标选项”按钮
,弹出“目标’Target1’属性”对话框;单击“调试”标签,选择调试方式。
若使用软件模拟方式,则选中“S使用仿真器”,其他选项保持默认状态,不要随意更改;若使用硬件仿真器调试,则选中“U使用”,并在其后的下拉列表中选择“MicetekDriver”,再选中“启动时加载程序”和“运行到main()”,其他选项保持默认状态,不要随意更改。
单击“确定”按钮,关闭该窗口。
(5)新建源程序
单击“新建文件”按钮
,在弹出的文本窗口中输入汇编语言源程序;
输入完毕后,单击“保存”按钮
,弹出“另存”对话框;
确认“保存在”为自己的工作文件夹,在“文件名”文本框中键入源程序文件名和扩展名(一定要输入扩展名,汇编语言源程序的扩展名为.ASM);单击“保存”按钮,关闭对话框,保存源程序。
(6)将源程序添加到工程中
右键单击“工程窗口”中的“SourceGroup1”,在弹出的菜单中选择“增加文件到组”;(注:
软件汉化有误)
弹出“增加文件到组”对话框;
在“文件类型”下拉列表中选择“Asm源文件”;
选中欲添加的源程序,单击“Add”按钮,源程序添加到工程中。
但是,该对话框并不关闭,等待用户继续添加其他程序。
添加完毕后,单击“关闭”按钮,关闭对话框。
“工程窗口”中,“SourceGroup1”下将出现该源程序文件名。
若对同一个文件二次添加,则会弹出如下警告框。
(7)构造
单击“构造所有目标文件夹”按钮
,对原程序进行编译和连接,构造结果将在“构造”窗口中显示。
如果程序有语法错误,则会指出错误类型及所在行。
修改后,重新构造,直至没有任何语法错误。
(8)开始调试
单击“开始/停止调试”按钮
,进入调试状态。
在调试状态下,“构造工具栏”变为“调试工具栏”。
通过单步运行,查看寄存器、存储器的值,判断程序是否运行正确。
若不正确,找出问题所在,单击“开始/停止调试”按钮
,停止调试,进入编辑状态,修改程序,重新构造、调试。
(9)查看寄存器
进入调试状态后,“工程窗口”变为“寄存器窗口”,可以查看各寄存器的值。
(10)查看存储器
单击“存储器窗口”按钮
,打开存储器窗口;该窗口共有4个标签,可显示4块存储器空间。
单击一个标签,按如下格式在地址栏中键入要查看的存储器单元的类型和地址。
片内数据存储器
I:
地址
片外数据存储器
X:
地址
程序存储器
C:
地址
例如:
要查看片内数据存储器30H单元的值,则键入I:
30H
若要人为修改某存储单元的值,可右键单击该单元,在弹出的菜单中选择“更新存储器”,在弹出的文本框中输入该单元的新值,单击“确定”即可。
(11)单步运行
在调试状态下,源程序的左边有一个黄色的箭头,指示当前程序执行的位置,即将要执行的指令。
单击“单步”按钮
,程序执行一条指令,黄色箭头下移一行。
寄存器和存储器的值的变化情况显示在相应位置。
执行过的指令左边用一绿色方块标记。
(12)运行到光标行
若想快速、连续执行若干条指令,可将光标定位在这些指令的最后一条指令处,单击“运行到光标行”按钮
。
(13)全速运行
对于有些程序,只有全速运行才能实现其功能,这时只需单击“运行”按钮
即可;若要暂停运行,单击“暂停”按钮
。
(14)程序复位
若要重新开始执行程序,可单击复位按钮
,使PC=0。
(15)将源程序从工程中删除
一个程序调试成功后,若要调试另一个程序,可不必新建工程,只需新建一个源程序,添加到原有的工程中,同时,要将前一个源程序从工程中删除。
在“工程窗口”中,单击要删除的源程序名,按“Delete”键,在弹出的对话框中选择“确定”即可。
对于初学者,一个工程中一般只包含一个源程序,应将多余的源程序删除。
1.2G2010+实验箱介绍
SICElab-G2010+实验箱是一个开放式综合实验/仿真系统,具有如下个模块。
新型实用模块:
(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)微型打印机接口(10)PWM模块
通用实验模块:
(1)模拟信号发生器
(2)开关量发生器
(3)发光二极管组(4)信号发生器
(5)74LS138译码器(6)分频器电路
(7)LED6位数码管(8)20个键盘组
(9)逻辑笔(10)门电路
自由实验模块:
由DIP40锁紧插座及240个插孔组成,CPU所有信号均以插孔方式引出,还设计了常用门电路、晶振源、电源插孔等,可以完成以上实验模块的组合实验以及由实验者自行命题和新器件、新方案的实验,使得实验方式和内容不受限制。
1.3EasyProbe8052F仿真器介绍
EasyProbe8052F仿真器是单片机专业用仿真器,具有高性能仿真存储区,实时硬件断点,实时追踪记录功能,支持标准8031/32/51/52/54/58微控制器。
系统性能
*双CPU架构,全开放设计
*完全实时仿真,最高速度可达40MHz
*轻巧实用,可以不使用仿真电缆而直接插入用户仿真系统,便于现场调试
*以115200bps通过RS232串口与主机通信
*支持8XC31/32/51/52/58及78C31/32/51/52/54/58等51系列内核的CPU
*尺寸:
9.0cm宽:
6.5cm高:
3.0cm,重:
125g
高性能仿真存储区
*128K仿真存储区,包括64K程序存储区和64K数据存储区
*可按下列属性进行映射:
-Overlay(Internal):
内部
-Target(External):
外部
*目标处理器可完整保留自身的存储区和I/O空间
*全空间64K个实时硬件断点
原始程序级开发功能
64K硬件执行断点,支持所有程序空间
可对原始程序或C语言进行单步操作(StepInto/Over)
循环单步操作(Cycle)后可显示地址总线、数据总线、周期状态、介面状态及外部追踪位状态资讯
单机执行功能
内建Flash,可下载程序至仿真器中,下载后可单机执行程序,不须连接PC
二、实验内容
实验一练习使用集成调试软件
1.实验目的
(1)练习使用Keil集成调试软件;
(2)熟悉汇编语言指令。
2.实验内容
按照实验指导书的说明,结合附录中的例子,练习使用Keil集成调试软件,为以后的实验打下基础。
3.实验器材
计算机1台
4.实验步骤
(1)新建工程;
(2)输入源程序;
(3)将源程序添加到工程中;
(4)构造;
(5)运行程序;
(6)观察记录运行过程和结果。
5.实验报告要求
(1)列出源程序,并加以注释;
(2)结构复杂的程序,画出流程图;
(3)对实验过程和结果进行分析;
(4)写出心得体会。
实验二汇编语言程序设计
1.实验目的
(1)进一步熟悉汇编语言指令的功能。
(2)掌握各种结构汇编程序设计方法。
2.实验内容
(1)编写程序,计算30H、31H单元和32H、33H单元中两个4位BCD码的和,结果存放到34H、35H单元;
(2)编写程序,将30H、31H、32H单元中的3个数按从小到大的顺序排列,结果仍存放在这3个单元。
(3)编写程序,查找30H~39H单元10个数中奇数的个数,结果存放到40H单元;
(4)编写程序,查表得到两个数的乘积。
3.实验器材
计算机1台
4.实验步骤
(1)新建工程
(2)输入源程序
(3)将源程序添加到工程中
(4)构造
(5)运行程序
(6)观察、记录程序运行的过程和结果
实验三简单输入/输出实验
1.实验目的
(1)进一步理解I/O口的工作原理
(2)掌握输入/输出程序的设计方法
2.实验内容
编写程序,实现开关控制发光二极管的亮、灭。
3.实验器材
(1)计算机1台
(2)仿真器1台(3)实验箱1台
4.硬件连线
开关P1.0
P1.1发光二极管
5.实验程序
程序1
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVC,P1.0
MOVP1.1,C
SJMPMAIN
END
程序2
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
JBP1.0,LEDON
CLRP1.1
SJMPMAIN
LEDON:
SETBP1.1
SJMPMAIN
END
6.实验步骤
(1)关闭实验箱电源,按题目要求接线;
(2)打开实验箱电源,注意确认电源指示灯正常点亮;
(3)进入集成开发环境,新建工程,注意必须使用硬件仿真器调试方式;
(4)输入程序,构造,单步运行,检查系统是否工作正常;
(5)全速运行程序,拨动开关,控制发光二极管的亮、灭;
(6)停止运行程序,退出调试状态,关闭实验箱电源,改变接线,做其他实验。
7.思考与发挥
(1)如何实现多个开关控制多个发光二极管?
(2)如何实现8个发光二极管循环点亮?
实验四外部中断实验
1.实验目的
(1)进一步了解外部中断的结构和工作原理;
(2)掌握外部中断的应用程序设计方法。
2.实验内容
编写程序,利用脉冲按钮产生中断,观察外部中断的响应、处理及返回过程。
3.实验器材
(1)计算机1台
(2)仿真器1台(3)实验箱1台
4.硬件连线
脉冲输出
(P3.2)引脚
5.实验程序
ORG0000H
LJMPMAIN
ORG0003H
LJMPINT0_SERVE
ORG0030H
MAIN:
SETBEX0
SETBIT0
SETBEA
LOOP:
MOVA,#01H
MOVA,#02H
MOVA,#03H
SJMPLOOP
INT0_SERVE:
MOV30H,A
RETI
END
6.实验方法
将光标定位在
LJMPINT0_SERVE
指令处,按下“运行到光标行”按钮,程序全速运行,等待外部中断。
按动脉冲按钮,产生下降沿,程序将中断运行,返回监控状态。
继续单步执行程序,观察中断程序的执行及中断返回过程。
查看累加器A或30H单元的值,可知主程序的中断位置。
重复进行实验,中断位置会不同。
7.思考与发挥
(1)设计一个实验,按动按钮,LED灯亮一段时间。
(2)如何通过实验验证外部中断低电平触发方式?
实验五定时器/计数器应用实验
定时器应用
1.实验目的
(1)进一步了解定时器的结构和工作原理;
(2)掌握定时器的应用程序设计方法。
2.实验内容
编写定时程序,利用音响电路产生不同频率的声音
3.实验器材
(1)计算机1台
(2)仿真器1台(3)实验箱1台
4.硬件连线
P1.0音响输入
5.实验程序
查询方式(TIM0_JNB.ASM)
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVTMOD,#00000010B
MOVTH0,#80H
MOVTL0,#80H
SETBTR0
LOOP:
JNBTF0,$
CLRTF0
CPLP1.0
SJMPLOOP
END
中断方式(TIM0_INT.ASM)
ORG0000H
LJMPMAIN
ORG000BH
LJMPTIM0
ORG0030H
MAIN:
MOVTMOD,#00000010B
MOVTH0,#80H
MOVTL0,#80H
SETBET0
SETBEA
SETBTR0
SJMP$
TIM0:
CPLP1.0
RETI
END
6.实验方法
全速运行程序,从喇叭中发出一定频率的声音。
7.思考与发挥
(1)如何改变声音频率?
(2)计数初值变大,声音频率将如何变化?
(3)如何延长定时时间,使发光二极管闪亮?
计数器应用
1.实验目的
(1)进一步了解计数器的结构和工作原理;
(2)掌握计数器的应用程序设计方法。
2.实验内容
编写计数程序,记录按键次数。
3.实验器材
(1)计算机1台
(2)仿真器1台(3)实验箱1台
4.硬件连线
脉冲输出T0(P3.4)引脚
P1.0发光二极管
5.实验程序
ORG0000H
LJMPMAIN
ORG000BH
LJMPCNT0
ORG0030H
MAIN:
MOVTMOD,#00000101B
MOVTH0,#0FFH
MOVTL0,#0FDH
SETBET0
SETBEA
SETBTR0
SJMP$
CNT0:
CPLP1.0
MOVTH0,#0FFH
MOVTL0,#0FDH
RETI
END
6.实验方法
全速运行程序,按动脉冲按钮,每发出3个脉冲,发光二极管改变一次状态。
7.思考与发挥
(1)若要求每发出5个脉冲,发光二极管改变一次状态,如何修改程序?
(2)如果改为用计数器1计数,接线和程序要如何修改?
实验六串行口应用实验
1.实验目的
(1)进一步了解串行口的结构和工作原理;
(2)掌握串行口的应用程序设计方法。
2.实验内容
利用8031单片机串行口,实现两个实验台之间的串行通讯。
其中一个实验台作为发送方,另一侧为接收方。
发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。
3.实验器材
(1)计算机1台
(2)仿真器1台(3)实验箱1台
4.硬件连线
方案一:
单片机MAX232
P3.0——RXD
P3.1——TXD
两台实验箱用通讯电缆连接
方案二:
甲机乙机
TXD(P3.1)——RXD(P3.0)
RXD(P3.0)——TXD(P3.1)
GND——GND
5.实验程序
发送程序(查询方式)
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSCON,#10000000B
MOVA,#12H
MOVSBUF,A
JNBTI,$
CLRTI
SJMP$
END
发送程序(中断方式)
ORG0000H
LJMPMAIN
ORG0023H
LJMPSEND
ORG0030H
MAIN:
MOVSCON,#10000000B
MOVA,#12H
MOVSBUF,A
SETBES
SETBEA
SJMP$
SEND:
CLRTI
RETI
END
接收程序(查询方式)
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVSCON,#10010000B
JNBRI,$
CLRRI
MOVA,SBUF
SJMP$
END
接收程序(中断方式)
ORG0000H
LJMPMAIN
ORG0023H
LJMPRECEIVE
ORG0030H
MAIN:
MOVSCON,#10010000B
SETBES
SETBEA
SJMP$
RECEIVE:
CLRRI
MOVA,SBUF
RETI
END
6.实验方法
接收方先运行,把光标定位在
MOVA,SBUF
指令的下一条指令处,按“运行到光标行”按钮等待接收数据。
发送方后运行,把光标定位在
CLRTI
指令处,按“运行到光标行”按钮,程序很快运行结束,数据发送完毕。
接收方接收到数据后,程序中断运行,返回监控状态,查看累加器A中的内容是否为发送方发送的数据。
7.思考与发挥
(1)发送方是否可以先运行?
(2)编写程序发送一组数据。
(3)设计一个实验,用甲机的开关控制乙机的LED灯。
实验七C51编程实验
1.实验目的
初步掌握C51程序设计方法。
2.实验内容
编写并调试出一个C51实验程序。
3.实验器材
(1)计算机1台
(2)仿真器1台(3)实验箱1台
4.实验程序
main()
{
intx,y,z;
x=10;
y=20;
z=x+y;
x++;
y--;
while
(1);
}
本例中main是主函数名,要执行的主函数的内容称为主函数体,主函数体用大括号{}括起来。
函数体中包含若干条将被执行的程序语句,每条语句都必须以分号为结束符。
5.实验方法
保存源程序时,输入扩展名.C;
使用观察窗口查看变量的值。
按“查看调用堆栈窗口”按钮
打开观察窗口;在“局部”标签中显示出变量的值;或者,右键单击程序中的变量名,在弹出的菜单中选择“增加到观察窗口”—“#1”或“#2”。
6.思考与发挥
用C51语言编写一个数据排序程序。
//#include
main()
{
inta[3]={5,100,20};
inti,j;
floattemp;
for(i=0;i<3;i++)
{
for(j=i+1;j<3;j++)
{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机实验指导书 经典版22 单片机 实验 指导书 经典 22