⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd89527.lst

📁 餐饮呼叫系统的汇编源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
                                                                                        页     1
                                                                                        07-20-02
                                                                                        19:29:54
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

            ;LCD89527:89C52:键盘控制、LCD控制显示、接收从764传过来的信号,并且按照顺序显示
            ;本程序和89521比较的特点:有2秒的稳定显示时间,不会觉得太快
            ;         在8952的基础上,通过串口把数据发送给另外一个764,信息包括取出的查表出的CALL机地址的后4位,以及信息数据
            ; 信息的格式:4 BYTE的CALL机地址,一位信息,总共5 BYTE
            ;功能:1、显示最新的几个信息每一个保留18秒,然后消失,后面的顺序向前移动,2秒刷新一次.
            ;      2、按键可以控制单呼和组呼
            ;      3、
            ; p0控制LCD 的PIN
            ;P1.0--P1.7:按键盘输入
            ;现在的问题是:最多显示6个,最大接收暂存区是9个,如果更多的数据进来,就会出问题.
            ;本程序在LDTLCD1的基础上改动接收按键部分
            ;遗留问题:设置初始化中,有时按键按不进去;清 除按键的处理
            ;本程序和3的区别是加上了清除按键,按键的处理改变。
            
            DI  BIT P2.0
            RW  BIT P2.1
            RST BIT P2.2
            LCD BIT P2.3            ;控制背光
            
            
            ;SEND_PTT    BIT P2.3
            E   BIT P2.4
            ;POC_TMD BIT P2.5
            CS1 BIT P2.6
            CS2 BIT P2.7
            
            XRESET	BIT	P0.1	;输出,=0时,使93C10复位
            TXDATA	BIT	P0.2	;输入.
            TXCLK	BIT	P0.3	;输入.地址数据和选项的时钟
            ON	BIT	P0.4	;输出.接收模式使能
            
            
            
            LED	BIT	P3.2	;输出.接收成功之后闪烁
            
            WDI     BIT     P3.2    ;喂狗的信号
            PEN	BIT	P3.3	; 控制PLL
            PDAT    BIT     P3.4
            PCLK    BIT     P3.5
            
            SDA     BIT     P3.6            ;;用来写24WC02
            SCL     BIT     P3.7
            
            ;****************************************************************************
            
            F_COMMAND   BIT 01H       ;给LCD发送命令或数据的标志,当发出命令字时,=1
            F_MOVED     BIT 02H       ;是否已经循环移位的标志
            F_REFRESH   BIT 03H       ;2秒钟重新刷新LCD,或者是在GET_BUFF满了以后 ,来新的数据,就立即移动和刷新


G:\备份\LDTP\旧的备份\LCD89527.ASM                                                  
 
                                                                                        页     2
                                                                                        07-20-02
                                                                                        19:29:54
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

            F_KEY_FOUND BIT 04H     ;
            F_KEY_VALUE BIT 05H     ;收到了按键的标志
            
            F_HIGH      BIT 07H     ; 是否是已经处理过高位的标志
            F_MOV       BIT 08H     ;是否启动移位的标志
            ACK         BIT	09H     ;I2C接收数据非应答标志
            
            F_GENGGAI_STEP0 BIT 0AH ;设置中,更改的第一个步骤完成的标志
            F_BLANK     BIT 0BH     ;是否是输入一次“空格”键的标志
            F_FULL      BIT 0CH     ;输入的台号是否已经满了10个
            F_DIS_CALL  BIT 0DH     ;是否是显示了CALL的画面
            F_DIS_CALL_2 BIT 0EH     ;
            F_SEND_END  BIT 0FH      ;
            
            F_GET       BIT 016H     ;接收到从764来的数据的标志
            
            ;*******************************************************************************
            
            COMMAND         EQU 030H        ;控制LCD的命令
            X_ADD           EQU 031H
            Y_ADD           EQU 032H
            
            TIMER_2S_0      EQU 033H     ;2秒刷新一次屏幕的计数器
            SHUZI           EQU 034H    ;要显示的数字存放点
            PAIDUI          EQU 035H     ;收到的信号的排队的指针
            KEY_LAST_TIME   EQU 036H
            KEY_NO          EQU 037H     ;按键值
            KEY_GESHU       EQU 038H    ;按键的个数
            OLD_KEY_NO      EQU 039H
            MSG_TEMP        EQU 03AH    ;
            
            
            
            DPH_BAK         EQU 03CH
            DPL_BAK         EQU 03DH    ;计算出来的存放显示的台号的高位的DPTR
            
            GET_BUFF        EQU 040H       ;接收的数据存放区,需要一个指针指向,最多放6个
            TIMER_BUFF      EQU 049H       ;每个信息已经显示的时间
            
            SEND_BYTE      EQU 51H
            SEND_BIT_NUM   EQU 52H
            SEND_BYTE_NUM  EQU 53H
            SEND_STRU      EQU 54H
            POC_NUM        EQU 55H      ;  POCSAG DATA 1ST BYTE
                                        ;  HIGH 4 BIT POCSAG NUM (32BIT=1)
                                        ;  LOW 4 BIT ZHENG_HAO , 8 = ALL
            
            


