74HC164级联实现四位数码管显示电路
74HC164中文资料(功能,真值表,引脚图及电气参数介绍)
74HC164中文资料(功能,真值表,引脚图及电气参数介绍)
移位寄存器74HC164中文资料(功能,真值表,引脚图及电气参数介绍)
SN54HC164,/SN74HC164是8位移位寄存器,当其中一个(或二个)选通串行输入端的低电平禁止进入新数据,并把第一个触发器在下一个时钟脉冲来后复位到低电平时,门控串行输入端(A 和B)可完全控制输入数据。
一个高电平输入后就使另一个输入端赋能,这个输入就决定了第一个触发器的状态。
虽然不管时钟处于高电平或低电平时,串行输入端的数据都可以被改变,但只有满足建立条件的信息才能被输入。
时钟控制发生在时钟输入由低电平到高电平的跃变上。
为了减小传输线效应,所有输入端均采用二极管钳位。
74HC164功能表:
H=高电平(稳定态) L=低电平(稳定态)×=不定↑=从低电平转换到高电平
QA0…QH0=在稳定态输入条件建立前QA…QH 的相应电平
QAn…QHn=在最近的时钟输入条件(↑)建立前QA…QH 的相应电平,表示移位一位
74HC164引脚图及逻辑图:
图1 逻辑图(正逻辑)
图2 引脚图
74HC164电气参数:
Absolute Maximum Ratings绝对最大额定值
DC SPECIFICATIONS直流电气规格表:
DC SPECIFICATIONS直流电气规格(续)
图3 参数测量信息
74HC164典型工作时序图
图4 typical clear, shift, and clear sequence典型清除、移位和清除时序
74HC164应用电路
TAG标签:74真值引脚表图。
74HC164驱动数码管
只要用到一片164就够了,作动态扫描,下面程序是两个数码管动态扫描,164并行输出口再接一片功率驱动芯片,如TD62083。
程序如下:/**************************************//* 74LS164数码管动态显示*//**************************************///-------------------------------------库函数声明,管脚定义------------#include <at89x51.h>#define uchar unsigned charsbit simuseri_CLK=P1^1; //用P1^1模拟串口时钟sbit simuseri_DATA=P1^0; //用P1^0模拟串口数据sbit a0=ACC^0;unsigned char code dis_code[11]={0x28,0x7E,0xa2,0x62, //查表显示0, 1、、9 0x74,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=ACC>>1;}while(--i!=0);}/************************************/void delay(uchar ms) //延时程序{uchar i;while(ms--){for (i=0;i<125;i++);}}/***********************************/void main(){uchar m;while(1){for(temp=0;temp<99;temp++){ge=temp/10;shi=temp%10;for(m=0;m<20;m++) //显示频率200ms加1次{P2_0=0; //位段码numer=dis_code[ge];out_simuseri(numer); //个位移位显示delay(5);P2_0=1;P2_1=0;numer=dis_code[shi]; //十位移位out_simuseri(numer);delay(5);P2_1=1;}m=0;}}}/****************************************/#i nclude<reg51.h>#define uint unsigned int#define uchar unsigned charsbit DAT=P1^1; //模拟串口数据发送端sbit CLK=P1^2;//模拟时钟控制端uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};//0-9,-,全灭(共阳字段表)void sendbyte(uchar byte){uchar num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x80; //(0x80即十进制的128, 二进制的10000000 按位发送)CLK=1;num<<=1;}}void delay_50ms(unsigned int t) //50MS演示程序{unsigned int j;for(;t>0;t--)for(j=6245;j>0;j--){;}}main(){unsigned char h;while(1){for(h=0;h<10;h++){delay_50ms(1);sendbyte(h);delay_50ms(10);}h=0;}}下面这段是74ls164 驱动共阴数码管的程序源码#i nclude<reg51.h>#define uint unsigned int#define uchar unsigned charsbit DAT=P1^1;sbit CLK=P1^2;uchar code tab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xff,0xf6};//0-9,-,全灭void sendbyte(uchar byte){uchar num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x01;CLK=1;num>>=1;}}void delay_50ms(unsigned int t) {unsigned int j;for(;t>0;t--)for(j=6245;j>0;j--){;}}main(){unsigned char h;while(1){for(h=0;h<10;h++){delay_50ms(1);sendbyte(h);delay_50ms(10);}h=0;}}刚开始的时候把74HC164当成了74HC573使了,还看了原理图,半天摸不出个所以然,然后上网查了资料,才知道原来74HC164是串入并出的,此时才知道思考方向出错了。
74ls164在2051单片机led显示电路中的应用
第20誊第2期2001年6月大连轻工业学院学报JournalofDalianInstituteofLightIndustryVol20,No2jU[22001文章编号:1005.4014(2001)02.0123—0374LSl64在2051单片机LED显示电路中的应用林敏,于忠得,舒奎(大连轻工业学院自动化工程秉,辽宁大连116034/关键词:单片机;显示;电路摘要:AT89C2051是一种高性能低价位单片机,但因其引脚少,给系统设计尤其是LED显示接口电路的设计带来一定难度。
笔者采用串人并出移位寄存器74LSl64圆满地解央了这一闻题,文中详细介绍了该接口电路的构成原理与软件。
实际运行表明.该显示电路可以成功地应用到以AT89C2051单片机为核心的智能仪表中.而且LED显示清晰稳定可在线词整发光亮度。
中图分类号:TP274;TH86文献标识码:A74LSl64appliedinLEDdisplayingcircuitofAT89C2051singlechipcomputerL1NM抽.yUZhong-de.SHUKui(DeplofAuto.Erlg,Da/ianlnstofLightlnd,Dalian116034,China)Keywords:singlechipcomputer;displaying;circuitAbstract:ATSqC2051issinglechipcomputerwithhigh—performanceand10wc∞t.hsLEDdisp[aylngcircuitisnoteasytodesign,fortherearefewnumbersofpinsWesolvethisproblembyusingregister74LSl64.Thispaperpresentsitsprincipleandsoftwareimplementation.IthasbeenusedsuccessfullyintheintelligentinstrumentwithAT89C205lchip.emittingsteadylightclearlyandadjustableonline.AT89系列单片机L11是美国ATMEL公司近年来推出的一种新型高性能低价位、低电压低功耗的8位CMOS微型计算机。
74HC164应用实例:驱动数码管两例(电路图和源程序)
74HC164应用实例:驱动数码管两例(电路图和源程序)————————————————————————————————作者:————————————————————————————————日期:4HC164应用实例:驱动数码管两例(电路图和源程序) 文章编号:100816210758 文章分类: 电路 > 电子元件 点击:... 关键词: 74HC164文章来源:百合电子工作室收集整理 摘要: 74HC164应用实例:驱动数码管的两个实例分别提供了汇编源程序和C 源程序...实例174HC164是串行输入,并行输出接口器件,可用在单向的并行输出/并行地址锁存等. 74HC164因为价格便宜,容易使用特别适合使用在在需要用到数码管显示IO 口又比较紧张的电子产品中,下面浅谈使用方法:1. 首先先了解他的引脚功能和逻辑图,如下图:图1 引脚名称和用途图2 真值表通过真值表我们可以了解到,A,B两个输入端是互锁的,CLK上升沿时数据移入移位寄存器中,CLEAR为清零用的,接低电平时所有端口都输出低电平,了解了真值表之后开始运用了,先给出如下原理图:图3 原理图图中,采用义隆的EM78P153作为控制芯片,P50作为CLK时钟信号,注意平时数据不传输时,时钟信号是不发送的应一直保持低电平或者高电平,数据需要传输的时候才输出时钟信号^_^ ,继续P51作为移位数据输出端,接到74HC164的B端,A端接高电平,当然也可以AB端短路,然后连接到DATA移位数据端,P52作为数码管的选通信号(也可以叫消隐^_^), 作用是使数据传输过程暂时关闭显示,以免显示出不需要的数据,原因是应为164不带锁存功能,数据传输过程是一位一位的向高位移位输出的,所以要等数据全部移入后才打开始点亮数码管.注意了哦,通过查看164的规格书发现,164输出高电平电流比输出低电平电流要小,亦称灌电流大,扇出电流弱,所以适合选用共阳数码管,如图,本人偷懒没有画出那个数码管的8字该介绍的介绍的差不多了,废话少说,该开始干活了,任务是: 显示0-9 每秒+1 ,到9后又返回0,一直循环显示,根据任务得到如下流程图:1. 显示部分:将需要显示的数值送入A ==>查表求得显示段码==>将段码逐位移入164==>8位移完后点亮数码管==>延时==>返回第一步执行2. 中断部分:进入中断==>保存现场(以备调查取证,送你入狱^_^)==>重置TCC==>够1秒钟将需要显示的数据+1,并重置,不够就退出;根据以上要求就开始写代码调试了,要注意一点,数据移位时一定要记得高位在前哦,否则显示错误别怪我没有说清楚,我当年实验时就因为这个数据移位方向反了排查了半天,甚至以为是时钟频率不对,又以为时许不对.....搞了半天,NND后来重看DATASHEET才发现,原来是低级错误啊,呜呼哀哉.......,希望你不要重蹈我覆辙,哎哟!! 谁! 谁! 谁扔砖头上来? 啥? 你扔的? 我废话太多.........,那俺少来两句,继续上菜, 咦好像没啥可说的了,上源程序吧1.;中断部分:2.3.;;;;;;;;;;中断;;;;;;;;4.INTPUT:5.MOV TEMPA, A;6.MOV A,@130;7.MOV TCC,A;255-130=1258.CLR RF;9.;;;;;此处填写250Us处理程序10. BS WKREG,T500US11.;;;;;;;;;;;;;;;;;;;;;;;;;12. DJZ R1MS13.JMP INTEXT;14.MOV A,@415.MOV R1MS,A;重置16. BS WKREG,T1MS17.;;;;;;;此处填写1ms处理程序18.19.;;;;;;;;;;;;;;;;;;;;;;;;;;20. DJZ R20MS21.JMP INTEXT;22.MOV A,@2023.MOV R20MS,A;重置24.;;;此处填写1秒处理程序25. BS WKREG,T20MS26.;;;;;;;;;;;;;;27. DJZ R1S28.JMP INTEXT;29.MOV A,@5030.MOV R1S,A;31.;;;;;;;;;32.INC NUMBER33.MOV A,NUMBER34. SUB A,@1035. JBS SR,236.JMP INTEXT37.MOV A,@038.MOV NUMBER,A39.40.41. INTEXT:42.MOV A,TEMPA;43.RETI;;;;;;;;;;;;;;;;;;;;;44.45.46.47.48.49.;显示部分:50.51.;==============TXDATA==============52.TXDATA:53. BS P5,CC154.MOV A,@855.MOV DATALOP,A;56.TXLOP:57. BC WKREG,T500US58. BS P5,CLK;clk=高59.NOP;60.NOP61. JBS DATA_BUF,762.JMP $+363. BS P5,DATA;64.JMP $+265. BC P5,DATA66.DD1MS: JBS WKREG,T500US67.JMP $-168. BC P5,CLK69. BC WKREG,T500US70. JBS WKREG,T500US71.JMP $-1;72.RLC DATA_BUF73. DJZ DATALOP74.JMP TXLOP75.;;;;;;;;;;76. BC WKREG,T500US77. BS P5,CLK;clk=高78. BC WKREG,T500US79. JBS WKREG,T500US80.JMP $-1;81. BC P5,CLK82.;;;;;;;;83. BC P5,CC184.85.RET;;;;;;;86.87.;数据查表88.;===============DSPTBL============89.DSPTBL: ADD PC,A90. RETL @0B01000000;091. RETL @0B01111001;192. RETL @0B00100100;293. RETL @0B00110000;394. RETL @0B00011001;495. RETL @0B00010010;596. RETL @0B00000010;697. RETL @0B01111000;798. RETL @0B00000000;899. RETL @0B00010000;9100.101.102.;循环体部分;103.104.;;;;;;;;;;主程序;;;;;;;;;;;105.MLOOP:106.MOV A,NUMBER107.CALL DSPTBL108.MOV DATA_BUF,A109.CALL TXDATA110. BC WKREG,T1MS111. JBS WKREG,T1MS112.JMP $-1113.NOP;114.115.JMP MLOOP;;;;;;;;;;;;;;;;;;;;实例2在实际应用中驱动数码管常用的方式分动态扫描和静态驱动。
单片机控制74LS164驱动数码管
单片机控制74LS164驱动数码管利用74LS164驱动数码管,我们首先来弄清74LS164的工作方式,然后学习如何在自己板子上连接线路。
我们来讲一讲数码管的基础知识:使用数码管时,要注意区分这两种不同的接法:共阴极和共阳极。
共阴极时,为1则亮;共阳极时,为0则亮。
为了显示数字或字符,必须对数字或字符进行编码。
七段数码管加上一个小数点,共计8段。
这些段分别由字母a,b,c,d,e,f,g,dp来表示。
当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。
比如共阴极的方式接数码管,显示“1”,则编码为0x3f,即00111111(dp g f e d c b a )。
==================================================================================================静态显示程序如下:/*-----------------------------------功能:数码管静态显示0-F单片机:AT89S52------------------------------------*/#include "reg52.h"#define uint unsigned int#define uchar unsigned charsbit DAT=P0^3;sbit CLK=P0^2;void sendbyte(uchar byte);void delay(uint z);uchar code tab[]={0xed,0x09,0xbc,0x9d,0x59,0xd5,0xf5,0x0d,0xfd,0xdd,0x7d,0xf1,0xe4,0xb9,0xf4,0x74,0x00} ; //0-F, 全灭/*========================主函数=========================*/void main(){unsigned char h;while(1){for(h=0;h<17;h++){delay(500); //延时大约是0.5ssendbyte(h);delay(500);}h=0;}}/*====================================用74LS164来输出一个8位的数据,点亮数码管相应的管脚,以显示数字=====================================*/void sendbyte(uchar byte){uchar num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x01; //每一位的输出CLK=1; //每一次上升沿,输出一位数据num>>=1; //右移位赋值,以供下一位的输出}}/*==============================延时子程序===============================*/void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}。
采用74LS164芯片实现液晶的四线控制
采用74LS164芯片实现液晶的四线控制
引言
随着科学技术的飞速发展,电子产品越来越向智能化、小型化、人性化、低耗能等方面发展。
而液晶显示屏的兴起,为述要求的实现提供了可能。
液晶显示屏大致可分为段式、字符式、点阵式,或者单色、彩色等。
大多液晶显示屏都实现了标准化和模块化,采用通用的控制芯片(例如SED1330、SED1520、HD61202等)实现与单片机等的简单连接。
在实际应用中,考虑到产品并行的数据线和控制线连接。
在实际应用中,考虑到产品的成本和体积,采用并行的数据线和控制线连接,使用起来不是很方便。
因此希望采用标准的工业总线I2C、SPI等连接,而这类产品却很少见。
本文巧妙地利用液晶显示模块的特点,采用一片74LS164实际液晶的四线控制。
电路简单实用。
1 点阵液晶显示模块简介
本文介绍的是一种采用SED1520芯片控制的122×32图形点阵液晶显示屏,它主要由驱动/列驱动及122×32全点阵液晶显示器组成,可完成图形显示,也可显示七个半(16×16点阵)汉字。
主要技术参数和显示特性如下:
液显示模块驱动原理图
2 四线点阵液晶显示屏驱动电路
系统采用一片74LS164以串入并出方式与点阵液晶显示模块FM12232C连接,通过四条信号线(SDA串行数据线、CLK/A0串行时钟线即液晶显示模块的A0数据/指令控制线、。
74ls164
74ls164驱动数码管电路74ls164应用电路作者:本站来源:本站原创发布时间:2008-4-28 21:59:00 [收藏] [评论]74ls164应用电路本文采用了74LS164 这个串入并出的移位寄存器,很好地解决了2051 与L ED 的显示接口电路。
1 硬件电路2051 余下的并行I/ O 口线不足8 根,数据的并行输出已不可能,但可以考虑串行输出方法,图1 给出串行口扩展的4 位L ED 显示接口电路。
该电路只使用2051 的3 个端口,配接4 片串入并出移位寄存器74LS164 与1 片三端可调稳压器LM317T3 结束语本串行口扩展的LED 显示接口电路已被笔者成功地应用到以AT89C2051 单片机为核心的智能仪表中,如单片机湿度测量仪、单片机温度测量仪等。
现场运行表明,LED 显示清晰稳定不闪烁,特别是在现场环境如光照强弱不同的情况下, 可以在线调整LED 发光的亮度,获得视觉与功耗的最佳效果。
图1 串行口扩展的4 位LED显示电路.74LS164是一个串行输入并行输出的移位寄存器,可用于扩展并行输出口。
74LS165是8位并行输入串行输出移位寄存器,可以扩展一个或多个8位并行I/O口74LS164静态显示接口最近做一个很简单的应用单片机与74LS164结合的串如并出的应用用8051串行口外接74LS164扩展8位并行输出口,如图所示,8位并行口的各位都接一个发光二极管,要求发光管呈流水灯状态。
串行口方式0的数据传送可采用中断方式,也可采用查询方式,无论哪种方式,都要借助于TI或RI标志。
串行发送时,可以靠TI置位(发完一帧数据后)引起中断申请,在中断服务程序中发送下一帧数据,或者通过查询TI的状态,只要TI为0就继续查询,TI 为1就结束查询,发送下一帧数据。
在串行接收时,则由RI引起中断或对RI 查询来确定何时接收下一帧数据。
无论采用什么方式,在开始通讯之前,都要先对控制寄存器SCON进行初始化。
74HC164应用实例
74HC164应用实例实例1 74HC164是串行输入,并行输出接口器件,可用在单向的并行输出/并行地址锁存等. 74HC164因为价格便宜,容易使用特别适合使用在在需要用到数码管显示IO口又比较紧张的电子产品中,下面浅谈使用方法:1. 首先先了解他的引脚功能和逻辑图,如下图:图1 引脚名称和用途图2 真值表通过真值表我们可以了解到,A,B两个输入端是互锁的,CLK上升沿时数据移入移位寄存器中,CLEAR为清零用的,接低电平时所有端口都输出低电平,了解了真值表之后开始运用了,先给出如下原理图:图3 原理图图中,采用义隆的EM78P153作为控制芯片,P50作为CLK时钟信号,注意平时数据不传输时,时钟信号是不发送的应一直保持低电平或者高电平,数据需要传输的时候才输出时钟信号^_^ ,继续P51作为移位数据输出端,接到74HC164的B端,A端接高电平,当然也可以AB端短路,然后连接到DATA移位数据端,P52作为数码管的选通信号(也可以叫消隐^_^), 作用是使数据传输过程暂时关闭显示,以免显示出不需要的数据,原因是应为164不带锁存功能,数据传输过程是一位一位的向高位移位输出的,所以要等数据全部移入后才打开始点亮数码管.注意了哦,通过查看164的规格书发现,164输出高电平电流比输出低电平电流要小,亦称灌电流大,扇出电流弱,所以适合选用共阳数码管,如图,本人偷懒没有画出那个数码管的8字该介绍的介绍的差不多了,废话少说,该开始干活了,任务是: 显示0-9 每秒+1 ,到9后又返回0,一直循环显示,根据任务得到如下流程图:1. 显示部分:将需要显示的数值送入A ==> 查表求得显示段码==>将段码逐位移入164==>8位移完后点亮数码管==>延时==>返回第一步执行2. 中断部分:进入中断==>保存现场(以备调查取证,送你入狱^_^)==>重置TCC==>够1秒钟将需要显示的数据+1,并重置,不够就退出;根据以上要求就开始写代码调试了,要注意一点,数据移位时一定要记得高位在前哦,否则显示错误别怪我没有说清楚,我当年实验时就因为这个数据移位方向反了排查了半天,甚至以为是时钟频率不对,又以为时许不对.....搞了半天,NND后来重看DATASHEET才发现,原来是低级错误啊,呜呼哀哉.......,希望你不要重蹈我覆辙,哎哟!! 谁! 谁! 谁扔砖头上来? 啥?你扔的? 我废话太多.........,那俺少来两句,继续上菜, 咦好像没啥可说的了,上源程序吧1. ;中断部分:2.3. ;;;;;;;;;;中断;;;;;;;;4. INTPUT:5. MOV TEMPA, A;6. MOV A,@130;7. MOV TCC,A;255-130=1258. CLR RF;9. ;;;;;此处填写250Us处理程序10. BS WKREG,T500US11. ;;;;;;;;;;;;;;;;;;;;;;;;;12. DJZ R1MS13. JMP INTEXT;14. MOV A,@415. MOV R1MS,A;重置16. BS WKREG,T1MS17. ;;;;;;;此处填写1ms处理程序18.19. ;;;;;;;;;;;;;;;;;;;;;;;;;;20. DJZ R20MS21. JMP INTEXT;22. MOV A,@2023. MOV R20MS,A;重置24. ;;;此处填写1秒处理程序25. BS WKREG,T20MS26. ;;;;;;;;;;;;;;27. DJZ R1S28. JMP INTEXT;29. MOV A,@5030. MOV R1S,A;31. ;;;;;;;;;32. INC NUMBER33. MOV A,NUMBER34. SUB A,@1035. JBS SR,236. JMP INTEXT37. MOV A,@038. MOV NUMBER,A39.40.41. INTEXT:42. MOV A,TEMPA;43. RETI;;;;;;;;;;;;;;;;;;;;;44.45.46.47.48.49. ;显示部分:50.51. ;==============TXDATA==============52. TXDATA:53. BS P5,CC154. MOV A,@855. MOV DATALOP,A;56. TXLOP:57. BC WKREG,T500US58. BS P5,CLK;clk=高59. NOP;60. NOP61. JBS DATA_BUF,762. JMP $+363. BS P5,DATA;64. JMP $+265. BC P5,DATA66. DD1MS: JBS WKREG,T500US67. JMP $-168. BC P5,CLK69. BC WKREG,T500US70. JBS WKREG,T500US71. JMP $-1;72. RLC DATA_BUF73. DJZ DATALOP74. JMP TXLOP75. ;;;;;;;;;;76. BC WKREG,T500US77. BS P5,CLK;clk=高78. BC WKREG,T500US79. JBS WKREG,T500US80. JMP $-1;81. BC P5,CLK82. ;;;;;;;;83. BC P5,CC184.85. RET;;;;;;;86.87. ;数据查表88. ;===============DSPTBL============89. DSPTBL: ADD PC,A90. RETL @0B01000000;091. RETL @0B01111001;192. RETL @0B00100100;293. RETL @0B00110000;394. RETL @0B00011001;495. RETL @0B00010010;596. RETL @0B00000010;697. RETL @0B01111000;798. RETL @0B00000000;899. RETL @0B00010000;9100.101.102. ;循环体部分;103.104. ;;;;;;;;;;主程序;;;;;;;;;;;105. MLOOP:106. MOV A,NUMBER107. CALL DSPTBL108. MOV DATA_BUF,A109. CALL TXDATA110. BC WKREG,T1MS111. JBS WKREG,T1MS112. JMP $-1113. NOP;114.115. JMP MLOOP;;;;;;;;;;;;;;;;;;;;实例2 在实际应用中驱动数码管常用的方式分动态扫描和静态驱动。
PIC16f630使用74HC164驱动4位数码管
#DEFINE DAT_A PORTC,5;//数据移位输入端
#DEFINE CLK PORTC,4;;//数据移位时钟
#DEFINE BEEPER PORTC,2;----蜂鸣器输出端
#DEFINE LED_BP PORTC,1;----蜂鸣器报警指示灯
;------------------------------------------------------------
TABLE_TUBE:
ADDWF PCL,1
RETLW 3FH;0
RETLW 06H;1
RETLW 5BH;2
RETLW 4FH;3
RETLW 66H; 4
MOVLW 00H
MOVWF W_ADDR
MOVF TM_TEMPER,0
MOVWF W_DAT
CALL WR_EEP
RETURN
WR01;-------------------------------------写十位
; RC0---------------WEI_2
; RA0----WK1----WEI_3
; RA1----WK2----WEI_4
; RA4----WK3-----WEI_5
; RA3-----WK5----改为数字IO,做输入
;*/
#INCLUDE <P16F630.INC>
RETLW 6DH; 5
RETLW 7DH; 6
RETLW 07H;7
RETLW 7FH; 8
RETLW 6FH; 9
RETLW 00H;----段灭值,消影
74hc164级联实现四位数码管显示电路
2、设计中的优点与不足:
优点:基本实现了74HC164级联实现四位数码管显示电路的设计与仿真。
不足:由于Multisim中无法直接控制输入信号,我们尝试过利用555定时器构成多谐控制输入信号,可是没有成功。最后,我们在输入信号时,通过运用开关的闭合与断开来控制输入信号,在开关闭合时产生高电平,在开关断开时产生低电平。这样控制输入信号使实验增加了难度和麻烦。
实物样品等〕:
(1)提供核心器件的工作原理与应用介绍;
(2)提供用Protel99设计的电路原理图,也可给出印刷板电路图; (3)提供用Multisim、MaxPluss、Proteus等其他软件对电路的仿真结果与分析; (4)提供符合规定要求的课程设计说明书;
(5)提供参考文献不少于三篇,且必须是相关的参考文献;
7
74HC164逻辑图 (图2)
74HC164功能表
(图3)
H = HIGH(高)电平
L = LOW(低)电平
X =无关项
? = 低-至-高时钟跃变
8
74HC164波形图(图4)
2、七段数码管:
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二
极管的阳极接到一起形成公共阳
综合实验二 4路数码动态显示
综合实验二4路数码动态显示
一,实验目的
(1)学习多位数码动态显示的原理及双2线-4线译码器的功能
(2)熟悉综合运用多种中规模集成器件组成逻辑功能部件的能力及实验技能
二,实验仪器与器件
直流稳压电源一台;数字试验箱一个;计算机一台;74LS139;74LS153;74LS247;
三,实验原理
4位数码动态显示的原理是利用CP控制计数器,然后再给数码选择器4个地址码,顺序选择4路输入数码中的一路进行译码显示。
随着CP脉冲的输入,4位7段显示器按顺序显示数码,当CP频率升高时,由于视觉暂停,4位数码同时显示。
原理图如图所示
实验步骤:
(1)根据原理图进行仿真,仿真电路如图所示:
(3)在试验箱上上搭建电路,观查结果。
74LS164和74LS165工作原理及其单片机中的应用(基于Proteus仿真)
74LS164和74LS165工作原理及其在单片机中的应用基于Proteus仿真前言:本文详细介绍了74LS164和74LS165工作原理,并分别举例它们在单片机中的应用,所举例子包含proteus仿真电路图,源程序,程序注释详细清楚。
1、74LS164在单片机中应用举例本例在单片机串行口外接一片8位串入并出移位寄存器74LS164芯片,构成单片机输出接口电路,控制8只LED滚动显示。
(1)74LS164芯片如右图所示,它是8位串入并出移位寄存器,串行输入数据,然后并行输出。
各引脚功能如下:A、B(1、2引脚):数据输入端,数据通过这两个输入端之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。
当其中任意一个为低电平,则禁止新数据输入;当其中有一个为高电平,则另一个就允许输入数据。
因此两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
Q0~Q7(3~6,10~13引脚):数据输出端CP(8号引脚):时钟输入端。
CP每次由低变高时,数据右移一位,输入到Q0,Q0 是两个数据输入端的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
MR:复位清除端,当MR为低电平时,其它所有输入端都无效,同时所有输出端均为低电平。
GND(7号引脚,在proteus中已隐藏):接地端VCC(14号引脚,在proteus中已隐藏):电源端,接+5V电源74LS164 内部逻辑图(2)如下图所示,本例单片机串行口工作于方式0,即移位寄存器输入/输出模式。
串行数据通过RXD输出,TXD则用于输出移位时钟脉冲。
数据输入端1接高电平,数据输入端2接单片机RXD引脚。
时钟输入端接TXD引脚,复位端悬空。
数据输出端通过限流电阻接8只LED灯。
C程序如下:#include <reg51.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charvoid delay(uint x){uchar i;while(x--)for(i=0;i<120;i++);}void main(){uchar c=0x80;SCON=0x00; //串行口工作在方式0while(1){c=_crol_(c,1);SBUF=c;while(TI==0); //等待发送结束TI=0; //发送结束,TI置0delay(400);}}Proteus仿真运行结果如下:2、74LS165在单片机中的应用举例本例在单片机串行口外接一片8位并入串出移位寄存器74LS165,连接移位寄存器并行输入端的是8位拨码开关,其开关动作对应的8位二进制序列将通过移位寄存器串行输入到单片机串口,并通过单片机P0端口的8只LED显示出来。
用两个74HC164驱动两个四位的数码管
用两个74HC164驱动两个四位的数码管~~(一个简易电子钟)几天前我发一了帖寻求用两74HC164做动态扫描数码管~~~ 今天我折腾了一天终于把它难弄出来了~~~~~~其电路图是在一本书上找到的~~由于还没学会用protel 99画图,,所以就只有将就一下了我的程序如下:#include<at89x51.h>sbit DAT=P1^1;sbit CLK=P1^2;unsigned char code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//显示0~9unsigned char code ff[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x77};//位选;unsigned char a,b,c,d,e,f,ch,hour,minite,second;//开启计时void loading(){TMOD=0x22;TR0=1;ET0=1;EA=1;}以下是显示程序,共八个,因为有八个数码管;void sendbyte(unsigned char byte){unsigned char num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}num=0xfe;for(c=0;c<8;c++){CLK=0;DAT=num;CLK=1;num<<=1;}}void sendbyte_1(unsigned char byte) {unsigned char num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}num=0xfd;for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}}void sendbyte_2(unsigned char byte) {unsigned char num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}num=0xfb;for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}}void sendbyte_3(unsigned char byte) {unsigned char num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x80;num<<=1;}num=0xf7;for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}}void sendbyte_4(unsigned char byte) {unsigned char num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}num=0xef;for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;}}void sendbyte_5(unsigned char byte) {unsigned char num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}num=0xdf;for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}}void sendbyte_6(unsigned char byte) {unsigned char num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}num=0xbf;for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}}void sendbyte_7(unsigned char byte) {unsigned char num,c;num=tab[byte];for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}num=0x7f;for(c=0;c<8;c++){CLK=0;DAT=num&0x80;CLK=1;num<<=1;}}//延时~~void delay(){unsigned int j;for(j=0;j<250;j++);}main(){loading();while(1){a=hour/10; b=hour%10;c=minite/10;d=minite%10;e=second/10;f=second%10;ch=10;sendbyte(f);delay();sendbyte_1(e);delay();sendbyte_2(ch);delay();sendbyte_3(d);delay();sendbyte_4(c);delay();sendbyte_5(ch);delay();sendbyte_6(b);delay();sendbyte_7(a);delay();}}void time(void) interrupt 1 {unsigned int tt;tt++;if(tt==3600){tt=0;second++;if(second==60){second=0;minite++;if(minite==60){minite=0;hour++;if(hour==24)hour=0;}}}}此程序还有很多不足~希望单片机高手们来给我看一下~~~提一些好的建议吧~~。
综合实验2 4路数码动态显示
综合实验2 4路数码动态显示
实验要求
4个数码管在7段译码器和2-4译码器的共同驱动下,依次显示3987这4个数码,而这4个数码的显示速度有CP脉冲通过计数器控制决定。
当CP脉冲的频率达到某一值时,四个数码管从视觉上感觉是同时显示的,分辨不出依次显示的动态效果。
实验原理图
数据输入
数据选择
7段
译码器
4位数码显示
2线-4线译码器
计数器
振荡器
秒脉冲
实验内容
连接电路并仿真,测量数码显示所要求脉冲的最佳频率范围。
仿真图:
计数部分:采用74LS160进行计数,由于只用显示四路数码,故将
74LS160改为四位计数器,选用置数法。
输出QA、QB作为数据选择部分的地址、译码部分的输入。
译码部分(显示器控制部分):选用74LS139,输入A、B分别接QA、QB,将4个译码输出接在四个数码显示器上,用于控制其工作。
本图中采用共阴接法,而译码输出为低电平,故将输出通过非门和电阻与显示器的CA端接。
数据选择部分:由于四个数码管需要依次显示3987,选用两片
74LS153,用计数输出QA、QB接地址端A、B,在对输入进行置数,是的输出依次为0011,1001,1000,0111。
译码显示部分:选用七段译码器74LS247,将两片74LS153的四个输出作为ABCD四个输入,七个输出通过非门与数码显示器相连,实现译码显示。
通过该电路,在CP脉冲的作用下,四个数码显示器依次显示3987。
实验得,当CP的频率达到150Hz左右视觉上已经分辨不出数码管依次显示的动态效果。
两个74ls164怎么连?74ls164联级应用电路
两个74ls164怎么连?74ls164联级应用电路74ls164联级应用电路:串口连接两个74LS164驱动2个LED 数码管显示单片机的最小系统是单片机能够工作的最小硬件组合,对于8051系列单片机,其电路的最小系统大致相同,主要包括电源、晶体振荡电路、复位电路等。
串口数据通信方式包括并行通信和串行通信两种。
并行通信就是多条数据线上同时传送,其优点:速度快,只适于近距离通信。
串行通信就是数据以为以为的顺序传送,其优点:线路简单,成本低,适合远距离通信。
串行通信方式包括:异步串行通信和同步串行通信。
异步方式,数据传送不连续,时间间隔任意。
同步方式,发送与接收同步。
数据传送方式:单工、半双工、全双工、多工。
常见的串行通讯有:RS-232、RS-485、CAN总线等。
串行口控制寄存器包括:串行口控制寄存器SCON(控制工作方式)、电源控制寄存器PCON(控制波特率)。
SM0、SM1选择工作方式,SM2用于多机通信,REN允许接收控制位,TB8/RB8发送/接收数据D8位,TI/RI为发送/接收中断标志位。
74LS164串行口工作于方式0,发送数据时,是把串行端口设置成“串入并出的”输出口。
将它设置为“串入并出”输出口时,需外接1片“串入并出”同步移位芯片74LS164或CD4094,本次设计,用74LS164。
74LS164是8位边沿触发式移位寄存器,具有DIP、SO14等多种封装形式。
其DIP封装形式如上图所示。
数据通过A或B之一串行输入,任一输入端可以用作高电平使能端控制另一输入端的数据输入,两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。
时钟CP每次由低变高时,数据右移一位输入到Q0。
Q0是两个数据输入端A和B的逻辑与。
输入的数据在Q0输出,并依次右移在其它输出端口输出。
LED数码管LED数码管是单片机应用系统中常用的输出设备,其特点结构简单,价格便宜。
单片机系统常用7段LED数码管,由8个发光二极管构成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中北大学
课程设计说明书
学生姓名:XXXXXX 学号:1005xxxxx
学院:信息与通信工程学院
专业:电子信息科学与技术
题目:74HC164级联实现四位数码管显示电路设计指导教师:程耀瑜职称: 教授
李文强职称:讲师
2013 年 1 月 17 日
中北大学
课程设计任务书
2012/2013 学年第一学期
学院:信息与通信工程学院
专业:电子信息科学与技术
学生姓名:xxxxxxx 学号:100xxxxxxx 课程设计题目:74HC164级联实现四位数码管显示电路设计起迄日期:1月4日~1月15日
课程设计地点:中北大学
指导教师:程耀瑜,李文强
系主任:程耀瑜
下达任务书日期: 2010 年 1 月 3 日
课程设计任务书
目录
一、设计目的 (6)
二、设计任务 (6)
三、设计条件 (6)
四、设计内容和要求 (6)
1、74CH164的逻辑功能、逻辑图、引脚说明、波形图 (7)
2、七段显示数码管 (9)
3、74164QUARTUS 2仿真 (10)
4、分步设计 (10)
5、电路设计图 (11)
6、仿真波形图 (12)
六、设计总结 (15)
1、设计总结 (15)
2、设计中的优点与不足 (15)
3、心得体会 (15)
六、计参考资料 (16)
一、设计目的
本课程设计主要针对模拟电子技术和数字电子技术课程要求,培养学生在查阅资料的基础上,进行实用电路设计、计算、仿真、调试等多个环节的综合能力,同时培养学生用课程中所学的理论独立地解决实际问题的能力。
另外还培养学生用专业的、简洁的文字,清晰的图表来表达自己设计思想的能力。
二、设计任务
设计一个74HC164级联实现四位数码管显示电路,通过在74HC164上输入时钟信号(CP)和控制信号(D),在数码管上显现出来相应的信号。
三、设计条件
本设计是基于在学习过数字电子技术基础和模拟电子技术基础且在完成电子技术实验后设计的,通过在电脑上利用各种软件设计而成,包括Quartus II 5.0,Multisim2001等设计仿真软件。
四、设计内容和要求
分析以上设计任务。
由于74HC164是8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。
四位数码管则需用共阳极数码管,通过74HC164并行输出,驱动四位数码管,使四位数码管从低位到高位依次进行变换。
74HC164元器件(引脚信息)(图1)
引脚说明:
符号引脚说明
DSA 1 数据输入
DSB 2 数据输入
Q0 3 输出
Q1 4 输出
Q2 5 输出
Q3 6 输出
GND 7 地(0V)
CP 8 时钟输入(低电平到高电平边沿触发)/M/R 9 中央复位输入(低电平有效)
Q4 10 输出
Q5 11 输出
Q6 12 输出
Q7 13 输出
VCC 14 正电源
74HC164逻辑图(图2)
74HC164功能表
(图3)
H = HIGH(高)电平
L = LOW(低)电平
X =无关项
↑ = 低-至-高时钟跃变
74HC164波形图(图4)
2、七段数码管:
按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
共阳数码管是指将所有发光二
极管的阳极接到一起形成公共阳
极(COM)的数码管。
共阳数码管在
应用时应将公共极COM接到+5V,
当某一字段发光二极管的阴极为
低电平时,相应字段就点亮。
当某
一字段的阴极为高电平时,相应字
段就不亮。
共阴数码管是指将所
有发光二极管的阴极接到一起形
成公共阴极(COM)的数码管。
共阴
数码管在应用时应将公共极COM接到地线GND上,当某一字段发光
二极管的阳极为高电平时,相应字段就点亮。
当某一字段的阳极为
低电平时,相应字段就不亮。
(图6)
七段共阴极数码管
(图7)
七段共阳极数码管
3、74164QUARTUS 2仿真:
(图8)
(图9)
在CP前5个上升沿输入高电平,在第8个上升沿到来时
q0q1q2q3q4q5q6q7=00011111,如果把数码管的8个引脚分别与QA-QH连接,那么数码管则显示数字7。
4、分步设计:
时钟信号源(CLK)设计:
①.设计说明:
由于Mutisim中信号不能控制所以通过控制开关的闭合来实现输入信号的高低电平,时钟信号则通过波形发生器中的方波形实现。
(图10)
②.设计计算公式:
由于74HC164是由边沿D触发器构成在时钟(CP) 每次由低变高时,数据右移一位,输入到Q0,Q0 是两个数据输入端(DSA 和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。
Q(n+1)=D CP下降沿有效
输入设计
由于Multisim中无法直接控制输入信号,因此,我们在输入信号时,通过运用开关的闭合与断开来控制输入信号,在开关闭合时产生高电平,在开关断开时产生低电平。
5、设计最后图形如下图所示:
6、仿真波形以及连接图形:
A/B接高电平时仿真波形
A/B接高电平时仿真波形1
A/B接高电平时仿真波形2 A/B接高电平时仿真波形3 A/B接高电平时仿真波形4
A/B接低电平时仿真波形A/B接低电平时仿真波形1 A/B接低电平时仿真波形2 A/B接低电平时仿真波形3
A/B接低电平时仿真波形4
分析:
根据上图仿真结果,在A/B接高电平时在CP脉冲上升沿位置输出高电平对应的发光二极管熄灭,在A/B接低电平时不管CP脉冲为什么输出全为低电平所有的数码管全亮,与预期结果一直,故设计正确。
五.设计总结
1、设计总结
本次设计是通过查阅各种资料和我们的讨论的思考做出来的,在设计的过程中我们想用protel 99设计原理图,输入波形需要用到单片机,但我们对单片机的程序写入不了解。
由于学过Quartus II 5.0,于是在仿真的时候我们就想到用Quartus II 5.0仿真来替代。
经过思考后觉得由于我们的主电路都是数字电路构成的,所以完全可以由Quartus II 5.0仿真,而且Quartus II 5.0可以对输入波形进行更改,但是Quartus II 5.0没有数码管,无法实现74HC164对四位数码管的仿真。
最后,我们用到了Multisim进行了原理图的设计及仿真。
经过我们的努力终于实现了74HC164级联实现四位数码管显示电路的设计与仿真。
2、设计中的优点与不足:
优点:基本实现了74HC164级联实现四位数码管显示电路的设计与仿真。
不足:由于Multisim中无法直接控制输入信号,我们尝试过利用555定时器构成多谐控制输入信号,可是没有成功。
最后,我们在输入信号时,通过运用开关的闭合与断开来控制输入信号,在开关闭合时产生高电平,在开关断开时产生低电平。
这样控制输入信号使实验增加了难度和麻烦。
3、心得体会
经过两周的电子技术的课程设计的学习,我更多的懂得了查找资料对课程设计的重要性。
作为一个经验极其缺乏的学生来说,想通过老师在课堂上的讲解就
能精通一门课程,尤其是想自己设计一个有点创新和复杂性的东西来,我个人认为那是不现实的。
毕竟在课时有限的教学中,老师也只能讲解一些比较基础的重点的内容,所以作为一个大学生,我们要充分利用手上的工具和图书馆庞大的书籍,我们要不断的在探索中学习。
在设计过程中我们三人小组齐心协力,各有分工,一人负责查资料,一人负责电路的构思与设计,一人负责在计算机中进行仿真设计,在三人的共同努力下最终实现了设计要求。
本次课程设计让我充分体会到了团队合作的重要性,再大的困难只要大家齐心协力一定能够解决!
六.设计参考资料
(1)阎石.数字电子技术基础.北京:高等教育出版社,1998;
(2)王远.模拟电子技术.北京:机械工业出版社,2001;
(3)陈汝全.电子技术常用器件应用手册.北京:机械工业出版社,2003;(4)毕满清.电子技术实验与课程设计.北京:机械工业出版社,2006;(5)王颜才.Multisim11电子电路仿真分析与设计.北京:机械工业出版社,2012;。