历史上的今天
返回首页

历史上的今天

今天是:2025年01月07日(星期二)

正在发生

2018年01月07日 | 51单片机6位计数器汇编程序

2018-01-07 来源:eefocus

1602液晶6位计数器

    RS EQU P2.0 
    RW EQU P2.1 
    E EQU P2.2 
    org 00h

    a_bit equ 30h             ;个位数存放处 
    b_bit equ 31h             ;十位数存放处 
    c_bit equ 32h             ;百位数存放处 
    d_bit equ 33h             ;千位数存放处 
    e_bit equ 34h             ;万位数存放处 
    f_bit equ 35h             ;十万位数存放处 
    MOV    a,#30h      ;30H的ASCIC码为0 
    MOV    a_bit,a 
    MOV    b_bit,a 
    MOV    c_bit,a 
    MOV    d_bit,a 
    MOV    e_bit,a 
    MOV    f_bit,a 
    org    0030h 
    MOV P0,#00000001B    ;清屏 
    ACALL ENABLE 
    MOV P0,#00111000B    ;显示功能 
        ACALL ENABLE 
    MOV P0,#00001100B    ;显示开关控制 
     ACALL ENABLE 
    MOV P0,#06H        ;输入模式 
    ACALL ENABLE 
        MOV p0,#80H        ;第一行的开始位置 
    cALL ENABLE 
     MOV P0,#00000001B    ;清屏 
    ACALL ENABLE 
    MOV DPTR,#TABLE1    ;显示PASS WORD 
    CALL WRITE1        ;到TABLE1取码? 
stlop:  acall display        ;显示 
        inc a_bit             ;加1 
        MOV    a,a_bit 
        cjne    a,#3AH,stlop    ;如果A的值到3AH那么继续否则重新 
        MOV    a_bit,#30h      ;显示数送30H(就是显示0) 
        inc b_bit 
        MOV    a,b_bit 
        cjne    a,#3AH,stlop 
        MOV    b_bit,#30h 
        inc c_bit 
        MOV    a,c_bit 
        cjne    a,#3AH,stlop 
        MOV    c_bit,#30h 
        inc d_bit 
        MOV    a,d_bit 
        cjne    a,#3AH,stlop 
        MOV    d_bit,#30h 
        inc e_bit 
        MOV    a,e_bit 
        cjne    a,#3AH,stlop 
        MOV    e_bit,#30h 
        inc f_bit 
        MOV    a,f_bit 
        cjne    a,#3AH,stlop 
        MOV    f_bit,#30h 
    ajmp    stlop 
display:            ;显示子程序 
    MOV P0,#0C9H 
        ACALL ENABLE 
        MOV A,A_BIT 
     ACALL WRILTE2 
    MOV P0,#0C8H        ;显示的位置 
    ACALL ENABLE 
         MOV A,B_BIT          ;显示10位数 
    ACALL WRILTE2        ;显示 
    MOV P0,#0C7H        ;数据存贮器地址 
    ACALL ENABLE 
     MOV A,C_BIT 
    ACALL WRILTE2 
    MOV P0,#0C6H        ;数据存贮器地址 
    ACALL ENABLE 
     MOV A,D_BIT 
    ACALL WRILTE2 
    MOV P0,#0C5H        ;数据存贮器地址 
    ACALL ENABLE 
     MOV A,E_BIT 
    ACALL WRILTE2 
    MOV P0,#0C4H        ;数据存贮器地址 
    ACALL ENABLE 
      MOV A,F_BIT 
    ACALL WRILTE2 
                ;1MS延时(按12MHz算) 
;==================================================== 
D1MS:    MOV R7,#2 
          DJNZ R7,$ 
          RET 
WRILTE2:MOV p0,A  ;显示 
    SETB RS 
    CLR RW 
    CLR E 
    CALL DELAY 
    CALL DELAY3 
    SETB E 
    RET 
 WRITE1: MOV R1,#00H           ;显示table中的值 
    A1: MOV A,R1        ;到table取码 
    MOVC A,@A+DPTR 
    call  WRILTE2       ;显示到LCD 
    INC R1 
    CJNE A,#00H,A1      ;是否到00h 
    RET 
ENABLE: CLR RS             ;送命令 
    CLR RW 
    CLR E 
    ACALL DELAY 
    SETB E 
    RET 
DELAY: MOV P0,#0FFH 
    CLR RS 
    SETB RW 
    CLR E 
    NOP 
    SETB E 
    JB P0.7,DELAY        ;判断忙标志 
    RET 
DELAY3:             ; 延时程序 
    MOV  R7,#255 
    D1:MOV R6,#25 
    D2: DJNZ R6,D2 
    DJNZ R7,D1 
