单片机第4讲
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动2:学习7段LED数码管显示码
1.定义
在使用LED数码管时,为了显示数字和符号,要为LED数码 管提供代码,因为这些代码是通过控制各段的亮与灭来显示不同 的字符的,因此称之为段码,又叫做数码管显示码。7段发光二极 管加上一个小数点位,共计8段,所以提供给LED数码管的段码刚 好为一个字节(8位)。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动4:让1位LED数码管循环显示“0~9”
1.硬件设计 硬件电路如图3-1-15所示,图中采用共阳极数码管。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动4:让1位LED数码管循环显示“0~9”
2.流程图
单片机技术与应用(耿淬主编)
3.程序设计
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
活动3:6位LED数码管恒定显示“123456”
1.硬件电路
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
活动3:6位LED数码管恒定显示“123456”
2.流程图
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6” 指令说明
MOVC A,@A+DPTR指令说明 此条指令为变址寻址,也称基地址寄存器加变址寄存器间接 寻址,它是以程序计数器PC或数据指针DPTR作为基地址寄存 器,以累加器A作为变址寄存器,把两者内容相加形成操作数的 地址。 这种寻址方式常用于读取程序存储器中常数表。这条指令的 功能是把DPTR的内容作为基地址,DPTR为16位特殊功能寄存 器,其高8位在DPH(地址为83H的内部数据存储器)中,低8 位在DPL(地址为82H的内部数据存储器)中。 把累加器A的内容作为地址偏移量,两者相加后得到16位地 址,把该地址对应的程序存储器ROM单元中的内容送到A中,A 中原数据自动擦除。
1.矩阵键盘的结构
在一般的自动控制中,由于所接的按钮或开关并不是很多,因此每个 按钮或开关都可占用I/O口的一只引脚。但是在需要用键盘来输入数据的 场合,即按键的数量很多,采用上述方法的话,会占用太多I/O端口的引 脚,所以必须改用矩阵键盘来节省I/O口。那么什么是矩阵键盘呢?它的 结构是怎样的?见图3-3-1所示。
单片机技术与应用(耿淬主编)
任务三 用4*4矩阵键盘控制LED数码管
2.流程图
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
活动1:两位LED数码管恒定显示“34”
3.程序设计
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
活动1:两位LED数码管恒定显示“34”
4.程序说明
V0和V1是两只共阳极数码管的控制三极管。P2.0=0时三极管VO导通, 与其相连的共阳极数码管显示器开始工作(即低位数码管选通)。P2.0=1 时三极管VO截止,与其相连的数码管显示器停止工作。同理,当P2.1=0时 三极管V1导通,与其相连的共阳极数码管显示器开始工作(即高位数码管 选通)。P2.1=1时三极管VO截止,与其相连的数码管显示器停止工作。 扫描方式是指让两位数码管轮流工作,即个位显示时,十位关闭;十 位显示时,个位关闭。这样做的目的一是省电,二是节省输出端口。在静 态显示时,一个端口只能接一个数码管。而利用扫描方式一个端口可以接 几个数码管,并由数码管公共阳极的控制三极管决定哪只数码管显示。 两位数码管是轮流工作的,可是人眼却感到同时在亮,这是由于人眼 的视觉暂留,只要足够快,就能形成同时亮的感觉。 数码管显示的亮度及清晰度与每位点亮时间和每位显示的时间内轮换 导通次数有关。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动1:认识7段LED数码管 知识小贴士
无论是共阳极还是共阴极的LED数码管,每个LED上只要加 入1.5V左右的正向电压及10~20mA的正向电流,就可获得充分的 亮度。因此在电源电压为5V时,每个LED都要串联一个150~390 欧姆的电阻器,用以避免烧毁LED,如图3-1-2所示。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6”
4.实践操作
(1) 使用单片机最小应用系统。关闭该模块电源,用扁平数据线连接单片 机P0口与八位动态LED数码管段码模块JD12。用扁平数据线连接单片机P1 端口与八位动态LED数码管位码模块JD11,如图3-1-10所示。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6” 技能小贴士
若采用一只共阴极LED数码管,则硬件设计电路应改 为如图3-1-7所示。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6” 技能小贴士
流程图无需改变,只需要将汇编语言程序中相应的数 码管显示码改为共阴极数码管显示码即可。用汇编语言 编写“让一位LED数码管静态显示6b.ASM”的源代码 如下:
任务一 1位LED数码管的显示
活动4:让1位LED数码管循环显示“0~9”
3.程序设计
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
活动1:两位LED数码管恒定显示“34”
1.硬件电路
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
活动1:两位LED数码管恒定显示“34”
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动2:学习7段LED数码管显示码
3.数码管显示码
我们把“0”和“1”来代表电平的高低,可以组成8位二进制数,与8 个发光二极管的负端a、b、c、d、e、f、g、dp相对应,如表3-1-3所示, 此表为共阳极数码管显示码。例如,若想让数码管显示8,只需要将dp这 个发光二极管置高电平,而其它7个发光二极管置低电平即可。此表中与 数字“8”相对应的是10000000,用十六进制码表示为80H,其它以此类 推。
项目四
[项目学习目标]
一、知识目标
数码管的显示控制
1.了解LED数码管的结构与工作原理; 2.学习LED数码管显示码的组成; 3.知道LED数码管不同显示方式(静态与动态)的工作原理; 4.掌握AT89S51单片机与LED数码管的接口方法以及程序设计的方法。 5.学习4*4矩阵式键盘的工作原理,练习用4*4矩阵式键盘控制LED数码 管显示器的方法。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6”
4.实践操作
(2) 将THKL-C51仿真器的USB接口接入电脑,目的是给仿真器提供电源, 此时仿真器上的POWER灯点亮。用串行数据通信线连接计算机与仿真器。 如图3-1-11所示。
单片机技术与应用(耿淬主编)
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6”
2.流程图设计 程序设计流程如图3-1-6所示。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6”
用汇编语言编写“让一位LED数码管静态显示6a.ASM”的源代码如下 3.程序设计
活动3:6位LED数码管恒定显示“123456”
3.程序设计
单片机技术与应用(耿淬主编)
Biblioteka Baidu
任务二 多位LED数码管的显示
活动3:6位LED数码管恒定显示“123456”
4.实践操作(同上)
单片机技术与应用(耿淬主编)
任务三 用4*4矩阵键盘控制LED数码管
活动1:学习4*4矩阵键盘的结构及工作原理
二、技能目标
1.能独立完成LED数码管的静态与动态显示控制的编程、调试与仿真。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动1:认识7段LED数码管
1.结构
LED数码管是由8个发光二极管中的7个长条形发光二极管 (俗称7笔段)按a、b、c、d、e、f、g顺序组成“8”字形,另 一个点形的发光二极管dp放在右下方,用来显示小数点,如图31-1(a)所示。给8只发光二极管加上不同的电平(高电平或低电 平),使其对应的段亮灯或熄灭,可以组合显示0~9十个数字、 A~F六个字母及小数点“ • ”等。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6”
4.实践操作
(6) 打开模块电源和总电源,点击开始调试按扭,点击RUN按钮运 行程序,观察LED数码管显示的情况。
经验总结:
在使用单片机控制LED数码管进行输出时,利用查表的编程方法非常 方便。将不同类型的LED数码管所需要使用的显示码编成一个表格,存入 TABLE内,此时可利用指令MOV DPTR, #TABLE。再利用查表指令 MOVC,将显示码从表中取出来,最后通过MOV P0,A将数码管显示码输 送给I/O端口P0,实现字符的输出。所以总结其编程思路为:存表查表 输出。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动2:学习7段LED数码管显示码 知识小贴士
若采用共阴极数码管,根据图3-1-1(d)共阴连接的特点,给出表3-1-4 即共阴极数码管显示码。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6”
1.硬件设计
设计说明: 左图以AT89S51单片机为例,给出 单片机电源供给部分、晶振部分以及复 位电路部分。在单片机的P0端口接有一 只共阳极LED数码管,其中3、8两引脚 为公共端COM,将其接到+5V电源。为 了保证LED数码管的正常运行,必须在 连接P0口的基础上,各位串联一限流电 阻R,阻值可取360欧姆,并连接至LED 数码管的a、b、c、d、e、f、g、dp这8 段上。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动1:认识7段LED数码管
2.分类
LED数码管按内部连接方式又分为“共阳极数码管”和“共 阴极数码管”两种。若8个发光二极管的阳极连在一起接电源正极 为共阳极数码管,如图3-1-1(c)所示。若8个发光二极管的阴极连 在一起接地则为共阴极数码管,如图3-1-1(d)图所示。下文如不特 别说明,所用LED数码管都为共阴极数码管。 共阴极数码管的引脚如图3-1-1(d)图所示,共有10只引脚, 其中3、8引脚连通,作为公共端即“COM”接地。
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6”
4.实践操作
(3) 把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。如 图3-1-12所示。
单片机技术与应用(耿淬主编)
任务一 1位LED数码管的显示
活动3:让1位LED数码管静态显示“6”
4.实践操作
(4)打开KeiluVision2仿真软件,首先建立本项目的项目文件,接着添加汇编 语言源程序“让一位LED数码管静态显示6d.ASM”,进行编译,直到编译无误。 (5)右击“Target 1”点击Options for Target‘Target 1’进行软件设置,选择 Debug选项。点击“Use Keil Monitor-51 Driver进行硬件仿真,如图3-1-13所 示。点击Settings按扭,选择串行口,设置波特率为38400,点击OK按扭,如图 3-1-14所示。
2.内涵
数码管显示码是表述二进制数与数码管所显示字符的对应关 系的。如图3-1-1(c)共阳极数码管可以看出,由于8个发光二极 管的阳极已连在一起接到电源的正极,所以只要其负端a、b、c、 d、e、f、g、dp接地,发光二极管就会亮。如果将负端接电源正 极,由于两端都接到电源正极,没有电位差,所以就没有电流通 过,发光二极管是不会点亮的。
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
活动2:两位LED数码管动态循环显示00~99
1.硬件电路
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
活动2:两位LED数码管动态循环显示00~99
2.流程图
单片机技术与应用(耿淬主编)
任务二 多位LED数码管的显示
活动2:两位LED数码管动态循环显示00~99