您的位置 首页 观点

74hc164驱动操控8个数码管程序

本站为您提供的74hc164驱动控制8个数码管程序,数码管,也称作辉光管,是一种可以显示数字和其他信息的电子设备。玻璃管中包括一个金属丝网制成的阳极和多个阴极。大部分数码管阴极的形状为数字。管中充以低压气体,通常大部分为氖加上一些汞和/或氩。给某一个阴极充电,数码管就会发出颜色光,视乎管内的气体而定,一般都是橙色或绿色。

74HC164设备概述

8 位串入、并出移位寄存器

74HC16474HC164、74HCT164 是高速硅门 CMOS 器材,与低功耗肖特基型 TTL (LSTTL) 器材的引脚兼容。74HC164、74HCT164 是 8 位边缘触发式移位寄存器,串行输入数据,然后并行输出。数据经过两个输入端(DSA 或 DSB)之一串行输入;任一输入端能够用作高电平使能端,操控另一输入端的数据输入。两个输入端或许衔接在一同,或许把不必的输入端接高电平,必定不要悬空。

时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前坚持一个树立时刻的长度。

主复位 (MR) 输入端上的一个低电平将使其它一切输入端都无效,一同非同步地铲除寄存器,强制一切的输出为低电平。

74hc164驱动操控8个数码管程序

数码管

数码管,也称作辉光管,是一种能够显现数字和其他信息的电子设备。玻璃管中包含一个金属丝网制成的阳极和多个阴极。大部分数码管阴极的形状为数字。管中充以低压气体,一般大部分为氖加上一些汞和/或氩。给某一个阴极充电,数码管就会宣布颜色光,视乎管内的气体而定,一般都是橙色或绿色。

数码管也称LED数码管,不同职业人士对数码管的称号不一样,其实都是相同的产品。

按发光二极管单元衔接方法可分为共阳极数码管和共阴极数码管。共阳数码管是指将一切发光二极管的阳极接到一同构成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将一切发光二极管的阴极接到一同构成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

八只74HC164操控八只数码管程序

74hc164驱动操控8个数码管程序

ORG0000H

JMPMAIN

ORG0013H

AJMPBreak_2

MAIN: ;主程序

MOVSP,#60H;设定仓库指针

MOVTCON,04H

MOVIE,84H

MOVSCON,#00H;设定串口为0方法,同步移位寄存器,波特率Fosc/12,0:单机对单机,接纳操操控止

START:;

JNBP3.2,DISPLAY_09

CALLDISPLAY_0;调用显现子程序

CALLDELAY;调用延时子程序

DISPLAY_0:;显现子程序

MOVR7,#2

MOVR6,#2

MOVR5,#2

L0:

MOVA,#0;先发送十位数的LED数码管段选码

MOVDPTR,#TABLE;十位数的LED数码管段选码表地址送数据寄存器指针DPTR

MOVCA,@A+DPTR;挑选十位数计数器COUNT2,第二个LED数码管段选码送A

MOVSBUF,A;发送挑选十位数计数器COUNT2,第二个LED数码管段选码

L0_1:

JBCTI,L0_2;发送操控位TI=1,发送结束跳转到DATA1,并将TI清0

JMPL0_1;发送操控位TI=0,未发送结束跳转到LOOPD0,持续检测TI位

L0_2:

DJNZR7,L0

MOVR7,#2

MOVA,#0;先发送十位数的LED数码管段选码

MOVDPTR,#TABLE_1;十位数的LED数码管段选码表地址送数据寄存器指针DPTR

MOVCA,@A+DPTR;挑选十位数计数器COUNT2,第二个LED数码管段选码送A

MOVSBUF,A;发送挑选十位数计数器COUNT2,第二个LED数码管段选码

L0_3:

JBCTI,L0_4;发送操控位TI=1,发送结束跳转到DATA1,并将TI清0

JMPL0_3;发送操控位TI=0,未发送结束跳转到LOOPD0,持续检测TI位

L0_4:DJNZR6,L0

L0_5:

MOVA,#0;先发送十位数的LED数码管段选码

MOVDPTR,#TABLE;十位数的LED数码管段选码表地址送数据寄存器指针DPTR

MOVCA,@A+DPTR;挑选十位数计数器COUNT2,第二个LED数码管段选码送A

MOVSBUF,A;发送挑选十位数计数器COUNT2,第二个LED数码管段选码

L0_6:

JBCTI,L0_7;发送操控位TI=1,发送结束跳转到DATA1,并将TI清0

