1、I0口驱动74LS164数码管静态显示程序74LS1641、器件功能作用8 位串入,并出移位寄存器. 概述74HC164、74HCT164 是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 D
2、SB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。. 特性门控串行数据输入 异步中央复位 符合 JEDEC 标准 no. 7A 静电放电 (ESD) 保护:HBM EIA/JESD22-A114-B 超过 2000 VMM EIA/JESD22-A115-A 超过 200 V 。 多种封装形式 额定从 -40 C 至 +85 C 和 -40 C 至 +125 C 。 . 功能图图 1. 逻辑符号图 2. IEC 逻辑符号图 3. 逻辑图图 4. 功能图. 引脚信息图 5. D
3、IP14、SO14、SSOP14 和 TSSOP14 封装的引脚配置引脚说明符号引脚说明DSA1数据输入DSB2数据输入Q0Q336输出GND7地 (0 V)CP8时钟输入(低电平到高电平边沿触发)/M/R9中央复位输入(低电平有效)Q4Q71013输出VCC14正电源罗亩的笔记. 功能表(真值表)工作模式输入输出/M/RCPDSADSBQ0Q1 至 Q7复位(清除)LLXXLL 至 L移位HllLq0 至 q6HlhLq0 至 q6HhlLq0 至 q6HhHHq0 至 q6H = HIGH(高)电平h = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 HIGH(高)电
4、平L = LOW(低)电平l = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 LOW(低)电平q = 小写字母代表先于低-至-高时钟跃变一个建立时间的参考输入 (referenced input) 的状态 = 低-至-高时钟跃变7. 电器特性符号参数测试条件最小值典型值 最大值单位 VI 输入钳位电压VCC = Min, II = -18 mA -1.5 V VOH 输出高电平电压 VCC = Min, IOH = Max VIL = Max, VIH = Min 2.7 3.4 -V VOL 输出低电平电压 VCC = Min, IOL = Max VIL = Max
5、, VIH = Min -0.35 0.5 V IOL = 4 mA, VCC = Min -0.25 0.4 II 最大输入电压时输入电流 VCC = Max, VI = 7V -0.1 mA IIH 输入高电平电流 VCC = Max, VI = 2.7V -20 A IIL 输入低电平电流 VCC = Max, VI = 0.4V -0.4 mA IOS 输出短路电流VCC = Max (Note 4) -20 -100 mA ICC 电源电流VCC = Max (Note 5) -16 27 mA 动态特性(TA=25)符号 参数 To (Output) RL = 2k单位 CL =
6、15 pF CL = 50 pF 最小值 最大值 最小值 最大值 fMAX 最大时钟频率 -25 - - - MHz tPLH 低到高电平输出传递延迟时间 时钟输出 - 27 - 30 ns tPHL 高到低电平输出传递延迟时间 时钟输出 - 32 - 40 ns tPHL 传递延迟时间 时钟输出 - 36 - 45 ns . 推荐工作条件符号 参数最小值 典型值最大值单位 VCC 电源电压4.75 5 5.25 V VIH 输入高电平电压ViH 2 -V VIL 输入低电平电压ViL -0.8 V IOH 输出高电平电流IOH-0.4 mA IOL 输出低电平电流IOL -8 mA fCLK
7、 时钟频率fCP 0 -25 MHz tW 脉冲宽度时钟20 -ns 清除 20 -tSU 数据设置时间17 -ns tH 数据保持时间5 -ns tREL 建立时间 30 -ns TA 工作温度0 -70 1 对于 DIP14 封装:Ptot 在超过 70 C 时以 12 mW/K 的速度线性降低。2 对于 SO14 封装:Ptot 在超过 70 C 时以 8 mW/K 的速度线性降低。 对于 SSOP14 和 TSSOP14 封装:Ptot 在超过 60 C 时以 5.5 mW/K 的速度线性降低。对于 DHVQFN14 封装:Ptot 在超过 60 C 时以 4.5 mW/K 的速度线性
8、降低。9、时序图74ls164 c程序单片机 74ls164 IO 口驱动程序 串入并出 源代码(C语言 附源文件及仿真程序)其中驱动共阴数码管 和驱动共阳数码管时 程序是不同的 /送一个数字显示的程序#include reg52.h#define uint unsigned int#define uchar unsigned charsbit DAT=P11;sbit CLK=P12;uchar code tab=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0xe7f,0xff,0x00;/0-9,-,全灭void sendbyte(uchar byte) ucha
9、r num,c; num=tabbyte;for(c=0;c=1;void delay_50ms(unsigned int t)unsigned int j; for(;t0;t-) for(j=6245;j0;j-) ;main() unsigned char h;while(1)for(h=0;h10;h+)delay_50ms(1);sendbyte(h);delay_50ms(10);h=0;74LS164级联控制5个数码管静态显示仿真图:74LS164级联控制5个数码管静态显示源程序:#include #include “MacroAndConst.h”uint8 LEDBuffer
10、5=0; /显示缓冲区/code uint8 tab=0x3F,006,0x5B,0x4F,066,0x6D,0x7D,007,0x7F,0x6F,040; /共阴极code uint8 tab=0xC0,0xF9,0xA4,0xB0,099,092,082,0xF8,080,090,0xbf; /共阳极sbit LED_DAT=P11;sbit LED_CLKE=P12;void bit_dat(bit i) /向数码管写一个位LED_CLKE=0;LED_DAT=i;LED_CLKE=1;void uint_dat(uint8 i) /向数码管写一个字母,8位LED_CLKE=0;bit_
11、dat(bit)(tabi&080);bit_dat(bit)(tabi&040);bit_dat(bit)(tabi&020);bit_dat(bit)(tabi&010);bit_dat(bit)(tabi&008);bit_dat(bit)(tabi&004);bit_dat(bit)(tabi&002);bit_dat(bit)(tabi&001);LED_CLKE=0;void uchar_dat() /把缓存区的5个字符输入到5个数码管中int j;for(j=0;j5;j+)uint_dat(LEDBufferj);void main()int i;for(i=0;i5;i+)L
12、EDBufferi=i;uchar_dat();while(1);/*/* I0口驱动74LS164数码管动态显示 */* 在实验仪XL600上测试通过, */*但记得把数码管数据端线有一头要反插;*/*/-库函数声明,管脚定义-#include #define uchar unsigned char sbit simuseri_CLK=P11; /用P16模拟串口时钟sbit simuseri_DATA=P10; /用P15模拟串口数据sbit a0=ACC0;unsigned char code dis_code11=0x28,0x7E,0xa2,0x62, /查表显示 0, 1、90x7
13、4,0x61,0x21,0x7A,0x20,0x60, 0x01;uchar numer,temp;uchar ge,shi;/-/ 函数名称:out_simuseri / 输入参数:data_buf/ 输出参数:无/ 功能说明:8位同步移位寄存器,将data_buf的数据逐位输出到simuseri_DATA /-void out_simuseri(uchar data_buf) uchar i;i=8;ACC=data_buf;do simuseri_CLK=0; simuseri_DATA=a0;simuseri_CLK=1;ACC=ACC1;while(-i!=0);/*/void de
14、lay(uchar ms) /延时程序uchar i;while(ms-)for (i=0;i125;i+);/*/void main()uchar m;while(1)for(temp=0;temp99;temp+)ge=temp/10;shi=temp%10;for(m=0;m50;m+) /显示频率50次2_0=0;numer=dis_codege; out_simuseri(numer); /个位移位显示delay(5);2_0=1;delay(5);2_1=0;numer=dis_codeshi; /十位移位out_simuseri(numer);delay(5);2_1=1; m=0;/*/