74hc164c语言用法,74hc164控制数码管显示系统设计方案

一、数码管的结构

数码管由8个发光二极管(以下简称字段)构成,通过不同的组合可用来显示数字0~9。数码管分为共阴极和共阳极两种结构。所谓共阴极,及时将所有的LED的阴极连到一起,而共阳极这相反,所有的阳极被连到了一起。但不是那种结构,其设计的原理基本相同,唯一不同的是驱动电路的设计有差异,一般共阴极采用推(Push)电流的方式来驱动,而共阳极结构则采用拉(Pull)电流的方式来驱动。

二、数码管工作原理

共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常,公共阳极接高电平(一般接电源),其他管脚阶段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该段所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符,此时,要求段驱动电路能吸收额定的段导通电流,还需根据未接电源及额定段导通电流来确定相应的限流电阻。

三、单片机简介

单片机是在一块芯片上集成了中央处理器部件(CPU)、储存器(RAM、ROM)、定时器/计数器和各种输入/输出(I/O)接口(如并行I/O口、串行I\O口和A/D转换器)等。由于单片机通常是为实时控制应用而设计制造的,因此,又称为微控制器(MCU)。

90fd1956d3b41098034d2af30fb7a5ff.png

74hc164控制数码管显示系统设计方案

一、总体设计

1、 系统组成

本系统功能由硬件和软件两大部分协调完成。 本系统的硬件采用模块化设计,以单片机控制为核心,74hc164

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我来回答你的问题。首先,74HC164是一个8位移位寄存器,可以实现串行输入并行输出的功能,适合驱动数码管等显示器件。而在51单片机中,我们可以通过串口通信来控制74HC164。 下面是一个简单的代码示例,可以实现通过串口控制74HC164驱动数码管显示数字: ```c #include <reg51.h> // 74HC164控制引脚定义 sbit HC164_CLK = P1^0; sbit HC164_SER = P1^1; sbit HC164_RCLK = P1^2; // 数码管显示码表 unsigned char code LED_Table[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f }; // 串口初始化 void UART_Init() { TMOD |= 0x20; // 设置定器1为模式2 TH1 = 0xfd; // 波特率设置为9600 TL1 = 0xfd; TR1 = 1; // 启动定器1 SCON = 0x50; // 设置串口为模式1 ES = 1; // 允许串口中断 EA = 1; // 允许总中断 } // 串口发送数据 void UART_SendByte(unsigned char dat) { SBUF = dat; while (!TI); // 等待发送完成 TI = 0; // 清除发送完成标志 } // 延函数 void delay(unsigned int n) { unsigned int i, j; for (i = 0; i < n; i++) { for (j = 0; j < 50; j++); } } // 74HC164移位函数 void HC164_Shift(unsigned char dat) { unsigned char i; for (i = 0; i < 8; i++) { HC164_CLK = 0; HC164_SER = (dat & 0x80) ? 1 : 0; dat <<= 1; HC164_CLK = 1; } } // 74HC164输出函数 void HC164_Output() { HC164_RCLK = 0; HC164_RCLK = 1; } // 主函数 void main() { unsigned char num = 0; UART_Init(); // 初始化串口 while (1) { // 等待串口接收完成 while (!RI); num = SBUF; // 读取串口数据 RI = 0; // 清除接收完成标志 HC164_Shift(LED_Table[num]); // 移位 HC164_Output(); // 输出 } } ``` 在这个代码中,我们将串口通信设置为了9600波特率,当接收到一个字节的数据,就将其作为数字0~9的索引,查表得到对应的数码管显示码,然后通过HC164移位和输出函数控制74HC164驱动数码管显示

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值