找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机16*16点阵Proteus仿真 汇编语言程序

[复制链接]
跳转到指定楼层
楼主
具体内容看附件吧,我把写的程序打包放在一起了。
感兴趣的朋友可以做进一步扩展。


单片机源程序如下:
  1.                 ORG                0000H
  2.                 AJMP        MAIN
  3.                 ORG                0100H
  4. MAIN:       
  5.                 SETB        P3.6                ;RW,1读,0写
  6.                 SETB        P3.5                  ;RS,1数据寄存器,0命令/状态寄存器
  7.                 MOV                2AH,#16                ;位首地址
  8.                 LCALL        TIM1
  9.                 JMP                MAIN
  10.                        
  11. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////               
  12. TIM1:        MOV                R5,#-1                ;位右移次数
  13.                 MOV                R7,#10               
  14. LOOP0:        INC                R5
  15.                 MOV                2EH,R5       
  16. LOOP1:        MOV                R3,#0
  17.                 MOV                R4,#16                ;位扫描初始化                                                       
  18. LOOP2:        LCALL        WEI                       
  19.                 LCALL        EXC1H
  20.                 LCALL        HC595
  21.                 LCALL        EXC1L
  22.                 LCALL        HC595
  23.                 CLR                P3.5
  24.                 NOP
  25.                 NOP
  26.                 SETB        P3.5
  27.                
  28.                 INC                R3
  29.                 DJNZ        R4,LOOP2         ;扫描16位
  30.                
  31.                 MOV                R5,2EH       
  32.                 DJNZ        R7,LOOP1        ;延时显示
  33.                
  34.                 MOV                R7,#10
  35.                 CJNE        R5,#8,LOOP0        ;右移8位
  36. //////////////////////////////////////////////////////////////
  37. TIM2:        MOV                R5,#-1
  38.                 MOV                R7,#10
  39. LOOP3:        INC                R5
  40.                 MOV                2DH,R5
  41. LOOP4:        MOV                R3,#0
  42.                 MOV                R4,#16                                       
  43. LOOP5:        LCALL        WEI       
  44.                 LCALL        EXC2H
  45.                 LCALL        HC595
  46.                 LCALL        EXC2L
  47.                 LCALL        HC595
  48.                 CLR                P3.5
  49.                 NOP
  50.                 NOP
  51.                 SETB        P3.5
  52.        
  53.                 INC                R3
  54.                 DJNZ        R4,LOOP5                 ;扫描16位
  55.                
  56.                 MOV                R5,2DH       
  57.                 DJNZ        R7,LOOP4                   ;延时显示
  58.                
  59.                 MOV                R7,#10
  60.                 CJNE        R5,#8,LOOP3                ;再右移八位,共16位       
  61.        
  62.                 MOV                A,2AH
  63.                 ADD                A,#16
  64.                 MOV                2AH,A       
  65.                 CJNE        A,#80,TIM1
  66.                 RET
  67. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

  68. WEI:        MOV                DPTR,#WEI2       
  69.                 CLR                A
  70.                 ADD                A,R3                       
  71.                 MOVC        A,@A+DPTR
  72.                 CPL                A
  73.                 LCALL        HC595               
  74.                 MOV                DPTR,#WEI1       
  75.                 CLR                A
  76.                 ADD                A,R3               
  77.                 MOVC        A,@A+DPTR
  78.                 CPL                A
  79.                 LCALL        HC595
  80.                 RET       

  81. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////       
  82.                 ;得到偏移后段码高八位
  83. EXC1H:        MOV                22H,R5                ;保存右移次数       
  84.                
  85.                 MOV                DPTR,#TAB2       
  86.                 MOV                A,2AH
  87.                 CLR                C
  88.                 SUBB        A,#16
  89.                 ADD                A,R3
  90.                 MOVC        A,@A+DPTR
  91.                 MOV                20H,A               
  92.                
  93.                 MOV                DPTR,#TAB1
  94.                 MOV                A,2AH
  95.                 ADD                A,R3
  96.                 MOVC        A,@A+DPTR
  97.                 MOV                21H,A

  98.                 MOV                A,22H
  99.                 JZ                Z1
  100.                 LCALL   ROTATE1
  101.                 JMP                Z2
  102. Z1:                MOV                A,20H
  103. Z2:                RET

  104. EXC2H:        MOV                22H,R5                ;保存右移次数       
  105.                
  106.                 MOV                DPTR,#TAB1
  107.                 MOV                A,2AH
  108.                 ADD                A,R3
  109.                 MOVC        A,@A+DPTR
  110.                 MOV                20H,A
  111.                
  112.                 MOV                DPTR,#TAB2       
  113.                 MOV                A,2AH
  114.                 ADD                A,R3
  115.                 MOVC        A,@A+DPTR
  116.                 MOV                21H,A       
  117.                
  118.                 MOV                A,22H
  119.                 JZ                Z3
  120.                 LCALL   ROTATE1
  121.                 JMP                Z4
  122. Z3:                MOV                A,20H
  123. Z4:                RET

  124. ROTATE1:CLR                C
  125.                 MOV                A,21H
  126.                 RRC                A
  127.                 MOV                21H,A                 ;保存每次右循环后的数据
  128.                 MOV                A,20H
  129.                 RRC                A
  130.                 MOV                20H,A       
  131.                 DJNZ        R5,ROTATE1
  132.                 MOV                R5,22H                ;还原右移次数
  133.                 RET
  134. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  135.                 ;得到偏移后段码低八位
  136. EXC1L:        MOV                22H,R5                ;保存右移次数       
  137.                
  138.                 MOV                DPTR,#TAB1       
  139.                 MOV                A,2AH
  140.                 CLR                C
  141.                 SUBB        A,#16
  142.                 ADD                A,R3
  143.                 MOVC        A,@A+DPTR
  144.                 MOV                23H,A
  145.                
  146.                 MOV                DPTR,#TAB2       
  147.                 MOV                A,2AH
  148.                 CLR                C
  149.                 SUBB        A,#16
  150.                 ADD                A,R3
  151.                 MOVC        A,@A+DPTR
  152.                 MOV                24H,A               
  153.                
  154.                 MOV                A,22H
  155.                 JZ                Z5
  156.                 LCALL   ROTATE2
  157.                 JMP                Z6
  158. Z5:                MOV                A,23H
  159. Z6:                RET
  160. EXC2L:        MOV                22H,R5                ;保存右移次数       
  161.                
  162.                 MOV                DPTR,#TAB2       
  163.                 MOV                A,2AH
  164.                 ADD                A,R3
  165.                 CLR                C
  166.                 SUBB        A,#16
  167.                 MOVC        A,@A+DPTR
  168.                 MOV                23H,A
  169.                
  170.                 MOV                DPTR,#TAB1       
  171.                 MOV                A,2AH
  172.                 ADD                A,R3
  173.                 MOVC        A,@A+DPTR
  174.                 MOV                24H,A               
  175.                
  176.                 MOV                A,22H
  177.                 JZ                Z7
  178.                 LCALL   ROTATE2
  179.                 JMP                Z8
  180. Z7:                MOV                A,23H
  181. Z8:                RET
  182. ROTATE2:CLR                C
  183.                 MOV                A,24H
  184.                 RRC                A
  185.                 MOV                24H,A
  186.                 MOV                A,23H
  187.                 RRC                A
  188.                 MOV                23H,A       
  189.                 DJNZ        R5,ROTATE2
  190.                 MOV                R5,22H       
  191.                 RET
  192. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  193.                 ;HC595数据传输
  194. HC595:        MOV                R2,#8
  195. SHFT:        MOV                C,Acc.7
  196.                 MOV                P3.4,C
  197.                 RL                A
  198.                 CLR                P3.6
  199.                 NOP
  200.                 NOP
  201.                 SETB        P3.6
  202.                 DJNZ        R2,SHFT
  203. DELAY:        MOV                2FH,#0AFH
  204. DELAY1:        DJNZ        2FH,DELAY1       
  205.                 RET

  206. WEI1:        DB        01H,02H,04H,08H,10H,20H,40H,80H,00H,00H,00H,00H,00H,00H,00H,00H
  207. WEI2:        DB        00H,00H,00H,00H,00H,00H,00H,00H,01H,02H,04H,08H,10H,20H,40H,80H
  208. TAB1:        ;低八位       
  209.                 DB        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  210.                 DB         0x00,0x80,0x60,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00
  211.                 DB        0x10,0x10,0xF0,0x1F,0x10,0xF0,0x00,0x80,0x82,0x82,0xE2,0x92,0x8A,0x86,0x80,0x00
  212.                 DB        0x00,0xFC,0x04,0x04,0xFC,0x00,0xC2,0xBA,0x82,0x82,0x82,0xFE,0x82,0x82,0x80,0x00
  213.                 DB        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  214. TAB2:        ;高八位
  215.                 DB        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  216.                 DB        0x01,0x00,0x00,0xFF,0x00,0x10,0x0C,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x18,0x00        ;你
  217.                 DB        0x40,0x22,0x15,0x08,0x16,0x61,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00        ;好
  218.                 DB        0x00,0x0F,0x04,0x04,0x0F,0x20,0x10,0x08,0x04,0x42,0x81,0x7F,0x00,0x00,0x00,0x00        ;呀
  219.                 DB        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
  220.                 END
复制代码

所有资料51hei提供下载:
16×16点阵仿真.zip (270.97 KB, 下载次数: 44)


评分

参与人数 2黑币 +55 收起 理由
1592695071 + 5
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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