打印

新人求救!!!

[复制链接]
1607|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

使用特权

评论回复
5
zjucsd|  楼主 | 2009-11-16 10:29 | 只看该作者
谢谢dengm大哥

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

100

主题

351

帖子

3

粉丝