单片机原理及应用 C51语言课件.ppt

上传人:牧羊曲112 文档编号:1801556 上传时间:2022-12-19 格式:PPT 页数:36 大小:2.75MB
返回 下载 相关 举报
单片机原理及应用 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、2022/12/19,1,第4章 80C51人机接口技术,LED、数码管及蜂鸣器接口技术,4.1,按键及键盘接口技术,4.2,字符型LCD显示器接口技术,4.3,单片机最小系统AT89S52,LED数码管蜂鸣器LCD,按键键盘开关,每根口线最大可吸收10mA的(灌)电流 P0口吸收电流的总和不能超过26mA P1、P2和P3每个口吸收电流的总和限制在15mA 4个口所有口线的吸收电流总和限制在71mA,2022/12/19,3,4.1 LED、数码管及蜂鸣器接口技术,4.1.1 LED接口,LED的特性及其灌电流驱动,LED典型工作点:1.75V,10mA。单个LED驱动特性如下图:,多个LE

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

3、19,10,uchar code SegCode = / 段码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

4、”常序编码:06H,字形“1”该序编码:A0H,uchar code SegCode =0 xAF,0 xA0,0 xC7,0 xE5; uchar code BitCode= 0 x04,0 x20,0 x10,0 x08;,void BufToSeg(void)不变!,2022/12/19,12,蜂鸣器及其接口,有源蜂鸣器:接额定电压就可连续发声,无源蜂鸣器:接入变频方波,可得到不同音调的声音,4.1.3 蜂鸣器接口,例:以频率800Hz发声,发声时间250ms,静音1000ms。,while (1) for (j = 400; j 0; j-) /发声250ms BEEP = BEEP;

5、 /取反及调用指令占用约3us d622us(); /共延时625us,周期1250us,频率800Hz for (j = 400*4; j 0; j-) /静音1000ms BEEP = 1; /关闭蜂鸣器 d622us(); ,4.2.1 独立按键接口,按键及其消抖,简单开关及输入接口,4.2 按键及键盘接口技术,2022/12/19,15,开关闭合与断开时的抖动及去抖电路,按键较少时:去抖电路,按键较多时:软件延时,通常为10ms,2022/12/19,16,矩阵键盘接口电路,4.2.2 键盘接口,逐行扫描法,判有无键按下。将列线设置为输出口,输出全0(所有列线为低电平),然后读行线状态

6、,若行线状态不全为高电平,则可断定有键按下。 判按下哪个键。先置列线C0为低电平,其余列线为高电平,读行线状态,如行线状态不全为“1”,则说明所按键在该列;否则所按键不在该列,再使C1列线为低电平,其它列为高电平,判断C1列有无按键按下。其余类推。 获得相应键号。键号:键号 = 行首号+列号。行首号为行数乘以行号。根据键号就可以进入相应的键功能实现程序。,线反转法,例如按下“2”号键,先使列线输出全“0”,读行线,结果为E0H;再使行线输出全“0”,读列线,结果为0BH。将2次读到的结果拼成一个字节,即EBH,该值称为键值。,4.3 字符型LCD显示器接口技术,4.3.1 LCD1602模块的

7、外形与引脚,引脚01、02:VSS、VDD,接地和+5V引脚引脚03:VL,对比度调整端,接地时对比度最高引脚04:RS,1-数据寄存器/0-命令寄存器引脚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、可定义8个字符图形。DDRAM 显示缓冲区。,例:代码41H显示字符“A”。,CGROM,CGRAM,可以自定义8个字符: 07 或8-15,CGRAM的内容:,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

9、 RS = P2 0; /*命令/数据选择*/sbit RW = P2 1; /*读/写选择*/sbit EN = P2 2; /*高到低使能*/,uchar code dis1= 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()

10、;RS = 0;RW = 0;EN = 1;P0= cmd;D10us();EN = 0;,写命令函数:,写数据函数:,void WDat(uchar dat)Busy(); RS = 1;RW = 0;EN = 1;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); /清显示D

11、elayMs(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,位置设置及在指定位置显示字符函数:,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号