单片机原理及应用-C51语言李全利.ppt

上传人:牧羊曲112 文档编号:5044711 上传时间:2023-05-31 格式:PPT 页数:36 大小:2.58MB
返回 下载 相关 举报
单片机原理及应用-C51语言李全利.ppt_第1页
第1页 / 共36页
单片机原理及应用-C51语言李全利.ppt_第2页
第2页 / 共36页
单片机原理及应用-C51语言李全利.ppt_第3页
第3页 / 共36页
单片机原理及应用-C51语言李全利.ppt_第4页
第4页 / 共36页
单片机原理及应用-C51语言李全利.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《单片机原理及应用-C51语言李全利.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用-C51语言李全利.ppt(36页珍藏版)》请在三一办公上搜索。

1、2023/5/31,1,第4章 80C51人机接口技术,LED、数码管及蜂鸣器接口技术,4.1,按键及键盘接口技术,4.2,字符型LCD显示器接口技术,4.3,单片机最小系统AT89S52,LED数码管蜂鸣器LCD,按键键盘开关,每根口线最大可吸收10mA的(灌)电流 P0口吸收电流的总和不能超过26mA P1、P2和P3每个口吸收电流的总和限制在15mA 4个口所有口线的吸收电流总和限制在71mA,2023/5/31,3,4.1 LED、数码管及蜂鸣器接口技术,4.1.1 LED接口,LED的特性及其灌电流驱动,LED典型工作点:1.75V,10mA。单个LED驱动特性如下图:,多个LED,

2、并口直接驱动 限流与上拉电阻共享驱动,2023/5/31,5,void main(void)uchar i;P21=1;while(1)for(i=0;i8;i+)DataPort=ScanCodei;DelayMs(500);,【例4-1】,2023/5/31,6,数码管,4.1.2 数码管接口,2023/5/31,7,晶体三极管驱动,2023/5/31,8,达林顿阵列驱动,2023/5/31,9,常序相接时,uchar code SegCode=/段码0 x3F,0 x06,0 x5B,0 x4F;,共阴极字形“1”编码示例:06H,2023/5/31,10,uchar code SegC

3、ode=/段码0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90;uchar code BitCode=0 xfe,0 xfd,0 xfb,0 xf7;/位码,uchar DispBuf4;/显示数字要先送入此缓冲数组,void BufToSeg(void)uchar i;for(i=0;i 4;i+)P0=SegCodeDispBufi;/送段码 P2=BitCodei;/送位码 DelayMs(1);,【例4-2】部分代码,非常序相接时,字形“1”常序编码:06H,字形“1”该序编码:A0H,uchar code SegC

4、ode=0 xAF,0 xA0,0 xC7,0 xE5;uchar code BitCode=0 x04,0 x20,0 x10,0 x08;,void BufToSeg(void)不变!,2023/5/31,12,蜂鸣器及其接口,有源蜂鸣器:接额定电压就可连续发声,无源蜂鸣器:接入变频方波,可得到不同音调的声音,4.1.3 蜂鸣器接口,例:以频率800Hz发声,发声时间250ms,静音1000ms。,while(1)for(j=400;j 0;j-)/发声250ms BEEP=BEEP;/取反及调用指令占用约3us d622us();/共延时625us,周期1250us,频率800Hz fo

5、r(j=400*4;j 0;j-)/静音1000ms BEEP=1;/关闭蜂鸣器 d622us();,4.2.1 独立按键接口,按键及其消抖,简单开关及输入接口,4.2 按键及键盘接口技术,2023/5/31,15,开关闭合与断开时的抖动及去抖电路,按键较少时:去抖电路,按键较多时:软件延时,通常为10ms,2023/5/31,16,矩阵键盘接口电路,4.2.2 键盘接口,逐行扫描法,判有无键按下。将列线设置为输出口,输出全0(所有列线为低电平),然后读行线状态,若行线状态不全为高电平,则可断定有键按下。判按下哪个键。先置列线C0为低电平,其余列线为高电平,读行线状态,如行线状态不全为“1”,

