一、原理介绍
关于数码管的控制电路,在《51单片机(八)》中有详细的介绍,硬件电路如下图所示。
在这个实验中,我们对8位数码管的一位进行控制,在进行实验时,需要将单片机的P00~P07引脚与J44相连。接口的对应关系是(P00—D0),……,(P07—D7)。将单片机的P10和P11引脚与J45相连,P10与J45上的DM对应,P11与WM对应。
二、实例介绍
这个实验的代码如下所示
#include #define DATA P0 //定义数据端口 程序中遇到DATA 则用P0口 替换 sbit DM = P1^0; //定义锁存使能端口 段锁存 sbit WM = P1^1; //定义锁存使能端口 位锁存 void main(void) { for(;;) { DATA=0xfe; //取位码,第一位数码管选通,即二进制1111 1110 WM=1; //位锁存 WM=0; DATA=0x7f; //取显示数据,段码 "8" DM=1; //段锁存 DM=0; } } 将代码烧写到单片机中,现象如下所示。 这个实验使用两个锁存器来驱动发光二极管。控制数码管的位码和段码都通过单片机的P0口输出。U43用来输出位码,U42用来输出段码。 P0口首先输出0xfe,WM=1;这个语句使U43输出值为0xfe,WM=0;这个语句使U43为锁存状态。U43的输出保持为0xfe。0xfe转换为二进制为1111 1110,这8个数值输出给8位数码管的共阴极。输出为1的位,由于阴极为高电平,数码管被关断,输出0的位,阴极为低电平,数码选通。因此数码管的第一位选通,其它位关断。 之后,P0口输出0x7f,DM=1;这个语句使U42输出值为0x7f,DM=0;这个语句使U42为锁存状态。U42的输出保持为0x7f。0x7f对应的二进制为0111 1111,即数码管的A、B、C、D、E、F、G段都为高电平,因此A、B、C、D、E、F、G都可以点亮,显示的是数值“8”,又由于只有第一位选通,因此最后的实验现象是第一位显示“8”。
上一篇:51单片机(十)—— 8位数码管-数码管扫描
下一篇:51单片机(八)—— 数码管电路介绍
推荐阅读最新更新时间:2024-11-10 14:10
设计资源 培训 开发板 精华推荐
- IR11672AS高级智能整流控制IC典型应用
- LTC1419 演示板、14 位、800ksps ADC
- 使用 STMicroelectronics 的 LM2931BZ50R 的参考设计
- 使用 ON Semiconductor 的 STK350-050 的参考设计
- 使用 ROHM Semiconductor 的 BD48K39G-TL 的参考设计
- LT1584C 演示板,奔腾验证器主板 3.3V @ 7A
- ADL5541-EVALZ,基于 ADL5541 20 MHz 至 6 GHz RF/IF 增益模块的评估板
- STM32G484E-EVAL,带有 STM32G484QE MCU 的评估板
- LT1085CM-3.3、3.3V/7.5A 线性稳压器和基准电压源的典型应用电路
- SWM181CBT6_CoreBoard_V1.0