05 单片机大作业解析.docx
- 文档编号:15144561
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:14
- 大小:715.71KB
05 单片机大作业解析.docx
《05 单片机大作业解析.docx》由会员分享,可在线阅读,更多相关《05 单片机大作业解析.docx(14页珍藏版)》请在冰点文库上搜索。
05单片机大作业解析
51单片机I/O引脚应用实例
80C51单片机共有40个引脚,这些引脚是单片机重要的基础模块之一,用来与外部系统进行信息与数据交换,扩展外围器件,或者直接驱动外部设备。
本文主要对80C51引脚模块进行简要说明,并对其主要应用实例做出仿真报告。
151单片机I/O引脚模块介绍
80C51单片机有4个8位的并行I/O口,分别为P0、P1、P2、P3,其中P0和P2既可以用做普通I/O端口,也可以当成数据地址端口,P3则在作为普通I/O的同时还具有第二功能,只有P1口仅仅用做普通I/O口。
图1.1是80C51单片机的外部引脚示意图
图1.1
P0P3口支持位寻址操作,均有一定的电流驱动能力,可以驱动一些外部设备,但是由于P0是开漏输出的结构,所以用做普通I/O引脚时需要外加上拉电阻。
P3的第二功能如表1.1所示
表1.1
引脚号
第二功能
说明
P3.0
RXD
串行口数据接收输入
P3.1
TXD
串行口数据接收输出
P3.2
INT0
外部中断0输入
P3.3
INT1
外部中断1输入
P3.4
T0
定时/计数器0外部输入
P3.5
T1
定时/计数器1外部输入
P3.6
WR
片外数据存储器写选通
P3.7
RD
外部数据存储器读选通
2LED闪烁实例
LED闪烁实例中使用51单片机控制8个LED间隔亮、灭,形成闪烁效果,这种效果常常用于指示单片机系统的运行状态。
图2.1是LED闪烁实例的电路图,8个LED使用灌电流的驱动方式连接在51单片机的P1端口上,表2.1是实例使用的典型器件说明。
表2.1LED闪烁实例器件列表
器件
说明
发光二极管LED
显示LED状态
限流电阻
对通过LED的电流大小进行限制
晶体
51单片机工作的振荡器
电容
51单片机复位和振动源工作的辅助器件
图2.1LED闪烁实例电路图
程序代码使用两个嵌套的for循环语句来控制延时,当到达延时之后是P1输出电平翻转,程序见图2.2
图2.2
3流水数字
流水数字是一个51单片机使用I/O引脚驱动单位8段数码管的实例,数码管轮流地循环显示“0”~“F”数字或字符,通常用于在单片机系统中显示一些数字或者字符。
流水数字实例的电路图如图3.1所示,单位8段共阳极数码管的公共端连接到VCC上,数码管的8位数据引脚则连接到P1的八位引脚上,使用1K电阻作为限流电阻,表3.1是使用的典型期间说明。
表3.1数字流水实例器件列表
器件
说明
8段数码管
显示数字或字符
限流电阻
对通过数码管的电流大小进行限制
晶体
51单片机工作的振荡器
电容
51单片机复位和振荡源工作的辅助器件
图3.1流水数字实例电路图
与LED闪烁实例类似,51单片机使用两个嵌套的for循环来进行软件延时,然后通过P1引脚将对应字符的字形编码送出供数码管显示,代码中使用一个存放在code存储器的数组SEGtable来存放字形编码,用一个counter计数器来指示当前应该输出的数字或者字符的字形编码在表格中的位置。
程序见图3.2
图3.2
4轮流加热显示系统应用实例
轮流加热显示系统是一个用51单片机控制3个继电器轮流接通、给3个设备加热5s并使用一位数码管来显示当前正在加热的设备编号的应用实例。
图4.1是轮流加热显示系统实例的应用电路,51单片机用P2端口通过ULN2803驱动3个工作电压5V的继电器,用P1口驱动一个数码管用于显示当前接通的继电器编号。
表4.1是实例中涉及的典型器件说明
表4.1轮流加热显示系统器件说明
器件
说明
8段数码管
显示数字或者字符
限流电阻
对通过数码管的电流大小进行限制
ULN2803
功率驱动器件,用于驱动继电器
继电器
外围控制器件
晶体
51单片机工作的振荡源
电容
51单片机复位和振荡源工作的辅助器件
图4.1轮流加热显示系统实例应用电路
轮流加热显示系统实例的应用代码,使用3个位变量来控制继电器的同/断,分别对应P2.0、P2.1、P2.2引脚。
为了便于阅读,使用宏定义对继电器的通/断和显示数字等进行预定义操作。
由于继电器是使用“灌电流”驱动方式来驱动,所以当对应的I/O引脚输出低电平时该继电器闭合。
在代码的编写中使用宏定义#defineON0来代表继电器闭合以增强代码的可读性;同理,有代表继电器断开的宏定义#defineOFF1。
在主函数中使用Delayms函数来控制延时。
程序见图4.2
图4.2
5蜂鸣器音乐播放实例
音乐的音高与频率是对应的,如频率为256Hz的音就是C调的“1”,频率为288Hz的音为“2”,以此类推。
用不同的频率驱动蜂鸣器,就会产生不同的音高,I/O引脚持续不断输出不同的音高,其时间长短即为拍子的长短,即可演奏音乐。
音乐播放实例是一个使用51单片机控制压电蜂鸣器来播放“祝你生日快乐”音乐的实例。
见图5.1
图5.1蜂鸣器音乐播放实例电路图
51单片机使用P1.2来控制蜂鸣器的同/断。
首先通过歌曲的曲谱计算一定长度歌曲与其对应的音节,存放在code区的数据组中,然后将高、低音阶频率的列表分别存放在FREQH和PREQL数组中,并且根据数组中的音阶计算出对应的频率,送到定时器0控制其定时进而控制蜂鸣器导通。
程序见图5.2
图5.2
6按键发声应用实例
在单片机应用系统中常常需要在输入时发出一些提示音,按键发声实例是一个用51单片机扩展S1~S2共4个独立按键的实例,当按键按下时,蜂鸣器发声,每个独立按键对应不同的蜂鸣器的声调。
图6.1是按键发声的应用电路图,4个按键连接到P1的P1.0~P1.3四个引脚上,连接方式和按键指示相同,P2.7使用NPN三极管驱动一个蜂鸣器。
表6.1是实例的典型器件列表。
表6.1按键发声实例器件列表
器件
说明
按键
按下和不按下具有不同的状态
蜂鸣器
发声以指示按键状态
电阻
上拉和限流
晶体
51单片机工作的振荡源
电容
51单片机复位和振荡源工作的辅助器件
图6.1按键发声实例电路图
51单片机首先判断P1上有没有按键按下,如果有,再次判断是哪个键按下,并且根据不同的键驱动蜂鸣器循环使用不同的频率发声,用于区别不同的按键按下的状态。
程序见图6.2
图6.2
7按键控制直流电动机应用实例
本实例使用3个按键来控制直流电动机,用P1.0和P1.1通过全桥来控制直流电动机的转动,当S1按下时电动机正向转动,当S2按下时电动机反向转动,当S3按下时电动机停止转动,发光二极管D1~D3用于指示电动机的工作状态,D1亮时为正转,D2亮时为翻转,D3亮时为停止。
实例应用电路如图7.1所示
51单片机使用P1.2~P1.2扩展了3个按键,使用P1.5~P1.7灌电流方式扩展了3个发光二极管,直流电动机使用全桥方式通过P1.0和P1.2驱动。
表7.1是实例中典型器件的说明。
表7.1按键控制直流电动机实例器件列表
器件
说明
按键
控制电动机
LED
显示电动机工作状态
直流电动机
单片机控制的对象
三极管
搭建H桥相以控制直流电动机
电阻
限流、上拉、组成H桥
晶体
51单片机工作的振荡源
电容
51单片机复位和振荡源工作的辅助器件
图7.1按键控制直流电动机实例电路图
单片机循环查询P1.2~P1.3端口的按键状态,如果有按键按下,操作发光二极管和电动机控制的对应端口输出相应的状态。
程序见图7.2
图7.2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 05 单片机大作业解析 单片机 作业 解析
![提示](https://static.bingdoc.com/images/bang_tan.gif)