首页 > 编程知识 正文

(51单片机汇编学习例程(6)——74HC573数码管篇)

时间:2023-05-05 20:51:26 阅读:121903 作者:2541

6.ASM6_Seg_573: 74HC573锁存控制数码管静态显示

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * @ date 2019.9.1 * @ brief 74hc 573控制数字代码*@store包括@ email 844545015 @ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * @ attentionallrightsreserver 30H单元的变量名为Val,类似于iORG 0000H; 程序执行的开始地址LJMP Main; 跳转到main函数ORG 0100H; 程序跳至0100H开始执行主: mov val,#00H; 用于位选择周期CLRWei; 573位芯片选择端子CLRDuan; 573的芯片选择端子While:MOV A、ValCJNEA、#8、Next; 判断Val变量的值是否大于7,如果大于,则为MOV Val,#00HSJMPWhile; 死循环Next:MOV DPTR,#Wei_Tab; dtr是指数组Wei_Tab的第一个SETBWei; 控制位数码管有效端-位选择MOV A、Val; AMOVC A,@A DPTR; 数组数Duan_TabMOV P0,a; 代码管赋值位CLRWei; 关闭控制位数码管有效端MOV P0、#0FFH; 消影MOV DPTR,#Duan_Tab; DPTR是指数组Duan_Tab开头的SETBDuan; 控制段数码管有效端-段选择MOV A、Val; xrpdkj是AMOVC A,@A DPTR; 数组数Duan_TabMOV P0,a; 代码管赋值段CLRDuan; 段选择MOV P0,#0FFH; 消除阴影的LCALL Delay; 延迟1msINCValSJMPWhile; 死循环延迟: 如果修正t=t1*2=1ms、R6的值,则时间(不准确) MOVR6、#02H; 02H=2D1:MOVR7,#0FAH; t1=250*2=500D2:DJNZR7,D2; R7=250自减少,退出循环直到达到0,双周期DJNZR6、D1; R6=020自减少,退出循环至0,2周期RETDuan_Tab:DB 03FH、006H、05BH、04FH、066H、07DH、007H、07FH、06 FH Wei _ tatah

74HC575锁存器扩展IO控制多个数码管和LED等设备。

1、学习目的

由于P0端口经常用作数据端口控制外围设备,而P0端口是开路泄漏输出,因此上拉电阻74HC573 (单向锁存器)是常用锁存器,也是74HC245 (双向锁存器),8位数据管

数码管的显示分为静态和动态,“静态”实际上也是动态的,但静态到了人眼无法分辨的程度。 本文为共阴极数码管,选择低水平是有效的,选择高水平是有效的。

要下载Proteus模拟文件和Keil项目,请注意公共编号:

2、学习内容

(如果需要Proteus和keil安装包,后台回复:Proteus仿真店子Proteus教育视频,后台回复:安装包)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。