PROTEUS之数码管 9.2 显示器接口 9.2.1 LED数码管显示器结构 CC CA 图9-10 7段LED数码管显示器 段选码:通常把控制发光二极管的8位二进制数称为段选码(显 示代码)。各段码与数据位的对应关系如下: 段码位 显示位 D7 Dp D6 g D5 f D4 e D3 d D2 c D1 b D0 a 表9-2 七段LED的段选码 显示字符 共阴极段选码 共阳极段选码 显示字符 共阴极段选码 共阳极段选码 0 1 3FH 06H C0H F9H C D 39H 5EH C6H A1H 2 3 4 5 5BH 4FH 66H 6DH A4H B0H 99H 92H E F P U 79H 71H 73H 3EH 86H 8EH 8CH C1H 6 7 8 9 A B 7DH 07H 7FH 6FH 77H 7CH 82H F8H 80H 90H 88H 83H Γ y 8 “灭” 31H 6EH FFH 00H CEH 91H 00H FFH 9.2.2 LED数码管显示器工作原理 1、LED静态显示 静态显示是指数码管显示某一字符时,相应的发光二 极管恒定导通或恒定截止。各位数码管相互独立,公共端恒 定接地(共阴极)或接正电源(共阳极)。 图9-11 一位静态LED显示 PROTEUS仿真步骤.1 ? 1. proteus添加器件: – 搜索数码管器件: 7seg,选择 – 搜索电阻器件: reg – 搜索51单片机: 89C51 PROTEUS仿真步骤.2 ? 完成单片机和数码管、电阻的连线 – 数码管a\b\c\d\e\f\g\dp 接P0口–位选信号1,2 接P2^0, P2^1 – P0口接上拉电阻 KEIL程序编程.1 ? 硬盘建立新的目录,目录名称SEG_DISPLAY->KEIL新建工 程项目,项目名称SEG_DISPLAY->选择89c51芯片->新建 文件->保存新建文件为 SEG_DISPLAY.asm->把asm文件添 加到项目中 KEIL程序编程.2 ? 设置项目属性,选择生成HEX文件 KEIL程序编程.3 ? 简单编写如下程序,实现数码管点亮,并加载到proteus中 仿真看现象 KEIL程序编程.4 ? 修改程序,实现 两个灯交替闪烁。 ? 思路: P2^1,P2^0分别 控制两个灯,即 控制P2^1和P^0 电平可以控制对 应数码管的亮灭。 为了体现亮灭, 增加延时,考虑 引入DELAY延迟 子程序 KEIL程序编程.5 ? 查表进行 特定字母 显示 ? 思路:通 过建立内 建的表格 和MOVC 指令,实现P0口 输出数据 的设定 KEIL程序编程.6 ? 循环显示内建 表格的字符 ? 思路:通过 inc来增加偏 移量和djnz来 进行循环次数 的设置 KEIL程序编程.课后任务 ? 完善数码管显示的编程,要求实现如下两个应用 ? 应用1: – 数码管标志循环显示,即如下的数码管,每次点亮一个段码,段码 点亮的顺序依次为 A->B->C->D->E->F->A,如上一次循环 – 要求:建立新的表格,实现上述7个状态的循环,两个led灯可以同 时点亮 KEIL程序编程.课后任务 ? 应用2: – 实现数码管0-9数字的显示 – 两个数码管实现不同数字变化速度,即数码管1要求每次显示的数 字是上次该数码管显示的数字加3,数码管2要求每次显示的数字是 上次该数码管显示的数字加2 – 思路:两个计数变量,如果计数变量值大于9,那么进行减10的运 算?要求周日前完成上述作业,发至我的邮箱。