新人求救!!!

[复制链接]
2277|4
 楼主| zjucsd 发表于 2009-11-14 08:43 | 显示全部楼层 |阅读模式
你好:我是一名电子新人。在前段期间,本人购买了一款51的开发板,芯片为AT89S52的。在做00-99计数器的时候,本人遇到了一些问题。
      在开发板上的电路原理图上面,数码管为八位动态扫描数码管,全由P0口输入。而四个5脚和四个10脚分别由P2口通过pnp开关实现控制。
      请问一下牛人大哥,这计数器的汇编程序应该如何编写?
      致谢!
wangkj 发表于 2009-11-14 09:46 | 显示全部楼层
一条条的写。
wangyujiao 发表于 2009-11-14 11:09 | 显示全部楼层
汇编比较麻烦~ 最好用C语言~ 显示部分最好用查表的方式
dengm 发表于 2009-11-14 12:25 | 显示全部楼层
; 先定义 RAM
           DISPLAY_BUF     EQU  40H  ; 8 BYTES  TO PORT P0
             ;DP0 EQU DISPLAY_BUF+0
           
           DISPLAY_ID    DATA  DISPLAY_BUF + 8


SUB_DISPLAY2P0P2:
         PUSH PSW
         PUSH ACC
         MOV P2, #0FFH  ;  关闭显示
      MOV A,  DISPLAY_ID
         ANL A, #7
         ADD A, #DISPLAY_BUF            
         XCH A, R0
         XCH A, @R0
         MOV P0, A  ;  OUTPUT 2 P0
         XCH A, @R0
         XCH A, R0
         MOV A,  DISPLAY_ID
         INC DISPLAY_ID
         ANL A, #7
         ADD A, #(P2_DATA-$-3)
         MOVC A, @A+PC
         MOV P2, A          ; DISPLAY
         POP ACC
         POP PSW
         RET
P2_DATA:
          DB 11111110B   ; 0  根据硬件接线
          DB 11111101B   ; 1
          DB 11111011B   ; 2
          DB 11110111B   ; 3
          DB 11101111B   ; 4
          DB 11011111B   ; 5
          DB 10111111B   ; 6
          DB 01111111B   ; 7
 楼主| zjucsd 发表于 2009-11-16 10:29 | 显示全部楼层
谢谢dengm大哥
您需要登录后才可以回帖 登录 | 注册

本版积分规则

100

主题

351

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部