单片机实验指导书.docx
- 文档编号:30080909
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:71
- 大小:3.30MB
单片机实验指导书.docx
《单片机实验指导书.docx》由会员分享,可在线阅读,更多相关《单片机实验指导书.docx(71页珍藏版)》请在冰豆网上搜索。
单片机实验指导书
单片机原理与应用
实验指导书
九江学院电子工程学院
2007年9月
第一章单片机实验的基本要求与方法
一、实验目的
学习并掌握单片机的基本结构及接口设计方法,学习汇编语言程序设计的基本方法和技能。
二、实验要求
1、上机前要做好充分准备,明确实验目的、熟悉实验内容、掌握实验步骤、了解所用单片机实验开发系统及仪器设备的性能。
做好实验前预习和必要的准备,如画好程序流程图,编好程序,做到准备充分。
2.进入实验室后,熟悉所用的单片机实验开发系统及仪器设备,了解其外观、性能。
接线要正确、简单明了,接线完成后检查一遍,经老师复查允许后才可通电。
通电瞬间,应注意仪器和实验装置是否正常工作,如有不正常现象,应立即断电查找原因,直至故障排除后,实验方可继续进行。
3.实验进行时,按规定步骤进行,经过反复修改调试,达到设计功能后,读取数据,并及时纪录。
4.实验完成后,经老师验收合格,并把仪器、导线、工具整理完毕后,学生方可离开实验室。
三、实验方法
本课程所用的实验板采用在系统可编程方式下载程序,具体操作过程参考第三章。
四、实验报告内容和要求
1.实验报告要用学校统一印发的实验报告纸。
2.实验报告内容应包括:
实验名称、器材、目的、原理、步骤、结果及分析、流程图、程序清单。
3.实验报告中实验原理图(含电路图和时序图)要准确无误。
4.实验报告中程序清单要求调试并运行正确无误,要有中文注释。
5.每个实验后的实验结果分析和心得体会必须独立完成,对实验中发现的问题应加以讨论,并提出自己的改进意见和要求。
6.实验报告写完后统一交到学习委员处,按学号排列装订成册,然后交到老师处。
第二章V6实验板简介
本课程所用单片机实验板,可用于MCS-51系列单片机的仿真开发和《单片机原理与应用》课程的教学实验,具有电路简单,小巧便携,支持在系统可编程技术,简便易用等特点。
适合单片机初学者使用。
图2-1
一、可开设实验
1、wave仿真软件的应用
2、用isplay实现在系统可编程
3、流水灯
4、动态显示程序
5、中断响应程序设计
6、定时/计数器的应用:
测量脉冲宽度、倒计时器、带闪动的动态显示
7、键盘接口程序设计:
计时系统、抢答器设计、模拟汽车转向灯设计
*8、红外按键识别程序设计
*9、基于红外按键输入的四则混合运算计算器设计
10、电子音乐盒设计
*11、基于红外按键输入的电子琴设计
12、基于DS1302的精密时钟设计
13、基于DS18B20的数字温度计设计
14、串行程序存储器扩展
*15、数据采集电路设计:
单片机与A/D转换器接口
*16、信号发生器设计:
单片机与D/A转换器接口
*17、直流电机调速
*18、步进电机控制
*19、基于MAX7219的数码管静态显示程序设计
*20、字符型液晶显示程序设计
*21、点阵型液晶显示程序设计
注:
带“*”实验项目需外接扩展电路
二、V6实验板的原理和组成
1、总体电路图
图2-2
2、微处理器
V6实验板采用DIP封装的AT89s52单片机作为微处理器,引脚配置如图2-3所示,为实现在系统可编程功能,选用11.0592MHz的晶振。
图2-3
3、电源
实验板采用通用USB接口供电,只需用双公USB连接线将实验板与计算机USB接口相连即可提供整个电路所需电源。
电路如图2-4所示。
图2-4
4、跳线说明
NC:
无效位
RST:
复位有效
IT0:
key0键接IT0脚
IT1:
key1键接IT1脚
21P:
74LS21工作
5、主要技术指标
晶振频率:
11.0592M
第三章实验项目
实验一Wave仿真软件的应用
一、实验目的
1)了解单片机开发系统的基本功能,掌握单片机开发系统的使用方法。
2)通过对典型程序的调试操作训练,掌握运用开发系统快速有效地进行调试的基本方法。
3)熟悉单片机仿真开发系统的使用方法,掌握其基本功能与操作过程。
二、实验设备
全套计算机系统(计算机、键盘、鼠标、显示器、ISP下载线)
三、实验原理
Wave仿真软件介绍:
Wave是伟福公司为其单片机仿真头开发的配套软件,功能强大,具体应用参考《wave6000使用手册》。
我们只用它的软件模拟仿真功能编译程序。
步骤如下:
1、打开伟福6000软件,选择“仿真器/仿真其设置”,如图3-1所示
图3-1
2、在弹出窗口中选择“仿真器”标签,具体设置如图3-2所示
图3-2
3、选择“文件/新建文件”
图3-3
4、在右边空白区域编辑程序,然后选择“文件/保存”,将文档保存为后缀为.asm的汇编语言元文件。
图3-4
5、选择“项目/编译”或按F9编译文件,检查程序语法错误,注意左下角信息显示区域(方框中为编译成功时显示信息),若有错误会在此显示,根据提示修改语法错误。
编译成功后会在源程序同一目录下生成两个文件名与源程序文件相同,后缀分别为.bin和.hex的文件,如图所示,这就是我们要烧写到单片机种的二进制或十六进制程序文件。
图3-5
6、软件模拟仿真:
选择“执行/全速执行”或“跟踪、单步、执行到光标处”等不同的执行方式进行仿真,以验证程序的正确性,仿真时注意观察左边的寄存器窗口和右下角的内部数据存储器窗口。
图3-6
四、实验步骤
a)按照使用要求,进入wave6000集成开发环境;
b)设置汇编(或编译)环境;
c)新建NEW文件,选择教材内的某个汇编程序,输入源程序;
d)汇编、检查错误,保证程序的“格式”和“语法”符合规定要求;
e)参考说明,应用各种调试手段,排查程序中存在的各种问题,直至程序完全符合设
计要求;
f)成功后,写出实验报告。
实验二单片机最小系统及流水灯设计
一、实验目的
1、掌握单片机最小系统的设计方法。
2、了解51系列单片机并行口输出/输入方式的工作原理及编程方法。
3、掌握51系列单片机ISP(在系统可编程)技术。
二、实验内容
1、使用Wave6000软件编写、编译相关程序。
2、使用ISPlay软件将程序写入单片机。
3、利用单片机的P1口控制8个LED指示灯。
三、电路连线
图3-7
四、实验原理
1、由图3-7可知,控制引脚P10~P17输出低电平时发光二极管亮,输出高电平时发光二极管灭。
2、程序下载:
采用下载头和Isplayer软件将.hex文件下载到单片机中,具体操作步骤如下:
a)将下载头连接到电脑并口。
下载头实物如图
图3-8下载头实物
b)打开isplay软件,在左上角器件选择栏选择AT89S52
图3-9
c)修改引脚配置文件
引脚配置文件必须和硬件连接一致。
本系统所用下载头电路如图3-11所示,第一次使用时要修改atmel_BYTEBLAST.ini内容为:
图3-11
;----------------------------atmel下载线的引脚定义-------------------------
[引脚控制]
MOSI=3
MISO=10
SCK=2
RST=4
LE=0
OE=0
R1=14
R2=16
[锁存控制(LE)]
Enable=1
Disable=1
[输出控制(OE)]
Enable=0
Disable=1
;-------------------------------------------------------------------------
d)点击左下角“程序设置”设置程序运行环境,在弹出窗口中设置下载配置文件为atmel_BYTEBLAST.ini,重新设置下载线配置文件后要重新启动isplay才能生效。
图3-12
e)重新启动isplay,点击“检测器件”如果器件检测成功会听到“嘀嘀嘀”的三声响,
并且在软件界面中会出现提示,图3-13所示:
图3-13
f)打开要下载的.hex或.bin文件,如图3-14所示。
按顺序执行“擦除”“写”命令即可将程序写入单片机了,如果操作成功,同样会有三声“嘀嘀嘀”的响声。
图3-14
经过以上步骤就可以为芯片写入程序了,以同样的方法可以向芯片中写入任何所需程序,达到自己设计的要求。
如果写入芯片经常出错时,可试着适当的降低写入速度。
五、实验步骤
1、将dip8开关全部拨到ON
2、使用wave软件编辑、编译程序
3、用下载头连接单片机和计算机
4、使用isplay软件下载程序
5、运行程序,排除程序错误
6、观察并记录实验结果,写出实验报告
实验三数码管动态显示程序设计
一、实验目的
1、掌握利用数据口扩展LED数码管显示器的方法
2、掌握LED动态显示方式
二、实验内容
设计程序使6位LED数码管动态循环显示,要求有滚动效果。
三、实验原理
电路如图,v6实验板所用数码管为定制6位数码管,共14根线,1~8脚为公共数据线,分别控制数码管的a,b,c,d,e,f,g,h段,1亮0灭;9~14脚分别为6个数码管的共阴引脚,作为位选输入端。
图3-15
四、显示子程序流程图:
实验四中断响应程序设计
一、实验目的
1、了解单片机中断控制的工作原理和中断方式的选择;
2、掌握多个中断同时发生时中断优先权的设置方法
二、实验内容
1、利用单片机P32、P33口与开关K0、K1进行中断控制;
2、在主程序中设计8个指示灯轮流亮,在外部中断用用K0控制8个LED同时闪烁,用K1控制左右4个LED交替闪烁。
三、电路连线
1、P10至P17-----L0至L7(DIP8开关全部置ON)
2、用短接头连接跳线RST、IT0、IT1
图3-17
实验五键盘接口程序设计
(一)
一、实验目的
1、掌握单片机独立键盘接口方法;
2、掌握单片机键盘检测程序设计方法;
3、掌握软件消除按键抖动方法;
二、实验内容
1、开机时数码管显示100
2、按键key0一次数字加1,按键key1一次数字减1。
加到999时再加1归零,减到000时再减1得999。
3、按住键key2不放实现连加功能,前3s每0.2s加1,以后每0.1s加1。
4、按住键key3不放实现连减功能,前3s每0.2s减1,以后每0.1s减1。
三、实验连线
图3-18
四、程序流程图
实验六键盘接口程序设计
(二)
一、实验目的
1、掌握单片机独立键盘接口方法;
2、掌握单片机键盘检测程序设计方法;
3、掌握软件消除按键抖动方法;
二、实验内容
模拟汽车转向灯设计:
按键定义:
Key1:
左转;Key2:
右转;Key3:
刹车
指示灯定义:
LED0:
左前;LED1:
左后;LED4、LED5:
刹车;LED6:
右前;LED7:
右后。
按左转时,左前、左后两灯闪烁;按右转时,右前、右后两灯闪烁;按刹车时刹车灯亮
三、实验连线
见图3-18
四、程序流程图
略
实验七定时/计数器应用
一、实验目的
1、掌握89s52单片机定时/计数器的工作方式和编程原理。
2、掌握定时方法及定时器中断方法。
二、实验内容
利用单片机的定时/计数器设计一个15s倒计时器,按key0后启动,要求精确显示到百分之一秒。
发挥部分:
1、定时结束后有提示音报警,并可重新定时
2、定时时间可设置,最多30s。
3、定时过程中可暂停
三、实验原理
要精确显示1s%,则定时时间应设为10ms,单片机外接11.0592M晶振,定时初值自己计算。
每中断一次百分秒位减一。
流程图如下:
DISPLAY子程序设计参考实验三,SUBONE子程序设计参考实验五。
实验八:
基于DS18B20的数字温度计设计
一、实验目的
1、了解单总线器件的工作方式和编程原理。
2、掌握DS18B20工作原理和与单片机接口设计方法。
二、实验内容
利用单片机实验板设计温度测量程序,精确到0.1°C
发挥部分:
1、超过设定温度范围报警(声、光、显示)
2、温度控制(模拟)
三、实验原理
DS18B20是带A/D转换的单总线温度传感器,与单片机的连接方法如图
DS18B20特征:
1、单总线技术,只需要一个端口与主机通信
2、温度测量范围摄氏-55°C~+125°C,华氏-67°F~+257°F
3、-10°C~+85°C间测量误差在±0.5°C以内
4、温度测量精度可编程控制(9位到12位)
5、12位精度时温度转换时间750ms(最大)
DS18B20存储器映射表
DS18B20与单片机通信流程
单片机与DS18B20一次完整的通信过程由以下4步组成:
DS18B20初始化
所有操作都必须由初始化脉冲开始,波形如图,单片机先输出一个480~960us低电平到DQ引脚,再将DQ引脚置高电平,过15~60us后检测DQ引脚状态,若为低电平则DS18B20工作正常,否则初始化失败,不能正常测量温度。
DS18B20ROM操作命令
共有读ROM[33H]、ROM匹配[55H]、跳过ROM检测[CCH]、查找ROM[F0H]和AlarmSearch[ECH]5条命令。
本实验中因为只使用一片DS18B20,故不需做ROM操作,此步骤用[CCH]命令跳过
DS18B20内存操作命令
1、写暂存器命令【4EH】
这个命令为由TH寄存器开始向DS18B20暂存器写入数据,4EH命令后的3字节数据将被保存到暂存器的地址2、3、4(TH、TL、CONFIG)三个字节中。
所有数据必须在复位脉冲(向DQ输出480~960us低电平)前写完。
2、读暂存命令【BEH】
这个命令由字节0读取9个暂存器内容,如果不需要读取所有暂存内容,可随时输出复位脉冲终止读取过程
3、转换温度命令【44H】
这个命令启动温度转换过程。
转换温度时DS18B20保持空闲状态,此时如果单片机发出读命令,DS18B20将输出0直到转换完成,转换完成后将输出1。
流程图:
思考:
通过前面的学习我们了解了DS18B20的控制命令和数据传输过程,但这些命令都是一个字节的数据,那么怎么通过单总线发送这些命令以及通过单总线读取12位温度转换数据呢?
只能是用串行的方式一位一位的传输,那么掌握其读写时序就显得非常重要了。
写时隙
写时隙由DQ引脚的下降沿引起。
18B20有写1和写0两种写时隙。
所有写时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。
DS18B20在DQ下降沿后15μs~60μs间采样DQ引脚,若此时DQ为高电平,则写入一位1,若此时DQ为低电平,则写入一位0,如下图所示。
所以,若想写入1,则单片机应先将DQ置低电平,15us后再将DQ置高电平,持续45μs;若要写入0,则将DQ置低电平,持续60μs。
读时隙
读时隙由DQ下降沿引起,持续至少1μs的低电平后释放总线(DQ置1)DS18B20的输出数据将在下降沿15μs后输出,此时单片机可读取1位数据。
读时隙结束时要将DQ置1。
所有读时隙必须持续至少60μs,两个时隙之间至少有1μs的恢复时间。
TINIT、TRC和TSAMPLE之和必须小于15μs,且应尽可能的将TINIT和TRC保持最小。
读取温度数据的处理
读取的12为温度数据格式如图,高字节(MSB)的低四位和低字节(LSB)的高四位组成温度数据的整数部分,低字节的低四位为小数部分。
负温度采用补码表示,对于接收的数据应做相应处理转换成10进制数显示。
此处流程图省略,由同学们自己设计。
实验九红外遥控信号的接收和解码
一、实验目的:
掌握红外遥控信号的解调、解码原理
二、实验内容:
找任意一个遥控器,编写红外信号接收程序,将接收到的键数据编码在数码管上显示出来。
要求设计相应流程图。
三、实验原理:
家电的遥控一般采用由红外发射管发出的红外线作为指令传输媒介,为了增加传输距离、提高抗干扰性,一般经过编码,由载波调制后发出,如图所示:
实验板上的红外接收管SM0038具备接收、解调、TTL电平输出等功能。
其解调后波形如图
因此,只要了解遥控器编码标准,就可利用SM0038接收、解调红外信号,然后编写程序由单片机解码。
下面介绍一种常用的编码标准——UPD6121G
若有键按下,每108ms输出一帧数据,每帧数据的长度根据0和1的个数由58.5ms~76.5ms。
每帧数据由引导码开始,随后共32位数据,分别位16位用户编码,8位键数据码和8位键数据反码。
引导码由9ms载波波形和4.5ms关断时间构成,作为随后发射码的引导,编码采用脉冲位置调制方式(PPM)。
利用脉冲之间的时间间隔来区分0和1。
0.56ms载波和0.56ms关断时间代表‘0’,0.56ms载波和1.68ms关断时间代表‘1’下方为SM0038解调后波形。
四、实验连线图
五、流程图
略
红外信号为串行接收,请同学们参考实验八DS18B20的接收流程自行设计流程图。
实验十串行EEPROM读出与写入
一、实验目的
1、了解串行EEPROM的工作原理
2、掌握单片机与串行EEPROM的连接方法
3、尝试查看英文资料
二、实验内容
利用单片机的接口与SCL、SDA的连接实现串行EEPROM的读写,AT24C02的资料见附录3。
三、电路连线
1、SCL------P30
2、SDA------P31
四、实验原理
实验十一基于DS1302的精密电子时钟设计
一、实验目的
1、掌握时、分、秒的设计方法
2、全面掌握定时、中断、调时的运用
3、了解时钟的工作原理和编程方法
二、实验内容
使用单片机控制DS1302与LED实现电子时钟的功能,要求显示时分秒、年月日、星期,并能设置时间。
程序流程根据DS1302资料自己设计。
三、电路连线
四、实验原理
1、时钟芯片在实验板上位置
2、DS1302特性:
●实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数
●用于高速数据暂存的31×8RAM
●2引脚的串行I/O
●2.5-5.5V满度工作范围
●用于时钟或RAM数据读写的单字节或多字节数据传送
●双电源引脚
●可选慢速充电至VCC1
DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM通过简单的串行接口与单片机进行通信,实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息,每月的天数和闰年的天数可自动调整。
时钟操作可通过AM/PM指示决定采用24或12小时格式。
DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三根线:
RST、I/O和SCLK。
时钟/RAM的读/写数据可以一个字节或多达31个字节的字符组方式通信。
DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mW。
内部结构如图。
3、引脚功能
4、电路连接
5、DS1302与单片机通信
每一数据传送由命令字节初始化,命令字节格式如图:
6、输入输出时序举例
输入:
跟随在输入写命令字节的8个SCLK周期之后,在下8个SCLK周期的上升沿输入数据字节。
如果有额外的SCLK周期,它们将被忽略。
数据从bit0开始输入
输出:
跟随在输入读命令字节的8个SCLK周期之后,在下8个SCLK周期的下降沿输出数据字节。
注意:
被传送的第一个数据位发生在写命令字节的最后一位之后的第一个下降沿。
只要RST保持高电平,如果有额外的SCLK周期,它们将重新发送数据字节,这一操作使之具有连续的多字节方式的读能力。
另外,在SCLK的每一个上升沿,I/O引脚为三态。
数据由bit0开始输出。
7、存储器映射表
各存储器介绍
秒寄存器的bit7为时钟停止位,为1时钟暂停,为0时钟启动。
小时寄存器的bit7为1选择12小时方式,此时bit5为0代表am,为1代表pm;bit7为0选择24小时方式,此时bit5为第二个十小时位。
附录一:
89s52中文资料
主要性能
●与MCS-51单片机产品兼容
●8K字节在系统可编程Flash存储器
●1000次擦写周期
●全静态操作:
0Hz~33Hz
●三级加密程序存储器R
●32个可编程I/O口线
●三个16位定时器/计数器
●八个中断源
●全双工UART串行通道
●低功耗空闲和掉电模式
●掉电后中断可唤醒
●看门狗定时器
●双数据指针
●掉电标识符
功能特性描述
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
VCC:
电源
GND:
地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实验 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)