找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 831|回复: 0
打印 上一主题 下一主题
收起左侧

用汇编语的大师多吗?我也想用C,正在学习

[复制链接]
跳转到指定楼层
楼主
ID:556030 发表于 2019-6-5 22:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
;=======================================================
;利用串行转并行芯片595芯片调数据表实现40个彩色LED来回流两个花样
;======================================================
MR EQU P3.4;MR低电平移位寄存器清零
SH EQU P3.7;SH上升沿数据寄存器移位
ST EQU P3.6;上升移位寄存器数据进入数据寄存器
OE EQU P3.3;高电平禁止输出(高阻态)
DSA EQU P3.5;串行数据输入
;=========初始化程序=====================================
CLR MR;复位
LCALL DELAY
SETB MR;复位复位
CLR OE;允许输出
CLR ST
CLR SH
;==================================================
ZUO:MOV 40H,#00H
KAI:MOV R0,#00H
    MOV DPTR,#TAB
SS:LCALL LL;调用第一个花样共调5次
    INC R0
    LCALL LL
         INC R0
         LCALL LL
         INC R0
         LCALL LL
         INC R0
         LCALL LL
         INC R0
;============================================
         LCALL OUT
         LCALL YAN
         MOV A,R0
         CJNE A,#225D,SS
         INC 40H
         MOV A,40H
         CJNE A,#5D,KAI
;-------------------------------------------
     MOV 40H,#00H
KAI2:MOV R0,#00H
    MOV DPTR,#TAC
SS1:LCALL LL;调用第二个花样共调5次
    INC R0
    LCALL LL
         INC R0
         LCALL LL
         INC R0
         LCALL LL
         INC R0
         LCALL LL
         INC R0
;============================================
         LCALL OUT
         LCALL ZYS
         MOV A,R0
         CJNE A,#90D,SS1
         INC 40H
         MOV A,40H
         CJNE A,#5D,KAI2
           AJMP ZUO
;=================================================
LL: MOV A,R0
         MOVC A,@A+DPTR
         LCALL WR_595
         RET
;====================================================
;移位寄存器接收数据子程序
;==================================================
WR_595:MOV R4,#08H;确定输出为8位数据
WR_LOOP:RLC A
       MOV DSA,C;写入第一位数据
       SETB SH;上升沿发生移位
       LCALL DELAY
       CLR SH;串行数据移位
       LCALL DELAY
       DJNZ R4,WR_LOOP;等待数据全部发送完毕
       RET
;=========================================================
OUT:SETB ST;上升沿将数据送到输出锁存器
    NOP;空操作指令,延时一个程序周期
    NOP
    CLR ST;下降沿将数据从锁存器输出
    RET
;================================================
;短延时子程序
;=============================================
DELAY:MOV R6,#5D
DEL1:MOV R7,#2D
      DJNZ R7,$
      DJNZ R6,DEL1
      RET
;=============================================
;长延时子程序
;===============================================
YAN:MOV R6,#200D
YAN1:MOV R7,#100D
    DJNZ R7,$
    DJNZ R6,YAN1
    RET
;=============================================================
;中延时程序
;=============================================================
ZYS:MOV R2,#200D
AA:MOV R3,#100D
NN:MOV R5,#10D
    DJNZ R5,$
         DJNZ R3,NN
         DJNZ R2,AA
         RET