RET 
table1: db" 1602 JI SHU QI ",00H 
end 


推荐阅读

史海拾趣

Glorious Sources Co Ltd公司的发展小趣事
观察光电传感器是否有损坏或污染,确保其能够正常接收光信号。
格瑞宝(GP)公司的发展小趣事

为了更好地服务客户和市场,格瑞宝在深圳、南京等地设立了分公司等派出机构。这些分公司的设立不仅加强了公司在华南、华东等地区的业务覆盖能力,也提高了公司的市场响应速度和客户服务水平。通过区域布局的优化,格瑞宝能够更加灵活地应对市场变化,抓住发展机遇,实现更快速的发展。

Advanced Thermal Solutions公司的发展小趣事

ATS始终坚持以创新为驱动力,不断提升研发创新能力。公司设立了专门的研发团队,负责新技术和新产品的研发工作。通过与高校和研究机构的合作,ATS不断引入前沿的科技成果和人才资源,为公司的创新发展提供了有力支持。此外,ATS还建立了完善的研发流程和质量控制体系,确保每一款产品都能达到最高的性能和质量标准。

台湾双羽公司的发展小趣事

1954年,富士通研发出了日本第一台中继式自动计算机FACOM100,这一里程碑式的成就标志着富士通正式涉足信息产业。FACOM100的推出不仅在日本国内引起了轰动,也让富士通在国际上赢得了声誉。此后,富士通在计算机领域持续投入研发,不断推出新技术、新产品,逐渐成长为全球领先的计算机制造商之一。这一转变不仅推动了富士通自身的快速发展,也为全球计算机技术的进步做出了重要贡献。

AD Semiconductor公司的发展小趣事

1954年,富士通研发出了日本第一台中继式自动计算机FACOM100,这一里程碑式的成就标志着富士通正式涉足信息产业。FACOM100的推出不仅在日本国内引起了轰动,也让富士通在国际上赢得了声誉。此后,富士通在计算机领域持续投入研发,不断推出新技术、新产品,逐渐成长为全球领先的计算机制造商之一。这一转变不仅推动了富士通自身的快速发展,也为全球计算机技术的进步做出了重要贡献。

GSG公司的发展小趣事
支持多种通信接口(如RS-485、Modbus、HART等),方便与其他系统或设备进行集成。

问答坊 | AI 解惑

电子设计竞赛历年器件清单

本帖最后由 paulhyde 于 2014-9-15 04:06 编辑 发个历年元器件清单,也许对分析今年赛题有帮助!  …

查看全部问答>

关于VxWorks内存初始化失败的问题!

  由于系统内存的变化,需要在BSP中修改内存分配的内容,使用的CPU是MPC8270,内存控制器对应CS0—CS11这12个Bank,现在需要把其中的CS7对应的空间重16M改动到512M(硬件决定的)。接下来是我在BSP中的修改情况:     (1)修 ...…

查看全部问答>

求助ARM lpc2366中断接收数据

上位机发送至ARM串口的数据超过它的触发字节,怎么处理好?用查询线状态?还需要加上定时器? 望高手能给出代码?谢谢啦…

查看全部问答>

uclinux 中怎样知道ARM寄存器的地址

比如我要对BANK0的控制寄存器进行赋值,我怎样得到该寄存器的地址?它们之间的地址映射是什么时候建立的?相关(配置)文件是哪个?…

查看全部问答>

我的wince下的fopen_s为何不能用

我的wince下的fopen_s为何不能用?错误提示 C3861: \'fopen_s\': identifier not found。请大侠们指教…

查看全部问答>

简单的LED横流解决方案5

  􀂃上述各方案都是通过修改电源的恒压输出来实现的•最佳解决方案是将电源用作恒流源   谁能分析以上电路原理…

查看全部问答>

stm32f107vcISP问题请教?

                                 ISP时用USART1还是USART2,还是两个都可以呢?…

查看全部问答>

双核的PC机能不能安装 Vxworks?

难道必须要用p4的pc机才能安装Vxworks?…

查看全部问答>

MSP430G2553实现LCD1602的字符显示,而且是半字节的,用的是P2口的高四位。

/*********************************************************************** LCD1602显示之高四位相连的方法** 描述:4线数据宽度,操作Lcd1602* 在LCD1602屏幕上第一行显示 Hello!LCD1602* 第二行显示 MSP430G2553* 硬件电路:MSP430g2553* 硬件 ...…

查看全部问答>

stm32收发

stm32的485总线用中断收发,能够收发,但是收到的字节中会插一个字节(00或CD),这是怎么回事?哪位能指点一下??…

查看全部问答>