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

📄 菜单程序.asm

📁 学术交流
💻 ASM
📖 第 1 页 / 共 2 页
字号:
		  
/*-------------------------------------------
项目名:   家电中央控制系统工程
程序名:    显示MCU总体程序
编写人:    杜洋 
初写时间:  2005年9月5日晚20时
程序功能:	实现液晶、语音部分的人机对话和总线的通信
实现方法:  用中断实现总线接收
CPU说明:   89S52  12MHZ晶振
接口说明:  (详见 初定义)
信息说明:  
修改日志:  
  NO.1-

 
-------------------------------------------*/

;----------------------------------------初定义

LCDDAT    EQU     P2

RS        EQU     P3.5

RW        EQU     P3.6

E         EQU     P3.7

REDLED    EQU     P3.4

BACKLED   EQU     P3.1

PLAY      EQU     P1.7

STOPIN    EQU     P3.0

LIN       EQU     P3.2

SPDAT     EQU     P1

XX2       EQU     P0.0

LT_RAM    EQU     30H

LR_RAM    EQU     40H

SP_RAM    EQU     20H

DIS1_RAM  EQU     50H

DIS2_RAM  EQU     70H

DIS3_RAM  EQU     60H

DIS4_RAM  EQU     80H

RR1       EQU     26H

RR3       EQU     21H

RR4       EQU     22H

T0_RAM    EQU     23H

QR3_RAM   EQU     24H

QR2_RAM   EQU     25H

LCDDISPLAY EQU    26H					  ;菜单显示移位寄存器

MENU_RAM  EQU     27H					 ;菜单位置寄存器

ONOFFLCD  EQU     28H


;-------------------------------------程序入口

    ORG     0000H

    JMP     LCD_START

    ORG     0003H

    JMP     LIN_INT0

	 ORG     000BH

	 JMP     LED_T0

    ORG     0030H


;--------------------------------------主程序开始

LCD_START:
    

    SETB   PLAY
	 
	 MOV    T0_RAM,#250

	 MOV    TMOD,#01H

	 SETB   ET0

	 MOV    TL0,#0B0H   	         ;50MS定时初值(T0计时用)
    
	 MOV    TH0,#3CH   	         ;50MS定时初值
    
	 CLR    IT0

    SETB   EX0
	 
	 SETB   TR0
    
	 SETB   EA

	 MOV    DPTR,#TAB_0
					  
	 CALL   START_LCD 
	 
	 

;-----自检程序

	 CALL   DL1S
						
	 MOV    MENU_RAM,#00H

	 MOV    DPTR,#TAB_H
					  
	 CALL   START_LCD 

	 CLR    LCDDISPLAY

;--------------------------------------主循环体程序

LCD_LOOP:

	 JB  ONOFFLCD,DISPLAY_PRO
    

LCD_LOOP_1:

 	   
    JMP    LCD_LOOP
	 

;---------------------------- 菜单显示处理

DISPLAY_PRO:

    MOV   A,MENU_RAM

 	 MOV   DPTR,#MENUTAB_HOST

	 RLC   A

	 JMP   @A+DPTR


MENUNEXT:
	 
	 CALL   START_LCD
	 
	 CLR    LCDDISPLAY

	 CLR    ONOFFLCD

    JMP    LCD_LOOP 


;-------------------------


MENUTAB_HOST:

	 JMP    HOST_H		   ;主菜单
	 JMP    HOST_1		   ;	   1,控制
	 JMP    HOST_2		    ;	   2,设置
	 JMP    HOST_3			  ;	3,智能
	 JMP    HOST_4			   ;  4,帮助
	 
MENUTAB_1:

	 JMP    HOST_11		  ;
	 JMP    HOST_12		   ;	   
	 JMP    HOST_13		    ;	   


MENUTAB_2:
	 JMP    HOST_21		  ;
	 JMP    HOST_22		   ;	   
	 JMP    HOST_23		    ;	   

MENUTAB_3:

	 JMP    HOST_31		  ;
	 JMP    HOST_32		   ;	   
	 JMP    HOST_33		    ;	   

MENUTAB_4:

	 JMP    HOST_41		  ;
	 JMP    HOST_42		   ;	   
	 JMP    HOST_43		    ;	   


    
;-------------------------------菜单项主流程

HOST_H:				 ;主菜单的适用键

	 MOV   A,LCDDISPLAY

	 CJNE  A,#01H,HH_H1

	 MOV    DPTR,#TAB_1

	 MOV    MENU_RAM,#01H
	 
	 JMP    MENUNEXT

