单片机基础教程 教学课件 ppt 作者 杨宏丽 王静霞 第10章

上传人:E**** 文档编号:89376604 上传时间:2019-05-24 格式:PPT 页数:38 大小:2.08MB
返回 下载 相关 举报
单片机基础教程 教学课件 ppt 作者  杨宏丽 王静霞 第10章_第1页
第1页 / 共38页
单片机基础教程 教学课件 ppt 作者  杨宏丽 王静霞 第10章_第2页
第2页 / 共38页
单片机基础教程 教学课件 ppt 作者  杨宏丽 王静霞 第10章_第3页
第3页 / 共38页
单片机基础教程 教学课件 ppt 作者  杨宏丽 王静霞 第10章_第4页
第4页 / 共38页
单片机基础教程 教学课件 ppt 作者  杨宏丽 王静霞 第10章_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《单片机基础教程 教学课件 ppt 作者 杨宏丽 王静霞 第10章》由会员分享,可在线阅读,更多相关《单片机基础教程 教学课件 ppt 作者 杨宏丽 王静霞 第10章(38页珍藏版)》请在金锄头文库上搜索。

1、第 10章 操作单片机的外部接口,本章内容,项目引导1简易秒表,项目实施,相关知识,项目引导2简易密码锁,“简易电子秒表”项目需求分析,“简易秒表”的关键问题,如何运用单片机实现计时 如何显示时间 如何利用按键实现对秒表的控制,问题引入:,LED显示器如何显示出指定数字/字符?,知识1:认识八段LED数码管,LED八段数码管的结构,共阴极,共阳极,知识2:单片机驱动一个LED,编程:(以共阳极为例) MOV P1,#11111001B(0F9H) SJMP $,显示什么?,数码管的字型编码表,2个LED数码管和单片机的连接1,单片机,P2.0,P2.7,a,b,c,d,e,f,g,dp,+5v

2、,编程:(以共阳极为例) MOV P2,#11111001B(0F9H) MOV P0,#10100100B(0A4H) SJMP $,静态连接,静态显示,“简易电子秒表”项目实施,电路设计,显示部分电路说明 P0口输出并联控制二个数码管的8个段选端 P2.0、P2.1分别控制2个LED数码管的公共端,把各个数码管的公共端称为“位选端” 这是典型的动态显示电路接法 各数码管共用段选线,通过位选控制线分别选择在某位数码管显示信息。 按键连接 三个按键采用独立式键盘接法 两个按键连接到外部中断INT0、INT1的输入引脚P3.2和P3.3,第3个按键接到定时器1的外部脉冲输入引脚P3.5 按键1为

3、启动按钮,按键2为停止按钮,按键3为清零按钮。,“简易秒表”程序设计,主程序流程图,定时器中断程序流程图,“简易秒表”程序运行及演示 主程序调试通过后,当无键按下时,将一直显示初值“00”。 分别调试四个中断服务子程序:当按键KE0按下时,程序将会进入对应按键0的中断服务程序,启动各定时器开始计时,这时若在CONT中断服务子程序中设置断点,全速运行程序后将会停在断点处,表明程序运行状态正确; 当按键KE1按下时,停止定时器工作,秒表显示内容保持不变; 当按键KE2按下时,停止定时器工作,秒表显示清零.最后将各模块联调实现全部功能,知识3:单片机驱动多个LED的动态显示,电路特点:数码管数量增多

4、,采用静态显示方式,将需要更多的单片机I/O资源 可采用动态连接的方式,多个LED数码管和单片机的连接,单片机,P2.0,P2.7,a,b,c,d,e,f,g,dp,想一想:和静态连接的区别在哪里?,单片机,P2.0,P2.7,a,b,c,d,e,f,g,dp,电路的接法决定了必须采用逐位扫描显示方式。 即从段选口送出某位LED的字型码,然后选通该位LED, 并保持一段延时时间。然后选通下一位,直到所有位扫 描完。,怎样实现显示呢?,简单的程序流程,选中第一个LED (P0.0为1,其他为0),送“1”的字型码,延时,延时时间若为1S、10mS看到的现象分别是什么?,用 循 环 的 程 序 流

5、 程,设置初始值,P0选中LED的一位 (BYTE),送该位的字型码(P2),延时,位左移 指向下一位,WORD加1 指向下一位的字型码,4位显示完?,MAIN: MOV DPTR,#TAB MOV P0,#00H MOV R7,#04H MOV BYTE,#01H MOV WORD,#01H,NEXT-BYTE: MOV A,BYTE MOV P0,A,MOV A,WORD MOVC A,A+DPTR MOV P2,A,LCALL DELAY10MS,MOV A,BYTE RL A MOV BYTE,A,INC WORD,DJNZ R7,NEXT-BYTE LJMP MAIN,问题:TAB怎

