当前位置: 首页 > news >正文

从零开始学习单片机15

用三个IO控制一个数码管

#include <reg52.h>sbit ds = P0^3;
sbit shcp = P0^5;
sbit stcp = P0^4;unsigned char num[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//hc595的发送数据以及显示
void hc595_send_byte(unsigned char byte){int index = 0;for(index = 0;index<8;index++){//串行输入引脚,所谓串行就是使数据在一根信号线上按顺序一位一位地传输if(byte & 0x80)ds = 1;else ds = 0;shcp = 0;shcp = 1;//SHCP发生一次上升沿的时候,74HC595才会从DS引脚上取得当前的数据byte = byte << 1;}//上升沿把移位寄存器里的数据发送到锁存寄存器里//在对应的Q0-Q7输出对应的信号
}
void main()
{while(1){hc595_send_byte(num[0]);//在第一个数码管显示数字0hc595_send_byte(0xFE);stcp = 0;stcp = 1;//上升沿把移位寄存器里的数据发送到锁存寄存器里}
}

用三个IO控制多个数码管

LED灯虽然是逐个点亮的,但由于速度非常快,人眼看不出灿烁,可以认为是常亮,多位数码管的原理也是这样

51单片机使用了一个2位的数码管,为共阴型,为了节省单片机的IO口,使用了两片74HC595作为数码管的驱动芯片,共占用3个IO口(分别连接DS,STCP,SHCP)。

Q0、Q1连接WE1、WE2,可以选择哪个数码管被点亮,切换速度足够快时,就像是常亮

第二个595的Q0-Q7接到数码管的数据位,第一个595的Q7S是串行输出把输入的数据按同样的顺序去输出,接到第二个595的DS口上。向第一个595发送第二个数据时,第一次的数据通过Q7S输出到第二个595上。先发送数据,再选择是要哪个数码管

#include <reg52.h>sbit ds = P0^3;
sbit shcp = P0^5;
sbit stcp = P0^4;unsigned char num[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//向74HC595发送1个字节数据的函数
void hc595_send_byte(unsigned char byte)
{unsigned int index = 0;for(index = 0;index < 8;index++){if(byte & 0x80)ds = 1;else ds = 0;shcp = 0;shcp = 1;//上升沿,将ds引脚数据移入移位寄存器byte = byte << 1;}
}
void hc595_send_data(unsigned char num, unsigned char addr)
{hc595_send_byte(num);//先发送数码管段码,决定显示什么数字if(addr == 1){hc595_send_byte(0xFE);}else if(addr == 2){hc595_send_byte(0xFD);}stcp = 0;stcp = 1;上升沿将位移寄存器中数据锁存到输出,让数码管显示
}void main()
{while(1){hc595_send_data(num[5],1);hc595_send_data(num[3],2);}
}	
http://www.dtcms.com/a/349743.html

相关文章:

  • 【OLAP】trino客户端访问Trino CLI和JDBC
  • 如何恢复删除的照片和视频?视频照片恢复的专业指南
  • zookeeper基础概念及部署
  • 蛋白质结构信息学大纲
  • Linux(四):进程状态
  • 计算机毕业设计 java 血液中心服务系统 基于 Java 的血液管理平台Java 开发的血液服务系统
  • 如何清除 Docker 容器的日志 ?
  • LevelDB SSTable模块
  • mac设置鼠标滚轮方向
  • Elasticsearch脑裂紧急处理与预防
  • 数据挖掘5.3 PCA主成分分析降维
  • AI模型接入Web搜索功能实践与最佳API服务选型
  • 扭蛋机小程序系统开发:连接线上线下娱乐的新桥梁
  • 习题库小程序的设计与实现 计算机毕业设计源码27057
  • RAG检索增强生成
  • SuiHub 台北站正式发布,助力亚洲科技生态创新
  • [读论文]Hunyuan 3D 系列
  • 【Linux系统】1.Linux基础指令与权限
  • 8月25号打卡
  • 数据采集怎么做?质量、效率与合规该怎么平衡?
  • LLM学习:langchain架构——chain
  • 2025年03月 Python(二级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 【AGI使用教程】GPT-OSS 本地部署(2)
  • 【广告系列】流量优选
  • 第二章 设计模式故事会之策略模式:魔王城里的勇者传说
  • AcrelEMS-EDU在实践中的应用系列—“综合能源管理”
  • 2025年8月25日-8月31日(qtopengl+ue独立游戏)
  • 23种设计模式:模板方法模式与策略模式
  • vue 一键打包上传
  • 【车载开发系列】汽车零部件DV与PV试验的差异