HH_H1:

	 CJNE  A,#02H,HH_H2

    MOV    DPTR,#TAB_2

	 MOV    MENU_RAM,#02H
	 
	 JMP    MENUNEXT

HH_H2:

	 CJNE  A,#03H,HH_H3

    MOV    DPTR,#TAB_3

	 MOV    MENU_RAM,#03H
	 
	 JMP    MENUNEXT

HH_H3:

	 CJNE  A,#04H,HH_H4

    MOV    DPTR,#TAB_4

	 MOV    MENU_RAM,#04H
	 
	 JMP    MENUNEXT

HH_H4:

	 CLR    LCDDISPLAY

	 CLR    ONOFFLCD
  
	 JMP    LCD_LOOP


	 ;----------------------------------------------第一层菜单

HOST_1:								   ;《《《控制》》》

    MOV   A,LCDDISPLAY			   ;回到主菜单

	 CJNE  A,#0DH,HH_10

	 MOV    DPTR,#TAB_H

	 MOV    MENU_RAM,#00H
	 
	 JMP    MENUNEXT

HH_10:

	 MOV   A,LCDDISPLAY

	 CJNE  A,#01H,HH_11

	 MOV    DPTR,#TAB_11

	 MOV    MENU_RAM,#05H
	 
	 JMP    MENUNEXT

HH_11:

	 CJNE  A,#02H,HH_12

    MOV    DPTR,#TAB_12

	 MOV    MENU_RAM,#06H
	 
	 JMP    MENUNEXT

HH_12:

	 CJNE  A,#03H,HH_13

    MOV    DPTR,#TAB_13

	 MOV    MENU_RAM,#07H
	 
	 JMP    MENUNEXT
HH_13:

	 CLR    LCDDISPLAY

	 CLR    ONOFFLCD
  
	 JMP    LCD_LOOP


HOST_2:								   ;《《《设置》》》

	 MOV   A,LCDDISPLAY			   ;回到主菜单

	 CJNE  A,#0DH,HH_20

	 MOV    DPTR,#TAB_H

	 MOV    MENU_RAM,#00H
	  
	 JMP    MENUNEXT
HH_20:

	 MOV   A,LCDDISPLAY

	 CJNE  A,#01H,HH_21

	 MOV    DPTR,#TAB_21

	 MOV    MENU_RAM,#09H
	  
	 JMP    MENUNEXT
	  
HH_21:

	 CJNE  A,#02H,HH_22

    MOV    DPTR,#TAB_22

	 MOV    MENU_RAM,#0AH
	   
	 JMP    MENUNEXT
	  
HH_22:

	 CJNE  A,#03H,HH_23

    MOV    DPTR,#TAB_23

	 MOV    MENU_RAM,#0BH
	   
	 JMP    MENUNEXT
	  
HH_23:

	 CLR    LCDDISPLAY

	 CLR    ONOFFLCD
  
	 JMP    LCD_LOOP


HOST_3:									 ;《《《智能》》》

    MOV   A,LCDDISPLAY				 ;回到主菜单

	 CJNE  A,#0DH,HH_30

	 MOV    DPTR,#TAB_H

	 MOV    MENU_RAM,#00H
	   
	 JMP    MENUNEXT
	  
HH_30:
    
	 MOV   A,LCDDISPLAY

	 CJNE  A,#01H,HH_31

	 MOV    DPTR,#TAB_31

	 MOV    MENU_RAM,#0CH
	   
	 JMP    MENUNEXT
	  
HH_31:

	 CJNE  A,#02H,HH_32

    MOV    DPTR,#TAB_32

	 MOV    MENU_RAM,#0DH
	   
	 JMP    MENUNEXT
	  
HH_32:

	 CJNE  A,#03H,HH_33

    MOV    DPTR,#TAB_33

	 MOV    MENU_RAM,#0EH
	   
	 JMP    MENUNEXT
	  
HH_33:

	 CLR    LCDDISPLAY

	 CLR    ONOFFLCD
  
	 JMP    LCD_LOOP


HOST_4:								  ;《《《帮助》》》

    MOV   A,LCDDISPLAY			  ;回到主菜单

	 CJNE  A,#0DH,HH_40

	 MOV    DPTR,#TAB_H

	 MOV    MENU_RAM,#00H
	   
	 JMP    MENUNEXT
	  
HH_40:
    
	 MOV   A,LCDDISPLAY

	 CJNE  A,#01H,HH_41

	 MOV    DPTR,#TAB_41

	 MOV    MENU_RAM,#0FH
	   
	 JMP    MENUNEXT
	  
HH_41:

	 CJNE  A,#02H,HH_42

    MOV    DPTR,#TAB_42

	 MOV    MENU_RAM,#10H
	   
	 JMP    MENUNEXT
	  
