刚开始的时候把74HC164当成了74HC573使了,还看了原理图,半天摸不出个所以然,然后上网查了资料,才知道原来74HC164是串入并出的,此时才知道思考方向出错了。于是再看原理图再分析示例代码方有所获。
原来164只有一个输入端sda(P10),一个控制位clk(P11),还有四个位选:dig1~dig4分别与P13~P15相连,我们可以通过控制dig来达到选位的目的,然后再用sda来向164里传数。而164共有8个输出端,刚好对应了数码管的一个字节(a,b,c,d,,e,f,g,dp),从而显示出不同的数。
还有我写的一个例子程序发现了一个小问题,现在想不通,放到这以后再想:为164送数的时候不能用while(1)死循环,因为这样会导致传不进数,至于原因,我还不清楚。
以下是我成功在74HC164上显示数码管的一个成功的例子:
#include<reg52.h>
sbit sda=P1^0;
sbit clk=P1^1;
sbit dig1=P1^2;
sbit dig2=P1^3;
sbit dig3=P1^4;
sbit dig4=P1^5;
int i;
void main()
{
dig1=0;
dig2=0;
dig3=0;
dig4=0;//将4个数码管全部选中
for(i=0;i<8;i++)
{
clk=1;
sda=1; //将所有段全部赋1,会使全部段都显示
clk=0;
}
}
程序运行效果:将显示4个8和4个点。
分享到:
相关推荐
本文主要为74HC595驱动数码管时间程序,希望对你的学习有所帮助。
利用51单片机和38译码器74LS138控制数码管显示
使用PIC16F877和两个273控制两位数码管从00显示数字到99
STM32F103-串口中断驱动74HC595进行数码管显示温湿度数据
74HC164驱动数码管编码方法之我见,简单,易懂,图解编码方法及原理。 好多单片机初学者在初次使用74HC164进行LED显示设置时,产生乱码!究其原因,是没有对串并输出时的编码进行正确的设置。 下面我以简单直观的方法...
74hc244驱动数码管显示电路 大部分的逻辑IC的吸收电流要强于输出电流。因此,大家都爱使用共阴极的数码管,因为可选的IC多些。可是这组数码管是共阳的,因此公共端用三级管来驱动。最常用的S9012,首先得计划好电路...
1.使用七段数码管显示一个时钟 2.编写程序让接在P0口的数码管显示时分秒,秒数每秒加一 3.要求1秒时间间隔使用定时器中断实现 4.七段数码管的位选和段选通过[74HC595]
用stm32控制74h595芯片驱动数码管显示,两片74h595采用级联,单片机节省引脚,供大家采纳
74hc138译码器 数码管应用.帮助更好理解 74hc138
基于FPGA的74HC595驱动数码管动态显示--Verilog实现.由FPGA控制74HC595驱动数码管其实主要是抓住74HC595的控制时序,进而输出所需控制显示的内容,由同步状态机实现.
STM32F103 驱动74HC595控制数码管显示程序
两块74HC595分别用来作为段码和片选,U1作为段码驱动(高电平有效),U2作为片选(低电平有效),程序中先发送高8位的片选码,然后发送低8位的段码,每发送一次只能显示以个数码管,通过延时防止闪烁,然后循环发送8...
74HC595 数码管
用fpga 驱动数码管,动态显示,verilog语言
八位数码管是由两片74HC595级联驱动的,在TI的28027上测试通过,由DSP的SCI模块控制显示,可以直接拿来用,在主程序中直接调用LedDeplay()即可,由C语言写成。
八位数码管显示程序,两片74HC595级联,数码管显示程序
74HC595是具有8位移位寄存器和一个存储器,三态输出功能。移位寄存器和存储器是分别的时钟。数据在SCK的上升沿输入,在RCK的上升沿进入的存储寄存器中去。如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个...
用的任何GPIO口都可以 只要送数据到你的全局变量就可以 四位共阳极如何要打小数点,只要在段码 & 0X7F就可以 程序思路清晰, 简单可靠
两片74HC573驱动动态数码管,输入端都接到P0端口,I/O方式控制。 P1.2和P1.3分别控制两个74HC573的LE信号,P1.2对应位选、P1.3对应段选。 【实验步骤】 ISP下载开关扳到“10”,用Flash Magic软件下载程序文件...