6、则说明所按键在该列;否则所按键不在该列,再使C1列线为低电平,其它列为高电平,判断C1列有无按键按下。其余类推。获得相应键号。键号:键号=行首号+列号。行首号为行数乘以行号。根据键号就可以进入相应的键功能实现程序。,线反转法,例如按下“2”号键,先使列线输出全“0”,读行线,结果为E0H;再使行线输出全“0”,读列线,结果为0BH。将2次读到的结果拼成一个字节,即EBH,该值称为键值。,4.3 字符型LCD显示器接口技术,4.3.1 LCD1602模块的外形与引脚,引脚01、02:VSS、VDD,接地和+5V引脚引脚03:VL,对比度调整端,接地时对比度最高引脚04:RS,1-数据寄存器/0-

7、命令寄存器引脚05:RW,1-读/0-写引脚06:E,使能端引脚0714:D0D7,8位双向数据线引脚15、16:BLA、BLK,背光正、负极,LCD1602模块组成,4.3.2 LCD1602模块的组成,对于16x2字符的显示要增加HD44100驱动器,HD44780本身可以驱动16x1字符或8x2字符,HD44780,HD44780由三部分构成:,CGROM 字符发生器,存储不同的点阵字符图形表,每个字符都有固定的代码。CGRAM 自定义字符发生器,可定义8个字符图形。DDRAM 显示缓冲区。,例:代码41H显示字符“A”。,CGROM,CGRAM,可以自定义8个字符:07 或8-15,C

8、GRAM的内容:,unsigned char code WeekWord=,LoadCgram(WeekWord);DispChar(0,1,0);LoadCgram定义为:WCmd(0 x40);for(i=0;i64;i+)WDat(ptcgrami);,DDRAM有80个单元,但第1行仅用00H0FH单元,第2行仅用40H4FH单元,4.3.3 LCD1602模块的命令,4.3.4 LCD1602模块的命令,接口电路,驱动程序,sbit RS=P2 0;/*命令/数据选择*/sbit RW=P2 1;/*读/写选择*/sbit EN=P2 2;/*高到低使能*/,uchar code d

9、is1=WELCOME TO;uchar code dis2=HUST ZDH;,uchar code WeekWord=0 x18,0 x18,0 x07,0 x08,0 x08,0 x08,0 x07,0 x00,/,代码 0 x00 0 x00,0 x00,0 x00,0 x00,0 xff,0 x00,0 x00,0 x00,/一,代码 0 x01-;,void WCmd(uchar cmd)Busy();RS=0;RW=0;EN=1;P0=cmd;D10us();EN=0;,写命令函数:,写数据函数:,void WDat(uchar dat)Busy();RS=1;RW=0;EN=1

10、;P0=dat;D10us();EN=0;,void Init()DelayMs(10);WCmd(0 x38);/功能设置:8位口,2行,5*7点阵DelayMs(10);WCmd(0 x0c);/显示设置:开显示,关光标,无闪烁DelayMs(10);WCmd(0 x06);/输入模式:右移一格,地址加1DelayMs(10);WCmd(0 x01);/清显示DelayMs(10);,初始化函数:,void Pos(uchar x,uchar y)if(y=0 x01)WCmd(x|0 x80);/高位置1if(y=0 x02)WCmd(x|0 xc0);/高位置1,再加40H,位置设置及

11、在指定位置显示字符函数:,void DispChar(uchar x,uchar y,uchar dat)Pos(x,y);WDat(dat);,void WStr(uchar str)uchar num=0;while(strnum)WDat(strnum+);DelayMs(100);DelayMs(100);,显示字符串函数:,显示示例:,Init();while(1)Pos(0,1);/第一行显示WStr(dis1);Pos(0,2);/第二行显示WStr(dis2);DelayMs(1000);LoadCgram(WeekWord);DispChar(0,1,0);DelayMs(3000);WCmd(0 x01);/清显示内容DelayMs(2);,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号