Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
9.asm
Package: aaaa.rar [view]
Upload User: hongrida
Upload Date: 2022-08-07
Package Size: 154k
Code Size: 6k
Category:
SCM
Development Platform:
Asm
- RELAY EQU P1.3
- RS EQU P2.0
- RW EQU P2.1
- EN EQU P2.2
- X EQU 26H ;LCD 地址变量
- ORG 0000H
- JMP MAIN
- ORG 000BH
- LJMP BREAK
- ORG 0030H
- MAIN: MOV SP,#60H
- MOV TMOD,#01H
- CLR EN
- CALL SET_LCD
- CALL MENU1
- LOOP0:
- MOV P1,#0F0H
- MOV A,P1
- CJNE A,#0F0H,LOOP1 ;有键按下转LOOP1
- JMP LOOP0
- LOOP1:
- CALL KEY_IN
- CALL START
- MOV P1,#0F0H
- MOV A,P1
- CJNE A,#0F0H,CONV
- CLR EA
- SETB P3.7
- JMP LOOP0
- CONV:
- MOV X,#11 ;设置显示起始位置
- MOV A,R3
- ADD A,#01H
- PUSH ACC
- CLR C
- SUBB A,#08H ;减8
- POP ACC
- JC ASCII1 ;该数小于8,转ASCII1
- SUBB A,#07H
- PUSH ACC
- CLR C
- SUBB A,#08H
- POP ACC
- JC ASCII1
- SUBB A,#07H
- ASCII1: ADD A,#30H ;小于10的数加上30H
- INC X
- MOV B,X
- CALL LCDP2
- JMP LOOP0
- START: SETB EA
- SETB TR0
- SETB ET0
- CLR EA
- MOV A,R3
- RL A
- MOV DPTR,#TABLE
- MOVC A,@A+DPTR
- MOV TH0,A
- MOV 21H,A
- MOV A,R3
- RL A
- INC A
- MOVC A,@A+DPTR
- MOV TL0,A
- MOV 20H,A
- SETB EA
- RET
- KEY_IN: MOV P1,#0F0H
- MOV A,P1
- ANL A,#0F0H
- MOV B,A
- MOV P1,#0FH
- MOV A,P1
- ANL A,#0FH
- ORL A,B
- CJNE A,#0FFH,KEY_IN1
- RET
- KEY_IN1: MOV B,A
- MOV DPTR,#KEYTABLE
- MOV R3,#0FFH
- KEY_IN2: INC R3
- MOV A,R3
- MOVC A,@A+DPTR
- CJNE A,B,KEY_IN3
- MOV A,R3
- MOV R5,#08H
- CALL DELAY
- RET
- KEY_IN3: CJNE A,#0FFH,KEY_IN2
- RET
- SET_LCD:
- CLR EN
- CALL INIT_LCD ;初始化 LCD
- CALL DELAY1
- MOV DPTR,#INFO1 ;指针指到显示信息1
- MOV A,#1 ;显示在第一行
- CALL LCD_SHOW
- MOV DPTR,#INFO2 ;指针指到显示信息2
- MOV A,#2 ;显示在第二行
- CALL LCD_SHOW
- RET
- INIT_LCD: ;8位I/O控制 LCD 接口初始化
- MOV A,#38H ;双列显示,字形5*7点阵
- CALL WCOM
- CALL DELAY1
- MOV A,#38H ;双列显示,字形5*7点阵
- CALL WCOM
- CALL DELAY1
- MOV A,#38H ;双列显示,字形5*7点阵
- CALL WCOM
- CALL DELAY1
- MOV A,#0CH ;开显示,关光标,
- CALL WCOM
- CALL DELAY1
- MOV A,#01H ;清除 LCD 显示屏
- CALL WCOM
- CALL DELAY1
- RET
- LCD_SHOW: ;在LCD的第一行或第二行显示信息字符
- CJNE A,#1,LINE2 ;判断是否为第一行
- LINE1: MOV A,#80H ;设置 LCD 的第一行地址
- CALL WCOM ;写入命令
- CALL CLR_LINE ;清除该行字符数据
- MOV A,#80H ;设置 LCD 的第一行地址
- CALL WCOM ;写入命令
- JMP FILL
- LINE2: MOV A,#0C0H ;设置 LCD 的第二行地址
- CALL WCOM ;写入命令
- CALL CLR_LINE ;清除该行字符数据
- MOV A,#0C0H ;设置 LCD 的第二行地址
- CALL WCOM
- FILL: CLR A ;填入字符
- MOVC A,@A+DPTR ;由信息区取出字符
- CJNE A,#0,LC1 ;判断是否为结束码
- RET
- LC1: CALL WDATA ;写入数据
- INC DPTR ;指针加1
- JMP FILL ;继续填入字符
- RET
- CLR_LINE: ;清除该行 LCD 的字符
- MOV R0,#24
- CL1: MOV A,#' '
- CALL WDATA
- DJNZ R0,CL1
- RET
- MENU1: ;LCD 显示工作菜单信息
- MOV DPTR,#MENU2
- MOV A,#1 ;在第一行显示信息
- CALL LCD_SHOW
- RET
- MENU2: DB " WELCOME ",0
- INFO1: DB " ",0 ;LCD 第一行显示信息
- INFO2: DB "Music site: ",0 ;LCD 第二行显示信息
- WCOM: ;写指令使能
- MOV P0,A
- CLR RS ;RS=L,RW=L,D0-D7=指令码,E=高脉冲
- CLR RW
- SETB EN
- CALL DELAY0
- CLR EN
- RET
- WDATA: ;写数据使能
- MOV P0,A
- SETB RS ;RS=H,RW=L,D0-D7=数据,E=高脉冲
- CLR RW
- SETB EN
- CALL DELAY0
- CLR EN
- RET
- DELAY0: MOV R7,#250 ;延时500微秒
- DJNZ R7,$
- RET
- LCDP2: ;在LCD的第二行显示字符
- PUSH ACC ;
- MOV A,B ;设置显示地址
- ADD A,#0C0H ;设置LCD的第二行地址
- CALL WCOM ;写入命令
- POP ACC ;由堆栈取出A
- CALL WDATA ;写入数据
- RET
- DELAY1: ;延时5MS
- MOV R6,#25
- D2: MOV R7,#100
- DJNZ R7,$
- DJNZ R6,D2
- RET
- DELAY: ;延时R5×10MS
- MOV R6,#50
- D1: MOV R7,#100
- DJNZ R7,$
- DJNZ R6,D1
- DJNZ R5,DELAY
- RET
- BREAK: PUSH ACC
- PUSH PSW
- MOV TL0,20H
- MOV TH0,21H
- CPL P3.7
- POP PSW
- POP ACC
- RETI
- KEYTABLE:
- DB 0EEH,0EDH,0EBH,0E7H,0DEH ;0,1,2,3,4, 顺序码
- DB 0DDH,0DBH,0D7H,0BEH,0BDH ;5,6,7,8,9,
- DB 0BBH,0B7H,07EH,07DH,07BH ;A,B,C,D,E,
- DB 077H,0FFH ;F 0FF为结束码
- TABLE: DW 63628,63835,64021,64103,64260,64400,64524
- DW 64580,64684,64777,64820,64898,64968,65030
- DW 65058,65110
- END