51单片机汇编学习例程(6)——74HC573数码管篇
6.ASM6_Seg_573: 74HC573锁存器控制数码管静态显示
/**
******************************************************************************
* @file Seg573.asm
* @author Alex——小白
* @version V1.0
* @date 2019.9.1
* @brief 74HC573控制数码管
* @store 有家Proteus仿真店子
* @Link https://shop484534014.taobao.com/
* @Email 844545015@qq.com
******************************************************************************
* @attention All Rights Reserved
**/Duan BIT P2.0 ;引脚变量名Wei BIT P2.1Val EQU 30H ;30H单元的变量名为Val,类似于i ORG 0000H ;程序执行的起始地址 LJMP Main ;跳转到main函数 ORG 0100H ;程序跳转到0100H开始执行Main: MOV Val,#00H ;用于位选循环 CLR Wei ;573的位片选引脚CLR Duan ;573的段片选引脚While: MOV A,ValCJNE A,#8,Next ;判断Val变量值是否大于7,若是则清零MOV Val,#00HSJMP While ;死循环Next:MOV DPTR,#Wei_Tab ;DPTR指向数组Wei_Tab首位SETB Wei ;打开控制位数码管的使能端-位选MOV A,Val ;位号赋给AMOVC A,@A+DPTR ;读取数组数Duan_TabMOV P0,A ;数码管赋值位CLR Wei ;关闭控制位数码管的使能端MOV P0,#0FFH ;消影MOV DPTR,#Duan_Tab ;DPTR指向数组Duan_Tab首位SETB Duan ;打开控制段数码管的使能端-段选 MOV A,Val ;段号赋给AMOVC A,@A+DPTR ;读取数组数Duan_TabMOV P0,A ;数码管赋值段CLR Duan ;关闭段选MOV P0,#0FFH ;消影LCALL Delay ;延时1ms INC ValSJMP While ;死循环Delay: ;t=t1*2=1ms,修改R6的值即可更改时间(不精准)MOV R6, #02H ;02H=2D1: MOV R7, #0FAH ;t1=250*2=500D2: DJNZ R7, D2 ;R7=250自减,直到为0跳出循环,双周期DJNZ R6, D1 ;R6=020自减,直到为0跳出循环,双周期RETDuan_Tab:DB 03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH Wei_Tab:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FHEND
1、学习目的
通过74HC575锁存器扩展IO控制多个数码管或LED等设备。
2、学习内容
常用P0口作为数据口控制外设,P0口是开漏输出,所以需要上拉电阻74HC573(单向锁存)是常见的锁存器,还有74HC245(双向锁存),常用于控制8位数码管的段选和位选从而节约51并口IO资源。
数码管显示分为静态和动态,所谓“静态”其实也是动态,只是快到人眼无法分辨而形成了静态,本文中是共阴极数码管,位选低电平有效,段选高电平有效。
如需下载Proteus仿真文件和Keil工程,请关注公众号:
Proteus仿真店子
(若需Proteus和keil安装包,后台回复:安装包;若需Proteus教学视频,后台回复:Proteus视频;若需其它设计,后台回复:51汇编设计)
51单片机汇编学习例程(6)——74HC573数码管篇相关推荐
- 51单片机汇编学习例程(9)——ADC0809篇
ASM9_ADC0808: ADC0808采集ADC参数,数码管显示 (注意代码显示不全,最下面有Keil源码和Proteus工程) /** ************************** ...
- 51单片机汇编学习例程(16)——AT24C02篇
ASM16_AT24C02:EEPROM数据读写,LED显示 (注意代码显示不全,最下面有Keil源码和Proteus工程) /*********************************** ...
- 51单片机汇编学习例程(17)——KeyPad4X4篇
ASM17_KeyPad4X4:矩阵键盘,LCD1602显示按键值. (注意代码显示不全,最下面有Keil源码和Proteus工程) 仿真视频 /** *********************** ...
- 51单片机汇编学习例程(10)——DAC0832篇
ASM10_DAC0832: DAC0832输出各种波形 (注意代码显示不全,最下面有Keil源码和Proteus工程) /** ****************************** ...
- 51单片机汇编学习例程(13)——DC-Motor篇
ASM13_DCMotor: DC-Motor电机控制 (注意代码显示不全,最下面有Keil源码和Proteus工程) /********************************** ...
- 51单片机汇编学习例程(7)——74HC595数码管篇
7.ASM7_Seg_595: 74HC595控制数码管静态显示 (注意代码显示不全,最下面有Keil源码和Proteus工程) /** **************************** ...
- 51单片机汇编学习(一)点亮你的LED灯
本帖为使用汇编编写51单片机的学习笔记,本帖使用软件为keil5,因为没有实际硬件,所以选择porteus仿真软件,因为是第一篇,所以内容多有赘述,详细说明了工程建立等,因为文章太长所以编程和仿真分开 ...
- 51单片机汇编学习11——扩展原理与接口技术
终于到这一小节了.这一节讲扩展原理与接口技术. 那么什么是扩展原理&接口技术呢?其实主要是3种. 1.扩展一个程序存储器 2.扩展一个数据存储器 3.扩展IO口 1.扩展程序存储器 其实这个扩 ...
- 51单片机汇编学习笔记9——定时计数器
这一小节介绍一下51单片机的一个重要外设定时计数器. 顾名思义定时计数器主要是两种功能:定时.计数. 定时:就是当你开启定时器后到了设定的时间他会触发中断,然后去执行中断服务函数里面的程序. 计数:主 ...
- 51单片机汇编学习10——串口通讯
这一小节写一下串口通讯. 建议先去了解一下什么串行通讯. 推荐一个视频3分钟理解通信协议之串口UART到底是个啥?_哔哩哔哩_bilibili 因为串口通讯涉及的寄存器相对较多.所以尽量要自己去看看S ...
最新文章
- Generator-ing Values
- STC用PCA测量脉宽_用于相干激光雷达的大能量长脉宽单频激光器 | COL
- Win7(64位)下安装Anaconda+Tensorflow(cpu)
- zTree菜单的排序
- 虚函数和纯虚函数的区别?
- 安装java环境linux和windows
- java基础----Java Collections Framework
- 牛客练习赛46 A	华华教奕奕写几何 (简单数学)
- LeetCode之两数相加
- 一图梳理企业数据治理的8项举措
- Composer - PHP 世界里用于管理项目依赖的工具
- 2017.9.19 L语言 失败总结
- python不会英语不会数学怎么自学-英语和数学都不好,但是我想学Python编程可以吗?...
- Android 四大组件学习之Service二
- 《算法图解》第八章之贪婪算法
- SQL Server 2012安装过程中出现 NetFx3错误
- 安装Kali Linux系统
- uniapp map 点聚合
- 打字时禁用触摸板_触摸打字感觉不错,但不适合我
- SYN flooding