单片机实验指导.docx
- 文档编号:28528356
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:34
- 大小:4.19MB
单片机实验指导.docx
《单片机实验指导.docx》由会员分享,可在线阅读,更多相关《单片机实验指导.docx(34页珍藏版)》请在冰豆网上搜索。
单片机实验指导
(内部教材)
单片机实验指导书
周小波编
阜阳师范学院物理与电子科学学院
电子信息科学与技术教研室
第一章系统概述
一、系统简介
MCS-51单片机实验板是物理与电子科学学院自主研发设计的单片机实验系统。
板载一片51内核STC89C52单片机,整个实验系统由17个独立模块组成,各模块相互独立,给学生提供了更大的发挥空间。
利用目前流行的Keilc51软件,进行软、硬件仿真开发调试。
二、各模块电路
(1)单片机最小系统模块
最小系统电路主要由STC89C52单片机、时钟电路、复位电路等构成,所有的IO口均引出。
(2)串口电平转换模块
串口电平转换电路主要由MAX232芯片以及相关外围电路构成,可以用来下载程序,以及作串口通信实验。
(3)数码管驱动模块
8位共阳极数码管采用8550(PNP)三极管驱动,模块预留位选端口和段选端口两排插针,根据需要可自行连接。
(4)LED发光二极管模块
板载8个发光二极管,J1为接线端口,可根据需要自行连接到单片机的IO口或者其他外设上,PZ2为排阻,起限流作用。
(5)键盘模块
键盘电路由4各独立按键和4*4矩阵键盘构成,Pk2接口为独立键盘的接线端子,Pk1端口为矩阵键盘的接线端子。
(6)DA转换模块
DA转换电路采用8位DA芯片DAC0832,PDA端口为8位数据的输入端,11脚为DAC0832输出端,发光二极管用于指示DA转换的结果。
(7)AD转换模块
AD转换电路由8位AD转换芯片ADC0804构成,通过调节VR1电位器可以改变AD输入端的模拟电压。
(8)电机驱动模块
采用L298N模块作为电机驱动,可以驱动2个直流电机或1个步进电机,J5为信号输入端,输出端J6接直流电机或者步进电机。
(9)总线扩展模块
采用82C55芯片作为总线的扩展,采用一片锁存器74HC573,使P0口可以作为地址和数据总线的复用端口。
J9为82C55的控制总线接线端子,J10为82C55的地址和数据接线端子,PA、PB、PC为82C55的输出端口,可以外接其他外设完成相应的实验。
(10)液晶显示模块
液晶显示模块采用字符液晶1602,J0为接线端子,包括数据总线、地址总线以及相关控制总线。
(11)点阵模块
点阵模块采用2片串入并出的74HC595芯片驱动一个8*8点阵,J3和J4为2片74HC595的控制端口。
(12)时钟模块
采用DS1302作为时钟芯片,作为实时时钟的实验。
1203in端口为DS1302的接线端子,可以连接到单片机相应的IO口上,编写驱动程序可以读取DS1302芯片内部的时钟信息。
(13)继电器驱动模块
采用8550PNP三极管驱动继电器工作,继电器的常开端连接一个发光二极管,用于演示继电器的特点。
(14)EEPROM模块
EEPROM模块采用AT24C02芯片作为存储器,用于演示非易失型存储器的特点,SDA、SCL为AT24C02的时钟线和数据线,需要连接到单片机的相应管脚。
(15)蜂鸣器驱动模块
蜂鸣器驱动模块采用8550三极管驱动,J2接线端子分别为蜂鸣器、温度传感器DS18B20以及继电器的接线端。
(16)温度传感器模块
采用数字型DS18B20作为温度传感器,该传感器为单总线结构,总线上需要接一个上拉电阻。
(17)电源接口模块
为了便于学生接线以及更好的完成相关实验项目,电路板上扩展了8路+5V电源。
三、总体电路图
四、PCB图
第二章实验指导
实验一熟悉开发环境
1、 实验目的:
(l)学习使用Keil软件新建工程的方法;
(2)学习如何编译程序;
(3)学习如何下载程序。
2、实验内容:
学习Keil软件建立工程以及编译工程,利用STC-ISP软件通过串口将编译生成的HEX文件下载到单片机中。
3、实验步骤:
(1)新建一个工程
在桌面上或者相应磁盘上新建一个文件夹,取名为Text(可任意取名),打开Keil软件,点击菜单栏的Project—NewProject,弹出对话框,将工程保存到Text文件夹,工程名也取为Text(可以是其他名称),点击保存按钮,保存工程,如下图所示。
保存工程后,弹出一个对话框,如下图所示,选择其中的Atmel项,找到Atmel公司的AT89C52单片机并选中后点击确定,此时会弹出一个对话框,选择“是”或者“否”都可以。
此时工程虽然成功创建了,但是工程中是空的,需要向工程里面添加相应的文件,点击菜单栏File—New,可以新建一个文件,保存为Text.c(可以为其他名称,如果用C语言写程序,后缀必须为.c,用汇编写程序后缀为.asm),如下图所示。
虽然新建了一个文件(C文件或者汇编文件),但是该文件还没有添加到工程中,添加文件到工程的方法如下图所示,右击ProjectWorkspace中的SourceGroup1,选择AddFilestoGroupSourceGroup1弹出对话框,找到工程的保存目录即Text文件夹,选择以前新建的Text文件,点击Add即可将文件添加到工程中,工程新建完毕。
(2)程序的编译
下面以C语言写程序为例演示工程编译的过程,点击Text.c文件,程序需要写在该文件中,如下图所示。
点击工具栏中的OptionforTarget,选择Output选项卡,将CreateHEXFile选项的复选框勾上后,点击确定。
这样编译后就可以生成单片机可执行的HEX文件了。
点击工具栏上的编译按钮即可对工程的所有文件进行编译,如下图所示。
(3)程序的下载
打开位于桌面的STC-ISP.exe可执行软件,如下图所示。
首先选择MCU的型号,需要将MCU的型号选择为STC89C52,如下图所示。
选择打开程序文件按钮,找到以前编译的HEX文件,点击打开。
以Text工程为例,HEX文件与工程保存在同一个目录,如下图所示。
将实验板的通过串口线与PC即连接,下载程序前需要设置串口的端口号。
首先查看PC机串口的端口号,右击“我的电脑”—属性—硬件—设备管理器—端口—通讯端口,可以看出下图所示的串口端口号为COM1。
设置STC-ISP软件的COM端口号,如下图所示。
将实验板断电,点击STC-ISP软件的“Download/下载“按钮,再给实验板上电,程序即可下载到单片机中。
如下图所示。
4、思考:
(1)为什么在编译之前需要将CreateHEXFile复选框选上。
(2)下载程序需要设置哪些选项。
5、 实验报告要求:
(1)整理新建工程的步骤,将它们按正确的格式详细书写在实验报告纸上。
(2)写出编译程序的步骤。
(3)写出思考题的答案。
实验二I/0口输入输出实验
1、 实验目的:
(l)学习51单片机IO口的使用方法;
(2)学习延时子程序的编写。
2、实验内容:
(1)学习IO口的位操作方法,分别选择P0、P1、P2、P3端口中的某一位,该位作为输出使用,连接一只发光二极管,控制器闪烁。
(2)P0、P1、P2、P3口作为输出口,连接八只发光二极管,编写程序,使发光二极管从左至右循环点亮。
(3)将P1口的某一位作为输入使用,连接一个按键,当按键按下时使发光二极管亮,否则发光二极管熄灭。
3、实验电路图:
发光二级管电路,PZ2为限流电阻,J1为接线端子。
按键电路,本实验可以选择独立按键来完成,独立按键的接口为Pk2。
本实验需要用到的模块标注如下图所示。
4、 实验步骤:
(1)将P0.x(P0口的任意一位)连接到一只发光二极管上(J1接口的任意一个插针),编写程序使发光二级管闪烁,将P1.x、P2.x、P3.x依次接到一只发光二极管上,重复上述过程。
(2)将P0口连接到8只发光二极管上(J1接口),编写程序使发光二极管从左至右循环点亮,将P1、P2、P3口依次接到J1接口,重复上述过程。
(3)将P1.0口连接到一只发光二极管上(J1接口的任意一个插针),P1.1连接到Pk2独立键盘端口的某一插针,编写程序当按键按下时,发光二级管亮,放开按键时,发光二极管熄灭。
5、 思考:
(1)改变延时常数,使发光二极管闪亮时间改变。
(2)修改程序,使发光二极管闪亮移位方向改变。
6、 实验报告要求:
(1)整理本实验涉及的程序,将它们按正确的格式详细书写在实验报告纸上。
(2)写出实验结果、实验收获与对本实验改进的意见。
(3)写出思考题的答案。
实验三数码管显示实验
1、 实验目的:
(l)学习数码管的静态显示;
(2)学习数码管的动态显示。
2、实验内容:
(1)编写程序让8只数码管同时显示0;
(2)编写程序让8只数码管初始显示0,每隔大约1s加1显示(可以用延时函数实现),到数码管显示9后,再从0开始显示,如此循环反复。
(3)编写程序学习数码管的动态显示,让8只数码管从从左往右显示1、2、3……8。
3、实验电路图:
实验板上数码管为4位一体的共阳极数码管,采用8550PNP三极管驱动,低电平选中相应的位。
4、 实验步骤:
(1)将P0.x(P0口的任意一位)连接到一只发光二极管上(J1接口的任意一个插针),编写程序使发光二级管闪烁,将P1.x、P2.x、P3.x依次接到一只发光二极管上,重复上述过程。
(2)将P0口连接到8只发光二极管上(J1接口),编写程序使发光二极管从左至右循环点亮,将P1、P2、P3口依次接到J1接口,重复上述过程。
(3)将P1.0口连接到一只发光二极管上(J1接口的任意一个插针),P1.1连接到Pk2独立键盘端口的某一插针,编写程序当按键按下时,发光二级管亮,放开按键时,发光二极管熄灭。
5、 思考:
(1)改变延时常数,使发光二极管闪亮时间改变。
(2)修改程序,使发光二极管闪亮移位方向改变。
6、 实验报告要求:
(1)整理本实验涉及的程序,将它们按正确的格式详细书写在实验报告纸上。
(2)写出实验结果、实验收获与对本实验改进的意见。
(3)写出思考题的答案。
实验四外部中断实验
1、 实验目的:
(l)掌握中断的特点;
(2)掌握外部中断的两种触发方式;
(3)掌握中断嵌套的特点。
2、实验内容:
(1)编写程序学习外部中断的电平触发方式。
无中断时发光让发光二极管从左到右依次点亮,有外部中断请求时,4位数码管从0000开始加1显示(加到9999后复位为0000),同时蜂鸣器报警。
(2)设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序)。
3、实验电路图:
蜂鸣器驱动电路如下图所示,其他电路见IO口实验和数码管实验电路。
蜂鸣器采用PNP三极管驱动,低电平有效。
实验板上数码管为4位一体的共阳极数码管,采用8550PNP三极管驱动,低电平选中相应的位。
4、 实验步骤:
(1)将P3.2或者P3.3(外部中断0和外部中断1引脚)连接到一个独立按键,发光二极管和数码管接口连接到单片机的相关IO口,设置外部中断的触发方式ITx(x=0,1),使其为电平触发方式,主程序中实现发光二极管的流水灯功能,中断程序中实现数码管显示程序。
编写好程序,尝试按住按键不松,观察实验现象。
(2)设置ITx(x=0,1),使外部中断为边沿触发方式,其他功能见实验步骤1,尝试按住按键不松,观察实验现象,比较与步骤1有何不同之处。
(2)将P3.2和P3.3(外部中断0和外部中断1引脚)分别连接到相应的独立按键上,发光二极管和数码管接口连接到单片机的相关IO口,设置外部中断的触发方式ITx(x=0,1),使其为电平触发方式,外部中断0的中断程序中实现流水灯功能,外部中断1的中断程序实现数码管加1显示程序(4位数码管0000-9999)。
设置中断优先级IP寄存器,使外部中断1为高优先级,外部中断0为低优先级。
使外部中断0触发外部中断,在外部中断0的中断程序还没有执行完之前触发外部中断1,观察实验现象。
再将IP寄存器赋值为0x00或者在程序中不设置改寄存器,再按上面的步骤操作,比较有什么不同之处。
5、 思考:
(1)外部中断的边沿触发方式与电平触发方式有何不同之处?
(2)什么是中断嵌套?
实现中断嵌套需要设置什么寄存器?
6、 实验报告要求:
(1)整理本实验涉及的程序,将它们按正确的格式详细书写在实验报告纸上。
(2)写出实验结果、实验收获与对本实验改进的意见。
(3)写出思考题的答案。
实验五定时器中断实验
1、 实验目的:
(l)掌握定时器中断的特点;
(2)掌握定时器的几种工作方式;
(3)掌握定时器初值的设置方法。
2、实验内容:
(1)编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。
(2)编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。
(3)编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。
3、实验电路图:
蜂鸣器驱动电路如下图所示,其他电路见IO口实验和数码管实验电路。
蜂鸣器采用PNP三极管驱动,低电平有效。
实验板上数码管为4位一体的共阳极数码管,采用8550PNP三极管驱动,低电平选中相应的位。
4、 实验步骤:
(1)将单片机的任意一个IO口连接到蜂鸣器接口,让定时器0或者定时器1工作在方式1,设置定时器的初值,使得的定时器每隔50ms进入一次中断,第一次进入中断开启蜂鸣器,第二次进入中断关闭蜂鸣器,以此循环往复。
(2)将数码管的段码和位选接口连接到单片机的相应IO口,让定时器0或者定时器1工作在方式1,设置定时器的初值,使得定时器定时500ms,使8位数码管中的两位数码管从00、01、02……98、99每间隔500ms加1显示。
(2)将数码管的段码和位选接口连接到单片机的相应IO口,让定时器0或者定时器1工作在方式2,设置定时器的初值,使得定时器定时500ms,使8位数码管中的两位数码管从00、01、02……98、99每间隔500ms加1显示。
5、 思考:
(1)定时器的方式2和方式1有何不同之处?
(2)定时器的初值如何计算?
6、 实验报告要求:
(1)整理本实验涉及的程序,将它们按正确的格式详细书写在实验报告纸上。
(2)写出实验结果、实验收获与对本实验改进的意见。
(3)写出思考题的答案。
实验六串行口实验
1、 实验目的:
(l)掌握串行通信的特点;
(2)掌握串行通信的几种工作方式;
(3)掌握波特率的设置方法。
2、实验内容:
(1)编写程序利用串口调试助手通过串口给实验板发送数据(数据范围0x00-0xfe),单片机将接受到的数据加1后再发送给PC机。
(2)编写程序利用PC机控制单片机实验板上的数码管设备工作。
3、实验电路图:
实验板上数码管为4位一体的共阳极数码管,采用8550PNP三极管驱动,低电平选中相应的位。
4、实验步骤:
(1)将单片机与PC机通过串口线连接,设置串口的工作方式为方式1,波特率为9600,利用串口调试助手通过串口给实验板发送数据(数据范围0x00-0xfe),单片机将接受到的数据加1后再发送给PC机。
注1:
单片机发送数据是主动行为,建议用查询标志位的方式;接受数据是被动行为,建议用中断的方式。
注2:
串口调试助手和单片机串口的波特率设置需一致。
(2)将单片机与PC机通过串口线连接,设置串口的工作方式为方式1,波特率为9600,编写程序利用PC机控制单片机实验板上的某一位数码管的显示内容。
通过PC机(上位机)给实验板发送控制指令,实验板(下位机)接受到上位机的控制指令后,产生相应的动作,具体见下表。
注1:
P3.0和P3.1为串口的发送和接收引脚,不要被占用,否则会影响串口的数据通信。
上位机控制指令(16进制)
下位机动作
0XFF
数码管显示0
0XFE
数码管显示1
0XFD
数码管显示2
0XFC
数码管显示3
0XFB
数码管显示4
0XFA
数码管显示5
0XF9
数码管显示6
0XF8
数码管显示7
0XF7
数码管显示8
0XF6
数码管显示9
5、思考:
(1)串口是如何发送数据的?
如何接受数据的?
(2)串口通信的波特率如何计算?
6、 实验报告要求:
(1)整理本实验涉及的程序,将它们按正确的格式详细书写在实验报告纸上。
(2)写出实验结果、实验收获与对本实验改进的意见。
(3)写出思考题的答案。
实验七AD、DA实验
1、实验目的:
(l)掌握AD转换的特点;
(2)掌握DA转换的特点;
2、实验内容:
(1)编写程序利用ADC0804AD转换器采集电位器的模拟电压,将采集到的数字量在程序中换算陈实际采集的模拟电压,并用数码管显示所采集的实际模拟电压值。
(如:
AD转换后的数字量为128,则数码管应该显示2.5)
(2)编写程序利用ADC0804AD转换器采集电位器的模拟电压,将采集的数字量给DA转换器,通过DA转换器再转换为模拟量输出。
3、实验电路图:
AD转换电路图
DA转换电路图
ADC0804管脚图如下所示,实验时只需要连接1、2、3脚和数字量输出引脚14-20脚即可,其它引脚都已经连接好。
其中5脚INTR可以不使用,悬空即可,当转换完成时该引脚为低电平,如果需要触发外部中断可以使用。
ADC0804的时序图如下图所示。
DAC0832的引脚图如下图所示。
4、实验步骤:
(1)ADC0804的CS、WR、RD引脚即J7接线端口连接到单片机的3个IO口,PAD接线端口连接到单片机的一组并行口,分析ADC0804的时序图,编写程序实现用数码管显示连接在ADC0804模拟电压输入引脚即6脚的模拟电压,要求显示2位小数。
模拟电压大小的调节通过调节电位器实现。
(2)ADC0804的CS、WR、RD引脚即J7接线端口连接到单片机的3个IO口,PAD接线端口连接到DAC0832的PDA接线端,即AD转换器的输出数字量作为DA转换器的数字量输入端,通过DA转换器将数字量再转换为模拟量输出,J8为DA的控制接口,需要连接到单片机的IO口。
DAC0832通过11脚输出,输出为电流,11脚连接了一个发光二极管,输入数字量越大,DAC0832的11脚输出的电流会越大,发光二极管就会越亮。
5、思考:
(1)AD转换的模拟量与数字量之间的关系式是什么?
(2)如果想让DAC0832输出为模拟电压,应该怎么样修改电路?
6、 实验报告要求:
(1)整理本实验涉及的程序,将它们按正确的格式详细书写在实验报告纸上。
(2)写出实验结果、实验收获与对本实验改进的意见。
(3)写出思考题的答案。
实验八8255总线实验
1、实验目的:
(l)掌握单片机的三种总线的特点;
(2)掌握总线扩展外围设备的地址计算方法;
2、实验内容:
(1)编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。
3、实验电路图:
实验板上数码管为4位一体的共阳极数码管,采用8550PNP三极管驱动,低电平选中相应的位。
PA、PB、PC端口为8255的I/O管脚,,J9为8255控制端口,其中573LE接单片机的ALE脚,WR接单片机的WR,RD接单片机的RD,CS接单片机的P2.7口(也可以接到其他的地址管脚上,接在不同的引脚上,地址会不一样),RSEST接单片机的复位管脚,J10为数据总线和地址总线的低八位,接P0口,其中OE接地,为74HC573锁存器的使能端。
若按照上述方式连接电路,则8255相应资源的地址为:
PA:
0x7ffc
PB:
0x7ffd
PC:
0x7ffe
控制寄存器:
0x7fff
4、实验步骤:
(1)按照上述方式连接好电路,计算8255相应资源的地址,PA口连接到数码管的段码端,PB口接到数码管的位选端。
将8255控制寄存器设置为0x80,即PA,PB,PC端口都工作在IO方式及输出状态,利用8255控制8位数码管显示1-8。
注:
外部设备的地址定义方式
#definePAXBYTE[0x7ffc]//定义8255PA端口的地址
#definePBXBYTE[0x7ffd]//定义8255PB端口的地址
#definePCXBYTE[0x7ffe]//定义8255PC端口的地址
#defineCOMXBYTE[0x7fff]//定义8255控制寄存器的地址
5、思考:
(1)单片机扩展外围资源,如何计算该器件的地址?
(2)利用C语言写程序,如何定义扩展器件的地址?
6、 实验报告要求:
(1)整理本实验涉及的程序,将它们按正确的格式详细书写在实验报告纸上。
(2)写出实验结果、实验收获与对本实验改进的意见。
(3)写出思考题的答案。
实验九电机实验
1、实验目的:
(l)掌握步进电机的工作原理;
(2)掌握步进电机的驱动电路。
2、实验内容:
(1)编写程序控制步进电机的正反转以及调速。
3、实验电路图:
4、实验步骤:
(1)J5为L298N电机驱动的输入端,连接到单片机的IO口,J6为L298N的输出端,连接步进电机,实验配备的步进电机为5线制(A、B、C、D、VCC,已做成标准接口,可直接插到实验板上的J6接口),其中有一根线为红色,为步进电机的公共端,一定要接在J6接口的VCC端。
(2)编写程序实现步进电机工作于单四拍方式,通过按键可以控制其正反转和停止。
(3)编写程序实现步进电机工作于单双八拍方式,通过按键可以控制其正反转和停止,修改程序实现步进电机的调速。
5、思考:
(1)步进电机工作于单四拍和单双八拍的区别是什么?
(2)步进电机如何调速?
6、实验报告要求:
(1)整理本实验涉及的程序,将它们按正确的格式详细书写在实验报告纸上。
(2)写出实验结果、实验收获与对本实验改进的意见。
(3)写出思考题的答案。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导