单片机原理及接口技术(c51编程)05

单片机原理及接口技术(c51编程)05

ID:21716324

大小:7.25 MB

页数:233页

时间:2018-10-20

单片机原理及接口技术(c51编程)05_第1页
单片机原理及接口技术(c51编程)05_第2页
单片机原理及接口技术(c51编程)05_第3页
单片机原理及接口技术(c51编程)05_第4页
单片机原理及接口技术(c51编程)05_第5页
资源描述:

《单片机原理及接口技术(c51编程)05》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第5章单片机的开关检测、键盘输入与显示的接口设计单片机原理及接口技术(C51编程)(第2版)目录CONTENTS5.1单片机控制发光二极管显示5.2开关状态检测5.3单片机控制LED数码管的显示5.4单片机控制LED点阵显示器显示5.5单片机控制液晶显示模块1602LCD的显示5.6键盘接口设计5.1单片机控制发光二极管显示发光二极管常用来指示系统工作状态,制作节日彩灯、广告牌匾等。大部分发光二极管工作电流1~5mA之间,其内阻为20~100Ω。电流越大,亮度也越高。为保证发光二极管正常工作,同时减

2、少功耗,限流电阻选择十分重要,若供电电压为+5V,则限流电阻可选1~3kΩ。5.1.1单片机与发光二极管的连接第2章已介绍,P0口作通用I/O用,由于漏极开路,需外接上拉电阻。而P1~P3口内部有30kΩ左右上拉电阻。下面讨论P1~P3口如何与LED发光二极管驱动连接问题。单片机并行端口P1~P3直接驱动发光二极管,电路见图5-1。与P1、P2、P3口相比,P0口每位可驱动8个LSTTL输入,而P1~P3口每一位驱动能力,只有P0口一半。5.1.1单片机与发光二极管的连接图5-1发光二极管与单片机并

3、行口的连接5.1.1单片机与发光二极管的连接当P0口某位为高电平时,可提供400µA的拉电流;当P0口某位为低电平(0.45V)时,可提供3.2mA的灌电流,而P1~P3口内有30kΩ左右上拉电阻,如高电平输出,则从P1、P2和P3口输出的拉电流Id仅几百µA,驱动能力较弱,亮度较差,见图5-1(a)。如端口引脚为低电平,能使灌电流Id从单片机外部流入内部,则将大大增加流过的灌电流值,见图5-1(b)。AT89S51任一端口要想获得较大的驱动能力,要用低电平输出。如一定要高电平驱动,可在单片机与发光

4、二极管间加驱动电路,如74LS04、74LS244等。5.1.2I/O端口的编程举例对I/O端口编程控制时,要对I/O端口特殊功能寄存器声明,在C51的编译器中,这项声明包含在头文件reg51.h中,编程时,可通过预处理命令#include,把这个头文件包含进去。下面通过案例介绍如何编程对发光二极管输出控制。5.1.2I/O端口的编程举例【例5-1】制作流水灯,原理电路见图5-2,8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。

5、编写程序来控制发光二极管由上至下的反复循环流水点亮,每次点亮一个发光二极管。5.1.2I/O端口的编程举例图5-2单片机控制的流水灯5.1.2I/O端口的编程举例参考程序:#include#include//包含移位函数_crol_()的头文件#defineucharunsignedchar#defineuintunsignedintvoiddelay(uinti)//延时函数{uchart;while(i--){for(t=0;t<120;t++);}}5.

6、1.2I/O端口的编程举例voidmain()//主程序{P1=0xfe;//向P1口送出点亮数据while(1){delay(500);//500为延时参数,可根据实际需//要调整P1=_crol_(P1,1);//函数_crol_(P1,1)把P1中的数据//循环左移1位}}5.1.2I/O端口的编程举例(1)while(1)两种用法:“while(1);”:while(1)后有分号,是使程序停留在这指令上;“while(1){……;}”:反复循环执行大括号内程序段,本例用法,即控制流水灯反复循

7、环显示。5.1.2I/O端口的编程举例(2)C51函数库中的循环移位函数:循环移位函数包括:循环左移函数“_crol_”。循环右移函数“_cror_”。本例用循环左移“_crol_(P1,1)”,函数。括号第1个参数为循环左移对象,即对P1中的内容循环左移;第2个参数为左移位数,即左移1位。编程中一定要把含有移位函数的头文件intrins.h包含在内,例如第2行“#include”。5.1.2I/O端口的编程举例在【例5-1】基础上,编写控制发光二极管反复循环点亮的流水灯。【例

8、5-2】电路见图5-2,制作由上至下再由下至上反复循环点亮显示的流水灯,3种方法实现。数组的字节操作实现建立1个字符型数组,将控制8个LED显示的8位数据作为数组元素,依次送P1口。参考程序:01OPTION5.1.2I/O端口的编程举例#include#defineucharunsignedcharuchartab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0x7f,0xbf,0xdf,0xef,0xf7

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。