74HC595驱动数码管程序

        数码管的驱动分静态扫描和动态扫描两种,使用最多的是动态扫描,优点是使用较少的MCU的IO口就能驱动较多位数的数码管。数码管动态扫描驱动电路很多,其中最常见的是74HC164驱动数码管,这种电路一般用三极管作位选信号,用74HC164作段选信号,占用的MCU的IO口线随位数增加而增加,一般驱动四位以下数码管。如果要驱动四位以上数码管,用74HC595驱动最经典,只需4根IO口线就能驱动8位数码管,而且不存在消影问题,显示功能也很强大,是很实用的数码管驱动电路之一。

电路设计

在WSF-51DB开发板上,用两片74HC595驱动8位共阴极数码管(由两个4位共阴极数码管组成),一片作位选信号,另一片作段选信号。需要注意的是段选芯片与数码管的连接要使用100-200欧姆电阻作限流,不能太大也不能太小,更不能直接连接。

 

bcdd5c0f7d625528abb25df88c418c78.jpeg

程序设计:

/***************************************************************************程序名称:74HC595驱动数码管*程序功能:数码管显示字符*开发工具:WSF-51DB开发板* MCU型号:AT89S52-24PU*时钟频率:12MHZ*程序作者:吴师傅**************************************************************************/#i ncludeunsigned char code segmcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7C,0x39,0x5E,0x79,0x71};//共阴极数码管段码0-funsigned char code bitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//8位共阴极数码管位码sbit ser=P2^0; //74HC595串行数据输入sbit oe=P2^1; //74HC595使能,为0时输出数据,为1时呈高阻态sbit rclk=P2^2; //74HC595数据锁存sbit srclk=P2^3;// 74HC595串行时钟//延时毫秒函数:void Delayms(unsigned int t){unsigned int x,y;for(x=t;x>0;x--)for(y=120;y>0;y--);//延时大约1毫秒}//任意位数码管显示一个字符函数:void DTDisplayChar(unsigned char segmd,unsigned char bitd )//数码管段码和数码管位码{unsigned char i;unsigned int dat;dat=bitd;dat=dat位码段码合并为一个int型数据for(i=0;i位数据从高位依次移入74HC595{ser=(dat&0x8000)?1:0; //判断最高位,为真取1,为假取0srclk=1; //上升沿送数据srclk=0;dat左移取下一位}rclk=1; //74HC595锁存数据rclk=0;}//主函数:int main(void){unsigned char j,k;oe=0; rclk=0;srclk=0;DTDisplayChar(0xff,0x00);//数码管全亮Delayms(2000);//延时2秒,检查数码管是否有缺画while(1){for(j=0;j显示0-f 16个字符{DTDisplayChar(segmcode[j],bitcode[j%8]);//从数组取出段码和位码//要显示小数点只需在断码上或上0x80即可for(k=0;k每个字符/闪烁5次{oe=0;//打开显示Delayms(200);//延时200毫秒oe=1;//关闭显示Delayms(200);}}/* for(j=0;j字符同时显示{DTDisplayChar(segmcode[j],bitcode[j]);//从数组取出段码和位码Delayms(1);} */}return 0;}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/318741.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【UnityShader入门精要学习笔记】(3)章节答疑

本系列为作者学习UnityShader入门精要而作的笔记,内容将包括: 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更,有始无终 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 复习(阶段性总结…

《JSR303参数校验》

一、基础概述 1.简介 Java API 规范 (JSR303) 定义了 Bean 校验的标准 validation-api,但没有提供实现。hibernate validation 是对这个规范的实现,并增加了校验注解如 Email、Length 等。Spring Validation 是对 hibernate validation 的二次封装&…

linux centos 部署 jenkins

一、试了用容器部署,不行。(建议别用容器部署) 二、直接部署在主机上 1、安装java环境 yum install java-11-openjdk-devel # 检查 java -version # 打印 [rootiZwz9a99mctbkabkh2imhdZ init.d] java -version openjdk version "11.0.21" 2023-10-17 L…

Django Web 开发实战-实现用户管理系统(部门管理、用户管理、注册登录、文件上传)

简介 基于Django Python Web框架 MySQL Bootstrap 开发的用户管理系统。支持增删改查、模糊搜索、分页。 功能介绍 部门管理---》已完成 用户管理---》已完成 认证(注册/登录)---》开发中 数据统计---》待开发 文件上传---》待开发 效果图 部门…

设计模式之建造者模式【创造者模式】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某…

1.3 力扣二叉树中等题

题目一: 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除&…

Java中的异常如何处理?

在Java编程中,异常是一种在程序执行期间发生的意外情况。学会处理异常是编写健壮、可靠程序的关键之一。 为什么需要异常处理? 异常处理允许程序在发生错误时进行优雅而有序的处理,而不是导致程序崩溃。这有助于提高程序的可维护性和用户体…

【办公软件】修改U盘的默认盘符

在工作中我们可能会因为有一些大型软件设置了库文件路径(如Z盘)。在家办公时通过U盘的方式将库拷入在U盘中,但是到家里的电脑上,U盘插入后会默认一个盘符(如E盘),那么应该怎么操作呢&#xff1f…

UE5 产品三维交互展示 创意收集

1. 无人机展示 https://www.bilibili.com/video/BV12N4y1g7gA/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 开场是场景漫游重要部件靠近观察颜色调整拆分与合并,过程流畅拆分后靠近观察产品动画,动画中&…

音效出众设计时尚,内置AI功能,sanag塞那Z50上手

现在蓝牙耳机已经成为人们生活中不可或缺的一部分了,像是在上班、坐车的时候,既可以享受自己的音乐空间,又不会吵到别人,看书、做题还是运动的时候,也可以保证长时间使用耳朵卫生、舒适度。正因为庞大的市场需求&#…

深圳找工作一般去哪里找

深圳找工作一般在 吉鹿力招聘网上找 吉鹿力招聘网是一个权威的招聘平台,基本可以信任。公司通常先通过吉鹿力招聘网发布招聘信息。而求职者也可以先在吉鹿力招聘网网上了解招聘信息,然后投递简历。因为吉鹿力招聘网是一个综合性、专业性较强的地方&…

机器人技能学习--数据集剖析

文章目录 前言数据总览数据介绍actionsrobot0_eef_poserobot0_eef_quatstatesobject 参考资料 前言 一切为了能自己构建属于自己的数据集,所以,从现有数据集剖析入手。    目前,基于 MimicGen 官方提供的数据集,初始数据集有11组…