单片机实验指导书.docx
《单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书.docx(30页珍藏版)》请在冰豆网上搜索。
单片机实验指导书
实验一系统认识实验
一、实验目的
1.学习KeilC51编译环境的使用;
2.学习STC单片机的下载软件STC-ISP的使用;
3.掌握51单片机输出端口的使用方法。
二、实验内容
任选单片机的一组I/O端口,连接LED发光二极管,编写程序实现8个LED按二进制加1点亮。
三、接线方案
单片机P10~P17/C51单片机接L0~L7/LED显示,如下图:
图1-1实验线路
四、实验原理
51单片机有4个8位的并行I/O端口:
P0、P1、P2、P3,在不扩展存储器、I/O端口,在不使用定时器、中断、串行口时,4个并行端口,32根口线均可用作输入或输出。
作为输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。
例如P0接有一个输入设备,从P0口输入数据至累加器A中,程序为:
MOVP0,#0FFH
MOVA,P0
若将P0.0位的数据传送至C中,程序为:
SETBP0.0
MOVC,P0.0
五、实验步骤
1、连接串行通信电缆和电源线;
2、根据图1-1实验线路进行电路连接;
3、将C51单片机核心板上的三个开关分别拨到“独立”、“运行”“单片机”;
4、打开实验箱上的电源开关。
5、利用KeilC51创建实验程序,并进行编译生成后缀为.HEX的文件;
6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;
7、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
六、参考程序
ORG0000H;程序的开始
LJMPMAIN;转入主程序
ORG0200H;主程序的开始
MAIN:
MOVP1,#00H;P1口做准备
M1:
INCP1;P1口连接输出计数,
LCALLDELAY;转入延时子程序
LJMPM1;循环
DELAY:
MOVR5,#255;延时子程序
D1:
MOVR6,#255
DJNZR6,$
DJNZR5,D1
RET
END;程序体结束
七、思考题
1、利用其他I/O口实现LED加1点亮功能;
2、利用P1端口实现流水灯(左移或右移)功能;
3、实现LED其他点亮功能。
附录:
一、KeilC51编程软件使用说明
KeilC51编程软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、C51语言,界面友好,易学易用。
1、启动KeilC51编程软件,出现编辑界面;
2、建立一个新工程,单击Project菜单,在弹出的下拉菜单中选中NewuVisionProject选项。
3、然后选择保存路径,输入工程文件名,点击“保存”;
4、弹出单片机选择框,选择对应的单片机型号,并点“OK”;
5、完成后,屏幕出现编辑环境;
6、点击“File”菜单,在下拉菜单中点击“New”选项;
7、在“Text1”中编写实验程序,完成后保存文件,要保存在所建的工程文件夹中。
在“文件名”栏中输入欲使用的文件名,同时必须输入正确的扩展名。
注意:
如果使用C语言编写程序,则扩展名为.C;如果用汇编语言编写程序,则扩展名为.ASM;
8、回到编辑界面,单击“Target1”前面“+”号,然后在“SourceGroup1”上单击右键,弹出如下菜单;
9、单击“AddFiletoFroup‘SourceGroup1”选择实验程序“SY1.ASM”,然后单击“Add”,则项目中多出SY1.ASM子项;
10、单击“Project”菜单,在下拉菜单中单击“OptionsforTarget‘Target1’”;
11、在“OptionsforTarget‘Target1’”的选项中选择“Output”选项,并在“CreateHEXFile”选项前打上“√”,然后点击“OK”;
12、单击“Project”菜单,在下拉菜单中单击“Buildtarget”选项,若程序无误,编程成功后,则生成后缀为.HEX的文件,该文件是单片机下载文件。
二、STC-ISP下载软件的使用说明
1、打开“STC-ISP”下载软件,界面如下;
2、选择单片机型号,在单片机型号的下拉按钮上单击,选择一致的单片机型号,如:
STC89C52RC;
3、选择串口,在串口选择时,根据设备所接的串口号进行选择,如:
COM1、COM2、USBSerialPort(COM3);
4、单击“打开程序文件”,找到所见项目文件夹,选中后缀为.HEX的文件,并单击打开;
5、单击“下载/编程”按钮,将.HEX文件下载到单片机的ROM中,注意,在单击“下载/编程”按钮后,需要将单片机进行一次冷启动(即:
将实验箱电源关掉,稍等片刻再打开),程序才能下载成功;
6、下载成功后,程序则在单片机内运行,观察实验箱上的实验结果。
实验二端口I/O输入输出实验
一、实验目的
1.掌握51单片机输入/输出端口的使用方法;
2.学习蜂鸣器和继电器的控制电路设计
3.掌握51单片机I/O使用的编程方法
二、实验内容
选择单片机的某个I/O端口,连接实验设备上的按键、蜂鸣器、继电器,编写程序实现按键控制继电器和蜂鸣器。
三、接线方案
单片机P0.0接继电器控制端;
单片机P0.1接蜂鸣器控制端;
P2.6接按键1(单脉冲输出端1);
P2.7接按键2(单脉冲输出端2)。
(注:
连接蜂鸣器电路不要选用P2和P3口,声音偏小、不响)
图2-1实验线路
图2-2继电器电路和蜂鸣器电路
四、实验步骤
1、连接串行通信电缆盒电源线;
2、根据图2-1实验线路进行电路连接;
3、将C51单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”;
4、打开实验箱上的电源开关。
5、利用KeilC51创建实验程序,并进行编译生产后缀为.HEX的文件;
6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;
7、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
五、参考程序
KEY1EQUP2.7;定义按键1
KEY2EQUP2.6;定义按键2
SPKEQUP0.1;定义蜂鸣器
JDQEQUP0.0;定义继电器
ORG0000H
LJMPMAIN
ORG0100H
MAIN:
JNBKEY1,M2
M1:
CLRJDQ;按键1松开,继电器吸合
LJMPM3
M2:
SETBJDQ;按键1按下,继电器断开
M3:
JNBKEY2,M4
CLRSPK;按键2松开,蜂鸣器响
LJMPMAIN
M4:
SETBSPK;按键2按下,蜂鸣器停
LJMPMAIN;循环扫描按键
END
六、思考题
1、利用其他I/O口实现控制功能;
2、利用按键实现以下功能,要求:
按键1作为蜂鸣器和继电器的启动按钮;按键2作为蜂鸣器和继电器的停止按钮。
蜂鸣器和继电器启动后自动工作,每隔1秒启动一次(延时方式实现)。
3、实现其他创新功能。
实验三外部中断实验
一、实验目的
1.掌握51单片机外部中断的使用方法。
二、实验内容
1.实验电路如图3-1所示,通过用手动逐个向单片机的
输入单脉冲,申请中断。
每中断一次,使8051单片机的P1口的数值加1。
2.接线方案
P1.0~P1.7/C51单片机接L0~L7/LED显示;
INT0/C51单片机接单脉冲。
图3-1实验线路
三、实验原理
当单片机的外部中断口(INT0)有电平变化时,单片机程序会进入中断服务程序,执行中断服务功能,对P1口数值进行加1,实现手动对P1口数值控制。
四、参考程序流程图
图3-2程序流程图
五、实验步骤
1、连接串行通信电缆盒电源线;
2、根据图3-1实验线路进行电路连接;
3、将C51单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”;
4、打开实验箱上的电源开关。
5、利用KeilC51创建实验程序,并进行编译生产后缀为.HEX的文件;
6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;
7、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
六、参考程序
ORG0000H
LJMPMAIN
ORG0003H;中断入口
LJMPINT
ORG0200H
MAIN:
MOVP1,#00H
SETBEA;首先开启总中断
SETBEX0;开启外部中断0,即P32引脚
SETBIT0;设置成下降沿触发方式
M1:
SJMPM1;主程序只等待中断
INT:
INCP1;外部中断0中断响应,将P1口内容加1
LCALLDELAY
RETI;中断结束返回
DELAY:
MOVR5,#255;延时子程序
D1:
MOVR6,#255
DJNZR6,$
DJNZR5,D1
RET
END
七、思考题
1、利用外部中断1实现本实验的中断功能;
2、两个外部中断的同时应用(外部中断0实现LED流水灯按键控制左移;外部中断1实现LED流水灯按键控制右移)。
实验四定时器实验
一、实验目的
1.掌握51单片机内部定时器的使用方法。
2.学习单片机控制蜂鸣器电路设计方法。
二、实验内容
1.实验电路如图4-1所示,用51单片机内部定时器T0定时,控制蜂鸣器发声,使之发声1秒钟,停止1秒钟,重复循环。
2.接线方案
P1.0/51单片机接蜂鸣器
图4-1实验线路
三、实验原理
当P1.0输出高电平时,三极管导通蜂鸣器发声,P1.0输出低电平时,三极管截止,蜂鸣器不发声。
本实验设备的晶振频率为11.0592MHZ,定时方式时,约1us计数器加1,计数初值15536时,经过50ms溢出,溢出20次约1秒钟。
四、参考程序流程图
图4-2程序流程图
五、实验步骤
1、连接串行通信电缆盒电源线;
2、根据图3-1实验线路进行电路连接;
3、将C51单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”;
4、打开实验箱上的电源开关。
5、利用KeilC51创建实验程序,并进行编译生产后缀为.HEX的文件;
6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;
7、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
六、参考程序
ORG0000H
AJMPMAIN
ORG000BH;定时器0中断服务程序
LJMPTINT
ORG0030H
MAIN:
MOVTMOD,#01H;设置定时器0,方式1
MOVDPTR,#15536;送T0计数初值15536
MOVTH0,DPH
MOVTL0,DPL
SETBEA;开总中断
SETBET0;开定时器0
SETBP1.0;蜂鸣器发生
MOVR0,#20
SETBTR0
SJMP$
TINT:
DJNZR0,EXIT
CPLP1.0;中断20次到1S,对P1.0取反
MOVR0,#20;重置中断次数计数器
EXIT:
MOVDPTR,#15536;重置T0计数初值15536
MOVTH0,DPH
MOVTL0,DPL
RETI
七、思考题
1、利用定时器1实现本实验定时功能,编写程序;
使用工作方式2实现定时功能,编写程序。
实验五串行口通信实验
一、实验目的
1.掌握51单片机串行口工作方式的设定及串行通信程序设计。
2.掌握串行通信的典型电路
二、实验内容
1.实验电路如图5-1所示,通信的双方分别定义为甲单片机和乙单片机,甲单片机通过串行口循环发送数据0~FFH,乙单片机通过串行口接收并在LED发光二极管上显示出来,实现数据的串行通信。
本实验参考程序采用串口工作方式2。
2.接线方案(注:
P3.0和P3.1口需下载程序后再连接)
P1.0~P1.7/51单片机(甲)接LED发光二极管组;
P3.0和P3.1/51单片机(甲)接RS232模块的TXD、RXD;
P1.0~P1.7/51单片机(乙)接LED发光二极管组;
P3.0和P3.1/51单片机(乙)接RS232模块的TXD、RXD;
RS232模块用串行通信电缆连接。
图5-1实验线路
三、实验原理
两台单片机应用系统在进行通信时,如果距离较近,接口只需三根导线,将它们的串行口直接连接,即可实现双机通信,这种通信距离一般不超过15m。
如果要加大通信距离,需加入电平转换电路,如RS-232、RS-485等。
四、参考程序流程图
a.发送程序b.接收程序
图5-2程序流程图
五、实验步骤
1、连接串行通信电缆盒电源线;
2、根据图3-1实验线路进行电路连接(先不接P3.0和P3.1);
3、将C51单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”;
4、打开实验箱上的电源开关。
5、利用KeilC51创建实验程序,并进行编译生产后缀为.HEX的文件;
6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中(下载完成后再连接P3.0和P3.1);
7、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
六、参考程序
发送程序:
ORG00H
MOVSCON,#10000000B;设置串行口方式2工作
MOVA,#00H
START:
INCA
MOVSBUF,A;将A中的内容发送
WAIT0:
JNBTI,WAIT0;等待发送完成
CLRTI;清发送中断标志
MOVP1,A;送到P1口显示
CALLDELAY;延时
LJMPSTART
DELAY:
MOVR0,#0;延时子程序
MOVR1,#0
LP:
DJNZR1,LP
DJNZR0,LP
RET
END
接收程序:
ORG00H
MOVSCON,#10010000B;设置串行口方式2工作
;MOVA,#00H
START:
JNBRI,START;等待接收完成
MOVA,SBUF;从接收缓冲器读入数据
MOVP1,A;送到P1口显示
CLRRI;清接收中断标志
CALLDELAY;延时
LJMPSTART
DELAY:
MOVR0,#0;延时子程序
MOVR1,#0
LP:
DJNZR1,LP
DJNZR0,LP
RET
END
七、思考题
1、利用串行口工作方式1实现通信功能,编写程序;
实验六串行通信的调试实验
一、实验目的
掌握单片机串行口调试方法;
二、实验内容
1、编写实验程序,实现单片机与PC机的串口通信,实验电路如下图6-1所示,单片机串行口则利用51单片机核心板上的通信接口,PC机侧接COM1或COM2。
要求通信波特率为2400,串口工作方式为方式1,即:
一个起始位,8个有效数据位和一个停止位。
图6-1实验原理图
2、接线方案:
无需另外接线(利用串口通信电缆进行数据通信)。
三、实验原理
单片机侧利用P3.0和P3.1口和PC机进行串行通信,本实验中,只需要将串行通信电缆连接到51单片机核心板上即可;PC机侧利用STC-ISP下载软件里的串口助手进行串口通信,如下图6-2所示,在串口助手的设置中,需要设置串口、波特率、校验位、停止位,无误后点击打开串口,并在发送缓冲区输入数据,点击发送数据,则可以再接收缓冲区显示所发送的内容。
图6-2STC-ISP串口助手
四、参考程序流程图
图6-3程序流程图
五、实验步骤
1、连接串行通信电缆盒电源线;
2、将C51单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”;
3、打开实验箱上的电源开关。
4、利用KeilC51创建实验程序,并进行编译生产后缀为.HEX的文件;
5、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;
6、打开STC-ISP软件的串口助手,设置串口、波特率、校验位等,打开串口后在发送缓冲区输入数据,点击发送数据,观察接收缓冲区的数据变化;
7、观察实验现象,并记录。
若实验现象有误请重复第4~6步。
六、参考程序:
ORG0000H
LJMPMAIN;主程序的开始
ORG0200H
MAIN:
MOVTMOD,#20H;设置定时器1为模式2,为波特率发生器
MOVTL1,#0F4H;2400波特率初值,板子使用11.0592M晶振
MOVTH1,#0F4H;
SETBTR1;启动波特率发生
MOVSCON,#50H;串口的工作方式,设置为方式1
M1:
JNBRI,M1;查询是否有数据接收
MOVA,SBUF;数据暂存于A
CLRRI;允许接收
MOVSBUF,A;将接收到的数据发送出去
M2:
JNBTI,M2;等待发送完成
CLRTI
SJMPM1;循环扫描串行通讯接口数据
END
七、思考题
1、理解串口调试的工作原理,可否采用串口方式2实现?
2、修改程序,实现接收数据与发送数据进行个、十位交换(如:
发送为12时,接收为21)。
实验七数码管静态显示实验
一、实验目的
1、掌握8051单片机与七段LED数码管连接的设计方法;
2、掌握LED数码管静态显示的编程方法。
二、实验内容
1、根据图7-1所示的LED数码管连接电路(电路中U1是74LS244作为段码驱动电路;U5和U4是SN75452,与非门,作为位选信号电路),编写实验程序,实现1位数码管的静态显示,要求:
内容为0~9循环显示。
图7-1LED数码管的连接图
2、接线方案:
P10~P17/51单片机接a、b…dp/数码管;
P2.0~P2.3/51单片机接s1~s4/数码管。
三、实验原理
LED数码管静态显示的显示程序简单,显示亮度高,但所需的I/O端口较多,并且功耗较大。
所以静态显示常用在显示位数较少的系统中。
下表为共阴极LED数码管的段码表
四、参考程序流程图
图7-2程序流程图
五、实验步骤
1、连接串行通信电缆盒电源线;
2、将C51单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”;
3、打开实验箱上的电源开关。
4、利用KeilC51创建实验程序,并进行编译生产后缀为.HEX的文件;
5、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;
6、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
六、参考程序:
SMG_qEQUP2.0;定义数码管阳级控制脚,千位
SMG_bEQUP2.1;定义数码管阳级控制脚,百位
SMG_sEQUP2.2;定义数码管阳级控制脚,十位
SMG_gEQUP2.3;定义数码管阳级控制脚,个位
ORG0100
TABLE:
DB3Fh,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;共阴数码管0-9
ORG0000H;程序开始
LJMPMAIN
ORG0100H
MAIN:
SETBSMG_q;选择千位数码管,静态显示
CLRSMG_b
CLRSMG_s