导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[jjcool]HELP!高手帮帮我!



No.63870
作者:jjcool
邮件:j.j.cool@126.com
ID:26389
登陆:9次
文章数:6篇
最后登陆IP:125.121.182.23
最后登陆:2007/9/25 21:39:48
注册:2004/10/6 14:00:24
财富:143
发帖时间:2004/10/6 14:02:32
发贴者IP:220.184.7.105
标题:jjcool:HELP!高手帮帮我!
摘要:No.63870HELP!高手帮帮我! 单片机AT89C55,液晶屏幕青云公司的LCM046四位串行带小数,单片机INT1口接按键,现要求从0000开始记数到9999,程序编好后调试发现堆栈一直开销到内部RAM耗尽,导致只能记数到0061,不知道哪里弄错了,望高手指教!

             ;MYSELF ASM
             ;ONLY FOR STUDY
               BUZZER   BIT P1.4        ;蜂鸣器
               JPAN     BIT P3.3        ;按键
               LCD_CS   EQU P1.7        ;LCD使能端口
               LCD_WR   EQU P3.4        ;LCD写端口
               LCD_DT   EQU P3.5        ;LCD数据端口
               LCD_CODE DATA 30H        ;LCD命令代码
               LCD_ADDR DATA 31H        ;LCD地址单元
               LCD_DATA DATA 32H        ;LCD数据单元
               FIRSTBAK DATA 33H        ;第一位显示备份单元
               LCD_1    DATA 34H        ;LCD显示缓冲区第一位
               LCD_2    DATA 35H        ;LCD显示缓冲区第二位
               LCD_3    DATA 36H        ;LCD显示缓冲区第三位
               LCD_4    DATA 37H        ;LCD显示缓冲区第四位

                        ORG 0000H
                        JMP START

                        ORG 0100H

                  START:MOV SP,#60H
 AAAA: CALL DLY50MS
           MOV 30H,#00101001B      ;初始化
           CALL WRCOM
           MOV 30H,#00011000B      ;定义模块内部RC振荡器工作
          CALL WRCOM
           MOV 30H,#00000001B      ;开振荡器
           CALL WRCOM
           MOV 30H,#00000011B      ;开显示
           CALL WRCOM

                MOV R4,#00H
                MOV R5,#00H
                MOV LCD_1,R5
                LCALL LCD_N
                INC R4
                MOV LCD_2,R5
                INC R4
                MOV LCD_3,R5
                INC R4
                MOV LCD_4,R5


;*************************************
CLR BUZZER
CALL DLY1S
SETB BUZZER

;********************************主程序
ZCX:LCALL KEY
;****************************按键检测
KEY:JB JPAN,NO_KEY
    LCALL DLY15MS
    JNB JPAN,OK_KEY          ;15MS以后再次检测确认是否误动
NO_KEY:LCALL DLY6MS        ;无按键延时6MS
LJMP KEY
RET

;*****************************************等待按键释放
OK_KEY:
       JB JPAN,START_1
       LJMP OK_KEY


;*****************************************
START_1:
MOV R4,#00H
MOV A,LCD_1
CJNE A,#09H,FFFF
MOV A,#00H
MOV LCD_1,A
LCALL LCD_N                           ;个位
JMP SSSS
FFFF:ADD A,#01H
MOV LCD_1,A
LCALL LCD_N
LJMP MMMM

SSSS:CLR A
     MOV A,LCD_2
     CJNE A,#09H,TTTT
     MOV A,#00H
     MOV LCD_2,A
     LCALL LCD_N                  ;十位
     JMP YYYY
TTTT:ADD A,#01H
     MOV LCD_2,A
     LCALL LCD_N
     LJMP MMMM

YYYY:CLR A
     MOV A,LCD_3
     CJNE A,#09H,ZZZZ
     MOV A,#00H
     MOV LCD_3,A
     LCALL LCD_N                  ;百位
     JMP YYYY
ZZZZ:ADD A,#01H
     MOV LCD_3,A
     LCALL LCD_N
     LJMP MMMM

QQQQ:CLR A
     MOV A,LCD_4
     CJNE A,#09H,DDDD
     MOV A,#00H
     MOV LCD_4,A
     LCALL LCD_N                  ;千位
     JMP START_2
DDDD:ADD A,#01H
     MOV LCD_4,A
     LCALL LCD_N

     MMMM: CLR BUZZER
           LCALL DLY0_25S
           SETB BUZZER
START_2:
       AJMP ZCX

;***************************************
;液晶显示模块子程序
;R4=显示位置 R5=数字
;从左到右0--3
;用到:R2,R3,R7,30H--32H
;***************************************

;小数表
NUMB_Y:  DB 0FH,0DH,08H,05H,0DH,0BH,09H,0FH
         DB 0AH,07H,0BH,0EH,0FH,0EH,09H,05H
         DB 0FH,0FH,0BH,0FH                    ;0--9
         DB 08H,02H   ;-   0A
         DB 0FH,02H   ;F   0B
         DB 0EH,08H   ;L   0C
         DB 0EH,07H   ;H   0D
         DB 0FH,03H   ;P   0E
         DB 0FH,00H   ;R   0F
         DB 08H,00H   ;    10
         DB 0FH,05H   ;N   11
         DB 0FH,0AH   ;E   12
         DB 0FH,0FH   ;8:  13
         DB 0EH,0DH   ;U   14
         DB 0FH,08H   ;C   15
         DB 0FH,02H   ;F:  16
         DB 0FH,07H   ;A   17

;无小数表
 NUMB_N: DB 07H,0DH,00H,05H,05H,0BH,01H,0FH
         DB 02H,07H,03H,0EH,07H,0EH,01H,05H
         DB 07H,0FH,03H,0FH                    ;0--9
         DB 00H,02H   ;-   0A
         DB 07H,02H   ;F   0B
         DB 06H,08H   ;L   0C
         DB 06H,07H   ;H   0D
         DB 07H,03H   ;P   0E
         DB 07H,00H   ;R   0F
         DB 00H,00H   ;    10
         DB 07H,05H   ;N   11
         DB 07H,0AH   ;E   12
         DB 0FH,0FH   ;8:  13
         DB 06H,0DH   ;U   14
         DB 07H,08H   ;C   15
         DB 0FH,02H   ;F:  16
         DB 07H,07H   ;A   17


         LCD_Y: MOV DPTR,#NUMB_Y  ;小数
                AJMP LCD_00

         LCD_N: MOV DPTR,#NUMB_N  ;无小数


         LCD_00: CLR A
                 MOV A,R4
                 CJNE A,#04H,LCD_02
                 MOV 31H,#00H
                 LCALL WRDD

                 MOV A,FIRSTBAK
                 ;ANL A,#0FH
                 RL A
                 MOVC A,@A+DPTR
                 ORL A,#08H
                 MOV 32H,A
                 LCALL WRDATA
                ;****************
                 MOV 31H,#04H
                 LCALL WRDD

                 MOV A,FIRSTBAK
                 RL A
                 INC DPTR
                 MOVC A,@A+DPTR
                 MOV 32H,A
                 LCALL WRDATA
                 JMP LCD_END
;****************************************************
         LCD_01: CJNE R4,#00H,LCD_02
                 MOV FIRSTBAK,R5

         LCD_02: CLR A
                 MOV A,R4
                 CLR C
                 ANL A,#0FH
                 RL A
                 RL A
      ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:63毫秒 最大:78531毫秒 查询6次