单片机实验指导书Word文档格式.docx
《单片机实验指导书Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书Word文档格式.docx(30页珍藏版)》请在冰点文库上搜索。
![单片机实验指导书Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/1/28083cdd-ac07-4166-a1cb-7c44dfd6110f/28083cdd-ac07-4166-a1cb-7c44dfd6110f1.gif)
转入主程序
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单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”;
5、利用KeilC51创建实验程序,并进行编译生产后缀为.HEX的文件;
五、参考程序
KEY1EQUP2.7;
定义按键1
KEY2EQUP2.6;
定义按键2
SPKEQUP0.1;
定义蜂鸣器
JDQEQUP0.0;
定义继电器
ORG0000H
LJMPMAIN
ORG0100H
JNBKEY1,M2
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程序流程图
2、根据图3-1实验线路进行电路连接;
ORG0003H;
中断入口
LJMPINT
ORG0200H
MOVP1,#00H
SETBEA;
首先开启总中断
SETBEX0;
开启外部中断0,即P32引脚
SETBIT0;
设置成下降沿触发方式
SJMPM1;
主程序只等待中断
INT:
INCP1;
外部中断0中断响应,将P1口内容加1
LCALLDELAY
RETI;
中断结束返回
MOVR5,#255;
MOVR6,#255
1、利用外部中断1实现本实验的中断功能;
2、两个外部中断的同时应用(外部中断0实现LED流水灯按键控制左移;
外部中断1实现LED流水灯按键控制右移)。
实验四定时器实验
1.掌握51单片机内部定时器的使用方法。
2.学习单片机控制蜂鸣器电路设计方法。
1.实验电路如图4-1所示,用51单片机内部定时器T0定时,控制蜂鸣器发声,使之发声1秒钟,停止1秒钟,重复循环。
P1.0/51单片机接蜂鸣器
图4-1实验线路
当P1.0输出高电平时,三极管导通蜂鸣器发声,P1.0输出低电平时,三极管截止,蜂鸣器不发声。
本实验设备的晶振频率为11.0592MHZ,定时方式时,约1us计数器加1,计数初值15536时,经过50ms溢出,溢出20次约1秒钟。
图4-2程序流程图
AJMPMAIN
ORG000BH;
定时器0中断服务程序
LJMPTINT
ORG0030H
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
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程序流程图
2、根据图3-1实验线路进行电路连接(先不接P3.0和P3.1);
6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中(下载完成后再连接P3.0和P3.1);
发送程序:
ORG00H
MOVSCON,#10000000B;
设置串行口方式2工作
MOVA,#00H
START:
INCA
MOVSBUF,A;
将A中的内容发送
WAIT0:
JNBTI,WAIT0;
等待发送完成
CLRTI;
清发送中断标志
MOVP1,A;
送到P1口显示
CALLDELAY;
延时
LJMPSTART
MOVR0,#0;
延时子程序
MOVR1,#0
LP:
DJNZR1,LP
DJNZR0,LP
END
接收程序:
ORG00H
MOVSCON,#10010000B;
;
MOVA,#00H
JNBRI,START;
等待接收完成
MOVA,SBUF;
从接收缓冲器读入数据
CLRRI;
清接收中断标志
LJMPSTART
MOVR0,#0;
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程序流程图
2、将C51单片机核心板上的三个开关分别拨到“独立”、”运行”“单片机”;
3、打开实验箱上的电源开关。
4、利用KeilC51创建实验程序,并进行编译生产后缀为.HEX的文件;
5、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;
6、打开STC-ISP软件的串口助手,设置串口、波特率、校验位等,打开串口后在发送缓冲区输入数据,点击发送数据,观察接收缓冲区的数据变化;
若实验现象有误请重复第4~6步。
六、参考程序:
LJMPMAIN;
MOVTMOD,#20H;
设置定时器1为模式2,为波特率发生器
MOVTL1,#0F4H;
2400波特率初值,板子使用11.0592M晶振
MOVTH1,#0F4H;
SETBTR1;
启动波特率发生
MOVSCON,#50H;
串口的工作方式,设置为方式1
M1:
JNBRI,M1;
查询是否有数据接收
数据暂存于A
CLRRI;
允许接收
MOVSBUF,A;
将接收到的数据发送出去
JNBTI,M2;
CLRTI
循环扫描串行通讯接口数据
1、理解串口调试的工作原理,可否采用串口方式2实现?
2、修改程序,实现接收数据与发送数据进行个、十位交换(如:
发送为12时,接收为21)。
实验七数码管静态显示实验
1、掌握8051单片机与七段LED数码管连接的设计方法;
2、掌握LED数码管静态显示的编程方法。
1、根据图7-1所示的LED数码管连接电路(电路中U1是74LS244作为段码驱动电路;
U5和U4是SN75452,与非门,作为位选信号电路),编写实验程序,实现1位数码管的静态显示,要求:
内容为0~9循环显示。
图7-1LED数码管的连接图
P10~P17/51单片机接a、b…dp/数码管;
P2.0~P2.3/51单片机接s1~s4/数码管。
LED数码管静态显示的显示程序简单,显示亮度高,但所需的I/O端口较多,并且功耗较大。
所以静态显示常用在显示位数较少的系统中。
下表为共阴极LED数码管的段码表
图7-2程序流程图
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;
程序开始
SETBSMG_q;
选择千位数码管,静态显示
CLRSMG_b
CLRSMG_s