;===========================================================
;数据表
;============================================================
TAB:DB 01111111B,11111111B,11111111B,11111111B,11111110B;1
    DB 00111111B,11111111B,11111111B,11111111B,11111100B;2
         DB 00011111B,11111111B,11111111B,11111111B,11111000B;3
         DB 00001111B,11111111B,11111111B,11111111B,11110000B;4
         DB 10000111B,11111111B,11111111B,11111111B,11100001B;5
         DB 11000011B,11111111B,11111111B,11111111B,11000011B;6
         DB 11100001B,11111111B,11111111B,11111111B,10000111B;7
         DB 11110000B,11111111B,11111111B,11111111B,00001111B;8
         DB 11111000B,01111111B,11111111B,11111110B,00011111B;9
         DB 11111100B,00111111B,11111111B,11111100B,00111111B;10
         DB 11111110B,00011111B,11111111B,11111000B,01111111B;11
         DB 11111111B,00001111B,11111111B,11110000B,11111111B;12
         DB 11111111B,10000111B,11111111B,11100001B,11111111B;13
         DB 11111111B,11000011B,11111111B,11000011B,11111111B;14
         DB 11111111B,11100001B,11111111B,10000111B,11111111B;15
         DB 11111111B,11110000B,11111111B,00001111B,11111111B;16
         DB 11111111B,11111000B,01111110B,00011111B,11111111B;17
         DB 11111111B,11111100B,00111100B,00111111B,11111111B;18
         DB 11111111B,11111110B,00011000B,01111111B,11111111B;19
         DB 11111111B,11111111B,00000000B,11111111B,11111111B;20
         DB 11111111B,11111111B,10000001B,11111111B,11111111B;21
         DB 11111111B,11111111B,11000011B,11111111B,11111111B;22
         DB 11111111B,11111111B,11100111B,11111111B,11111111B;23
         DB 11111111B,11111111B,11000011B,11111111B,11111111B;24
         DB 11111111B,11111111B,10000001B,11111111B,11111111B;25
         DB 11111111B,11111111B,00000000B,11111111B,11111111B;26
         DB 11111111B,11111110B,00011000B,01111111B,11111111B;27
         DB 11111111B,11111100B,00111100B,00111111B,11111111B;28
         DB 11111111B,11111000B,01111110B,00011111B,11111111B;29
         DB 11111111B,11110000B,11111111B,00001111B,11111111B;30
         DB 11111111B,11100001B,11111111B,10000111B,11111111B;31
         DB 11111111B,11000011B,11111111B,11000011B,11111111B;32
         DB 11111111B,10000111B,11111111B,11100001B,11111111B;33
         DB 11111111B,00001111B,11111111B,11110000B,11111111B;34
         DB 11111110B,00011111B,11111111B,11111000B,01111111B;35
         DB 11111100B,00111111B,11111111B,11111100B,00111111B;36
         DB 11111000B,01111111B,11111111B,11111110B,00011111B;37
         DB 11110000B,11111111B,11111111B,11111111B,00001111B;38
         DB 11100001B,11111111B,11111111B,11111111B,10000111B;39
         DB 11000011B,11111111B,11111111B,11111111B,11000011B;40
         DB 10000111B,11111111B,11111111B,11111111B,11100001B;41
         DB 00001111B,11111111B,11111111B,11111111B,11110000B;42
         DB 00011111B,11111111B,11111111B,11111111B,11111000B;43
         DB 00111111B,11111111B,11111111B,11111111B,11111100B;44
         DB 01111111B,11111111B,11111111B,11111111B,11111110B;45
;-------------------------------------------------------------------
     TAC:DB 01101101B,10110110B,11011011B,01101101B,10110110B;1
         DB 11101111B,10111110B,11011111B,01111101B,11110111B
         DB 01111101B,11110111B,11111011B,11101111B,10111110B
              DB 10110110B,11011011B,01101101B,10110110B,11011011B;2
         DB 10111110B,11111011B,11101111B,10111110B,11011111B
         DB 11110111B,11011111B,01111101B,11110111B,11111011B
         DB 11011011B,01101101B,10110110B,11011011B,01101101B;3
         DB 11111011B,11101111B,10111110B,11111011B,11101111B
         DB 11011111B,01111101B,11110111B,11011111B,01111101B
         DB 01001001B,00100100B,10010010B,01001001B,01001001B;4
         DB 01011101B,01110101B,11010111B,01011101B,01110101B
         DB 11101011B,10101110B,10111010B,11101011B,10101110B
         DB 10010010B,01001001B,00100100B,10010010B,01001001B;5
         DB 11110011B,11001111B,00111100B,11110011B,11001111B
         DB 10011110B,01111001B,11100111B,10011110B,01111001B
         DB 00100100B,10010010B,01001001B,00100100B,10010010B;6
         DB 00111100B,11110011B,11001111B,00111100B,10011110B
         DB 11100111B,10011110B,01111001B,11100111B,11110011B
END        

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表