JMPL0_6;发送操控位TI=0,未发送结束跳转到LOOPD0,持续检测TI位

L0_7:

DJNZR5,L0_5

RET

DISPLAY_09:

MOVCOUNT1,#0;个位数计数器COUNT1置0

MOVCOUNT2,#0;十位数计数器COUNT2置2

MOVCOUNT3,#0;百位数计数器COUNT3置8

MOVCOUNT4,#0;百位数计数器COUNT3置8

MOVCOUNT5,#0;百位数计数器COUNT3置8

MOVCOUNT6,#0;百位数计数器COUNT3置8

MOVCOUNT7,#0;百位数计数器COUNT3置8

MOVCOUNT8,#0;百位数计数器COUNT3置8

START_09:

CALLDISPLAY;调用显现子程序

CALLDELAY;调用延时子程序

W1:

INCCOUNT1;个位数计数器COUNT1加1

MOVA,COUNT1

CJNEA,#10,START_09;检测个位数是否改变10次,假如不行10次,跳转到程序开端显现处START

W10:

INCCOUNT2;十位数计数器COUNT2加1

MOVCOUNT1,#0;个位数计数器COUNT1置0

MOVA,COUNT2;

CJNEA,#6,START_09;检测个位数是否改变10次,假如不行10次,跳转到程序开端处

W100:

INCCOUNT3;百位数计数器COUNT3加1

MOVCOUNT2,#0;十位数计数器COUNT2置0

MOVCOUNT1,#0;个位数计数器COUNT1置0

MOVA,COUNT3;

CJNEA,#1,START_09;检测个位数是否改变10次,假如不行10次,跳转到程序开端处

W1000:

INCCOUNT4;千位数计数器COUNT4加1

MOVCOUNT3,#0;百位数计数器COUNT3置0

MOVCOUNT2,#0;十位数计数器COUNT2置0

MOVCOUNT1,#0;个位数计数器COUNT1置0

MOVA,COUNT4;

CJNEA,#10,START_09;检测个位数是否改变10次,假如不行10次,跳转到程序开端处

W10000:

INCCOUNT5;万位数计数器COUNT5加1

MOVCOUNT4,#0;千位数计数器COUNT4置0

MOVCOUNT3,#0;百位数计数器COUNT3置0

MOVCOUNT2,#0;十位数计数器COUNT2置0

MOVCOUNT1,#0;个位数计数器COUNT1置0

MOVA,COUNT5;

CJNEA,#6,START_09;检测个位数是否改变10次,假如不行10次,跳转到程序开端处

W100000:

INCCOUNT6;十万位数计数器COUNT6加1

MOVCOUNT5,#0;千位数计数器COUNT5置0

MOVCOUNT4,#0;千位数计数器COUNT4置0

MOVCOUNT3,#0;百位数计数器COUNT3置0

MOVCOUNT2,#0;十位数计数器COUNT2置0

MOVCOUNT1,#0;个位数计数器COUNT1置0

MOVA,COUNT6;

CJNEA,#1,START_09;检测个位数是否改变10次,假如不行10次,跳转到程序开端处

W1000000:

INCCOUNT7;百万位数计数器COUNT7加1

MOVCOUNT6,#0;千位数计数器COUNT6置0

MOVCOUNT4,#0;千位数计数器COUNT4置0

MOVCOUNT3,#0;百位数计数器COUNT3置0

MOVCOUNT2,#0;十位数计数器COUNT2置0

MOVCOUNT1,#0;个位数计数器COUNT1置0

MOVA,COUNT7;

CJNEA,#10,START_09;检测个位数是否改变10次,假如不行10次,跳转到程序开端处

W10000000:

INCCOUNT8;万万位数计数器COUNT7加1

MOVCOUNT7,#0;万位数计数器COUNT7加1

MOVCOUNT6,#0;千位数计数器COUNT6置0

MOVCOUNT4,#0;千位数计数器COUNT4置0

MOVCOUNT3,#0;百位数计数器COUNT3置0

MOVCOUNT2,#0;十位数计数器COUNT2置0

MOVCOUNT1,#0;个位数计数器COUNT1置0

MOVA,COUNT8;

CJNEA,#10,L1;检测个位数是否改变10次,假如不行10次,跳转到程序开端处AJMPW0

L1:AJMPSTART

W0:

MOVCOUNT1,#0;个位数计数器COUNT1置0

MOVCOUNT2,#0;十位数计数器COUNT2置0

MOVCOUNT3,#0;百位数计数器COUNT3置0

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/61314.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部