6、样建立?,BYTE EQU 20H WORD EQU 21H,问题1:当数码管显示数字时,怎样使用查表程序?,1. 查表方法 MAIN: MOV WORD,#01H MOV R7,#04H NEXT-BYTE: MOV A, WORD ;若A01H MOVC A, A+DPTR ;A=0F9H MOV P2, A ;送P2口显示 INC WORD DJNZ R7,NEXT-BYTE,2. 表格建立 TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C0H,0A1H,86H,8EH (以上为共阳极字型码表,分别为0,

7、1,2,3,9,A,B,F),当显示的字型不是1,2,3,4这样连续的数字,怎样处理?,问题2:从缓冲区取数据的查表方法,内存中的一部分区域, 用来存放待显示的数据,可用指令来设置,例: MOV 40H,#01H MOV 41H,#02H MOV 42H,#01H MOV 43H,#06H MOV 44H,#03H MOV 45H,#00H,怎样取显示的 下一位?,INC R1,根据缓冲区的数据显示,设置初始值,P0选中LED的一位 (BYTE),查表送该位的字型码(P2),延时,位左移 指向下一位,R1加1 指向显示缓冲区的下一位,4位显示完?,MAIN: MOV DPTR,#TAB MOV

8、 P0,#00H MOV R7,#04H MOV BYTE,#01H MOV R0,#40H,NEXT-BYTE: MOV A,BYTE MOV P0,A,MOV A,R0 MOVC A,A+DPTR MOV P2,A,LCALL DELAY10MS,MOV A,BYTE RL A MOV BYTE,A,INC R0,DJNZ R7,NEXT-BYTE LJMP MAIN,BYTE EQU 20H,动手做 :点亮六个不同的数字,注意字型表的建立。 待显示的数字以十六进制的方式写入内存的显示缓冲区。,静态、动态显示方式总结,静态显示连接 所有LED的位选均共同连接到+VCC或GND,每个LED的

9、8根段选线分别连接一个8位并行I/O口。 原理简单;显示无闪烁;占用I/O资源较多。 动态显示连接 所有LED的段选线共同连接在一起共用一个 8位I/O口 而每个LED的位选分别由一根相应的I/O口线控制。 因此必须采用动态扫描显示方式。,知识4:单片机与按键的接口,“简易秒表”中按键和单片机的接口独立式按键 按键在单片机系统中属于输入设备,因此,可通过单片机的任何一个I/O口连接按键即可,图10.10是本章任务“简易秒表”按键的接口电路。电路中的三个上拉电阻是为了保证按键不按,I/O端口得到可靠的高电平。,按键的特点及输入原理,按键的分类: 触点式:机械;无触点式:电气 键输入原理: 通过按

10、键的接通与断开,产生两种相反的逻辑状态 低电平“0”与高电平“1”。 键功能的实现: 对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号送入累加器ACC,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,键盘接口需要解决的问题,是否有键按下,按键识别:,键抖动及消除:,机械按键抖动时间在5ms10ms之间,硬件方案双稳态去抖电路,软件方案延时10ms20ms后再次判断,消除方法:,求键号,独立式按键,接口电路:,特点:一线一键,

11、按键识别(编程)简单;但占用较多口线,适合8键以下使用。,例1:用P1口检测三个按键的状态并完成相应的功能,解:,资源分配: 用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。,流程图:,ORG 0000H KB: MOV P1,#0FFH MOV A,P1 CPL A ANL A,#07H JZ KB LCALL D10MS MOV A,P1 CPL A ANL A,#07H JZ KB,编程:按三个按键中的任一键都对应一个特定功能。,判断按键是否按下?,CJNE A,#01H,KB01 LCALL PGM1 SJMP KB KB01:CJNE A,#02

12、H,KB02 LCALL PGM2 SJMP KB KB02:CJNE A,#04H,KB LCALL PGM3 SJMP KB PGM1: RET,判断具体哪个键按下并转去执行相应功能,独立式按键项目实例-“简易密码锁”,基本功能:,“简易密码锁”电路设计,用于输入密码,用于显示输入状态,“密码锁”程序流程,矩阵式按键,关键:如何判断键号?,接口电路:,特点:按键识别应采用扫描法或线路反转法 编程较为复杂,节省口资源,8键以上使用,键盘扫描子程序一般包括以下内容: 1.判别有无键按下; 2.扫描获取闭合键的行、列值; 3.用计算法或查表法得到键值; 4.判断闭合键释放否,如没释放则继续等待;

13、 5.保存闭合键号。,键按下/释放判断,KS: MOV A,#00H MOV P1,A ;全扫描字#00H送P1口 MOV P1,#0FH MOV A,P1 ;读入P1口状态 CPL A ;变正逻辑,高电平表示有键按下 ANL A,#0FH ;取低4位 RET ;返回,A0表示有键按下,按键识别扫描法,流程: 当第0列处于低电平时,逐行查找是否有行线变低,若有,则第0列与该行的交叉点按键按下;若无,则表示第0列无键按下,再让下一列处在低电平,依此循环,这种方式称为键盘扫描。 键号=行首键号(0、4、8、12)+列号(0、1、2、3),原理: 在某一时刻只让一条列线处于低电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。,矩阵键盘扫描程序流程,定时扫描方式,定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。,中断扫描方式,为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号