G:\备份\LDTP\旧的备份\LCD89527.ASM                                                  
 
                                                                                        页     3
                                                                                        07-20-02
                                                                                        19:29:54
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

            BitCnt 		DATA 56H 	; I2C 数据位计数器
            ByteCnt 	DATA 57H 	; I2C 数据字节计数器
            SlvAdr 		DATA 58H 	;被控器地址
            SubAdr 		DATA 59H 	;被控器单元地址
            
            
            OUT_BUFF       EQU 060H        ;输出的数据的存储区,前面4个保持0,使地址位1000000
            
            
            SAVE_BUFF       EQU 090H
            KEY_AERA        EQU 0A0H       ;接受的按键的存放区,
            
            
            
            XmtDat 		DATA 	0B0H 	;发送数据缓冲区,
            RcvDat 		DATA 	0C0H 	;接收数据缓冲区
            
            ;**********************以下是进入设置功能是使用的RAM,分时使用*****************************
            CALL_BAK        DATA    64H     ;初始化中,公共的CALL机号码暂存区
            TAI_GESHU       DATA    65H     ;初始化中,输入的台号的个数
            SHUZI_GESHU     DATA    66H     ;初始化中,输入的台号的数字的个数,用来限制输入的个数和处理
            BLANK_GESHU     DATA    67H     ;空格的个数
            
            OLD_Y_ADD       DATA    7BH     ;眼前这个数据显示的Y的地址
            OLD_X_ADD       DATA    7CH     ;眼前这个数据显示的X的地址,用来处理数据输入时的换行
            
            ;*************************************************************************
            TEN_SEC         DATA  0FAH       ;立即数,现在改为18秒定时
            EEPROM 		EQU    0A0H		;24wc02的地址  立即数
            
            ;***************************************************************************
            ORG  0000H
0000 02002D LJMP SYS_START
            
            ORG 000BH           ; TIME0 OUT
000B 00     NOP
000C 00     NOP
000D 0206DA LJMP TIMER0_INT         ;40MS一次,用来记时,
            
            
            ORG 001BH          ;  TIME1 OUT
001B 32     RETI
            
            
            ORG 0023H         		;  COM I/O
0023 00     NOP
0024 00     NOP
0025 020445 LJMP S_INT


G:\备份\LDTP\旧的备份\LCD89527.ASM                                                  
 
                                                                                        页     4
                                                                                        07-20-02
                                                                                        19:29:54
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

            
            ORG 002BH
002B 00     NOP
002C 32     RETI
            
            
            
            ;****************************************************
            
            SYS_START:
002D C2AF               CLR EA
            
002F 00     	        NOP
0030 7581F0                 MOV SP,#0F0H
0033 C2D3                   CLR RS0
0035 C2D4                   CLR RS1
0037 758850                 MOV TCON,#050H		;外部中断1下降沿触发
            
003A 758700                 MOV PCON,#00H          ;SMOD=1加倍,SMOD=0,不加倍
003D 759850                 MOV SCON,#01010000B 	;10位,方式1,允许串口接收,一个起始位,一个停止位,8个数据
0040 758921              	MOV TMOD,#021H          ;定时器T1为方式2,T0为16位计时器
0043 758DFA              	MOV TH1,#0FAH           ;11.0592M,4.8kBPS
0046 758BFA              	MOV TL1,#0FAH
            
            
0049 D2A9                   SETB ET0
                            ;SETB ES
            