HH_42:

	 CJNE  A,#03H,HH_43

    MOV    DPTR,#TAB_43

	 MOV    MENU_RAM,#11H
	   
	 JMP    MENUNEXT
	  
HH_43:

	 CLR    LCDDISPLAY

	 CLR    ONOFFLCD
  
	 JMP    LCD_LOOP

;----------------------------------------第二层菜单

HOST_11:

    MOV    DPTR,#TAB_11

	 MOV    MENU_RAM,#04H

	 JMP    MENUNEXT


HOST_12:

    MOV    DPTR,#TAB_12

	 MOV    MENU_RAM,#04H

	 JMP    MENUNEXT


HOST_13:

    MOV    DPTR,#TAB_13

	 MOV    MENU_RAM,#04H

	 JMP    MENUNEXT


HOST_21:

    MOV    DPTR,#TAB_21

	 MOV    MENU_RAM,#07H

	 JMP    MENUNEXT


HOST_22:

    MOV    DPTR,#TAB_22

	 MOV    MENU_RAM,#07H

	 JMP    MENUNEXT


HOST_23:

    MOV    DPTR,#TAB_23

	 MOV    MENU_RAM,#07H

	 JMP    MENUNEXT


HOST_31:

    MOV    DPTR,#TAB_31

	 MOV    MENU_RAM,#0AH

	 JMP    MENUNEXT


HOST_32:

    MOV    DPTR,#TAB_32

	 MOV    MENU_RAM,#0AH

	 JMP    MENUNEXT


HOST_33:

    MOV    DPTR,#TAB_33

	 MOV    MENU_RAM,#0AH

	 JMP    MENUNEXT


HOST_41:

    MOV    DPTR,#TAB_41

	 MOV    MENU_RAM,#0DH

	 JMP    MENUNEXT


HOST_42:

    MOV    DPTR,#TAB_42

	 MOV    MENU_RAM,#0DH

	 JMP    MENUNEXT


HOST_43:

    MOV    DPTR,#TAB_43

	 MOV    MENU_RAM,#0DH

	 JMP    MENUNEXT

 ;------------------------------

;----------------------------显示内容

TAB_0:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "    欢迎使用    ----------------家电中央控制系统自检中......    "
TAB_H:															
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====主菜单项====3-智能   4-帮助1-控制    2-设置               "
TAB_1:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====控制选项====2-控制全部从机 1-从机选择控制 3-更新从机联接  "
TAB_2:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====设置选项====2-遥控设置   1-系统设置   3-时间设置    "
TAB_3:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====智能选项====2-温度自动控制 1-编程自动控制 3-时间自动控制  "
TAB_4:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====帮助选项====2-使用说明   1-系统自动检测 3-关于...... 	  "
TAB_11:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAA         AA2AAAAAAAAAAAAA         AA4AAAAAAAAAAAAAAA"----;
DB "==从机选择控制==2-            ",0FH,20H,"1-            ",0FH,20H,"3-            ",0FH,1FH
TAB_12:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "==控制全部从机==2-关闭全部从机 1-开启全部从机 共有从机  个 "
TAB_13:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "==更新从机联接== [执行]-开始更新更新从机状态报告 [取消]-退出更新"
TAB_21:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====系统设置====                                                "
TAB_22:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====遥控设置====1-设置遥控键值  16路遥控开关设置2-设置遥控对象 "
TAB_23:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====时间设置====2005年09月06日  数字键入后按执行  22时33分      "
TAB_31:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "==编程自动控制== [执行]-打开串口通过电脑串口编程 [取消]-关闭串口                                               "
TAB_32:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "==温度自动控制==                                                "
TAB_33:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "==时间自动控制==                                                "
TAB_41:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "==系统自动检测==                                                "
TAB_42:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====使用说明====是由主机和多个从家电中央控制系统机组成的系统。",20H,1FH
TAB_43:
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====关于....====统完全由杜洋自行本家电中央控制系开发,产权所有。"
TAB_EORR:  ;错误信息
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====系统错误====自检的错误!!!系统内部产生无法请断电后重新启动"
TAB_NEW:	  ;新从机加入
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "==有新从机接入==统....          有新的从机接入系从机ID号:   "
TAB_OUT:	  ;有从机断开
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====从机断开====已有1个从机断开 系统自检时发现--从机ID号:   "
TAB_ON:	  ;开启了某从机
;--"1AAAAAAAAAAAAAAA3AAAAAAAAAAAAAAA2AAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA"----;
DB "====从机开启====                从机已经开启....从机ID号:   "

⌨️ 快捷键说明

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