您的位置 首页 汽车

74ls595在proteus中的运用和浅谈

//此程序主要是练习proteus中74ls595的使用方法(在程序的最后我再次说明一下)//不过这个程序的仿真结果是对的,可是很郁闷,感觉不可思议…

//此程序主要是操练proteus74ls595的使用方法(在程序的最终我再次阐明一下)
//不过这个程序的仿真结果是对的,但是很抑郁,感觉难以想象,和自己想的不一样,总感觉是错的
//有谁也感觉到这个程序有过错,这是我的qq:117838621,咱们能够讨论一下

CLK_0 EQUP3.2;伪指令
CLK_1EQUP3.3

ORG 0000H
LJMP MAIN

ORG0030H
MAIN: LCALLINIT;调用INIT
MAIN_1:MOVR0,#30H
MOVR1,#7FH ;设置位选
MOVR2,#8;8位led需求8次循环

MAIN_2:MOVA,R1
LCALLLED;调用位操控子程序
NOP ;便是这个当地我感觉到不对
MOVA,@R0
LCALLDAT;调用数字显现程序
NOP
NOP
LCALL DELAY
INCR0;自加一,为下一位的显现做准备
MOVA,R1
RRA;段选右移,操控下一位的显现
MOVR1,A
DJNZR2,MAIN_2
SJMPMAIN_1

DAT: CLRCLK_0
MOVSBUF,A
JNBTI,$
CLRTI
SETBCLK_0
RET

LED: CLRCLK_1;清零时钟端
MOVSBUF,A;发送位选操控信号
JNBTI,$;等候,假如TI为1
CLRTI
SETBCLK_1;置时钟信号
RET

INIT: MOVR0,#0
MOVR1,#30H
MOVR2,#8
MOVDPTR,#TAB;取表首地址

INIT_1:MOVA,R0
MOVCA,@A+DPTR;从表格中取数
MOV@R1,A;保存所取的数
INCR0;自加,为下次取书做准备
INCR1
DJNZR2,INIT_1;循环8次,将一切要在8个数码管上显现的数显现出来
RET

DELAY:MOVR5,#10
L2: MOVR6,#200
L1:MOVR7,#200
DJNZR7,$
DJNZR6,L1
DJNZR5,L2
RET

TAB: DB11111100B ;0
DB01100000B ;1
DB11011010B ;2
DB11110010B ;3
DB01100110B ;4
DB10110110B ;5
DB10111110B ;6
DB11100000B ;7

END
//由74ls595的材料能够看出,有个tc_cp引脚,而只要在这个引脚的上升沿才干进去一位数据(而且里
//面的数据进行移位),但并不能输出,只要在sh_cp这个引脚的上升沿时,数据才干并行输出,
//而这个仿真图上(书上写的)居然把单片机的RXD端接在ds端,TXD接在sh_cp上,这样并不契合材料所说

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部