004B D2AF   	        SETB EA
            
            
            ;***********************************************************************
            CLEAR_RAM:
004D 7800             MOV R0,#00H
            CLEAR_RAM0:
004F 7600             MOV @R0,#00H
0051 08               INC R0
0052 E8               MOV A,R0
0053 00     	  NOP
0054 00     	  NOP
0055 B4F0F7           CJNE A,#0F0H,CLEAR_RAM0
0058 00               NOP
0059 00               NOP
            
            
005A 75331E         MOV TIMER_2S_0,#30              ;
            
            


G:\备份\LDTP\旧的备份\LCD89527.ASM                                                  
 
                                                                                        页     5
                                                                                        07-20-02
                                                                                        19:29:54
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

005D D2D4           SETB RS1                ;预先设置按键区
005F C2D3           CLR RS0
0061 78A0           MOV R0,#KEY_AERA
0063 C2D4           CLR RS1
0065 C2D3           CLR RS0
            
            ;********************初始化********************************************
            ;开机检测是否进入设置状态
            ;**********************************************************************
0067 C297   	CLR P1.7
0069 E590   	MOV A,P1
006B 540F   	ANL A,#0FH
006D 00             NOP
006E B40715         CJNE A,#07H,NORMAL_PRO
0071 1209CC         LCALL DELAY_1MS
0074 1209CC         LCALL DELAY_1MS
0077 C297   	CLR P1.7
0079 E590   	MOV A,P1
007B 540F   	ANL A,#0FH
007D 00             NOP
007E B40705         CJNE A,#07H,NORMAL_PRO
0081 00             NOP
0082 00             NOP
0083 0209F5         LJMP SETUP_PRO                  ;检测到长时间按下的F,就跳到设置部分
            
            NORMAL_PRO:
            ;**********************************************************************************
            
            ;***********************************************************************
            ;            LCD 初始化
            ;**********************************************************************
            
                    ;CLR RST
                    ;LCALL DELAY_1MS
                    ;SETB RST
            
0086 D201           SETB F_COMMAND
0088 75303E         MOV COMMAND,#03EH
008B 12086B         LCALL LCD_COMMAND
            
008E D201           SETB F_COMMAND
0090 7530C0         MOV COMMAND,#0C0H
0093 12086B         LCALL LCD_COMMAND
            
0096 D201           SETB F_COMMAND
0098 75303F         MOV COMMAND,#03FH
009B 12086B         LCALL LCD_COMMAND
            


G:\备份\LDTP\旧的备份\LCD89527.ASM                                                  
 
                                                                                        页     6
                                                                                        07-20-02
                                                                                        19:29:54
伟福汇编器 V5.00                               Copyright (c) 1989, 99 by CHY

地址  机器码 源程序

009E 120896         LCALL CLRLCD
00A1 1207C2         LCALL DISPLAY_ALL               ;显示开机欢迎画面
            
            
            
00A4 D2AC            SETB ES
            ;***********************************************************************
            MAIN:
00A6 300807         JNB F_MOV,MAIN2
00A9 C208           CLR F_MOV
00AB 00             NOP
00AC 00             NOP
00AD 1206AA         LCALL R_MOV
                    ;SETB F_REFRESH          ;启动刷新
            
            ;*************刷新屏幕的程序***************************
            MAIN2:
00B0 00             NOP
00B1 00             NOP                     ; 移动在显示之前
00B2 300311         JNB F_REFRESH,MAIN3
00B5 00             NOP
00B6 00             NOP
00B7 30020C         JNB F_MOVED,MAIN3       ;如果没有移动,不用刷新
00BA 00             NOP
00BB 00             NOP
00BC 12047A         LCALL DIS_REFRESH               ;刷新一次需要时间最多100MS
            
00BF C203           CLR F_REFRESH
00C1 C202           CLR F_MOVED
00C3 0200A6         LJMP MAIN
            ;*****************************收到从串口过来的数据的处理**********************
            MAIN3:
00C6 00             NOP
00C7 00             NOP
00C8 301628         JNB F_GET,MAIN4
00CB C216           CLR F_GET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -