|
這是計算機小程序
液晶計數(shù)器.rar
(9.76 KB, 下載次數(shù): 13)
2016-10-31 11:02 上傳
點擊文件名下載附件
asm文件 下載積分: 黑幣 -5
- ;********************************************************************************
- ; 1602液晶6位計數(shù)器:本程序調(diào)試通過 *
- ; 硬件: 插上1602液晶 *
- ;********************************************************************************
- RS EQU P2.6 //液晶屏讀操作定義
- RW EQU P2.5 //液晶屏寫操作定義
- E EQU P2.7
- org 00h
- a_bit equ 30h ;個位數(shù)存放處
- b_bit equ 31h ;十位數(shù)存放處
- c_bit equ 32h ;百位數(shù)存放處
- d_bit equ 33h ;千位數(shù)存放處
- e_bit equ 34h ;萬位數(shù)存放處
- f_bit equ 35h ;十萬位數(shù)存放處
- mov a,#30h ;30H的ASCIC碼為0
- mov a_bit,a
- mov b_bit,a
- mov c_bit,a
- mov d_bit,a
- mov e_bit,a
- mov f_bit,a
- org 0030h
- MOV P0,#00000001B ;清屏
- ACALL ENABLE
- MOV P0,#00111000B ;顯示功能
- ACALL ENABLE
- MOV P0,#00001100B ;顯示開關(guān)控制
- ACALL ENABLE
- MOV P0,#06H ;輸入模式
- ACALL ENABLE
- MOV p0,#80H ;第一行的開始位置
- cALL ENABLE
- MOV P0,#00000001B ;清屏
- ACALL ENABLE
- MOV DPTR,#TABLE1 ;顯示PASS WORD
- CALL WRITE1 ;到TABLE1取碼?
- stlop: acall display ;顯示
- inc a_bit ;加1
- mov a,a_bit
- cjne a,#3AH,stlop ;如果A的值到3AH那么繼續(xù)否則重新
- mov a_bit,#30h ;顯示數(shù)送30H(就是顯示0)
- inc b_bit
- mov a,b_bit
- cjne a,#3AH,stlop
- mov b_bit,#30h
- inc c_bit
- mov a,c_bit
- cjne a,#3AH,stlop
- mov c_bit,#30h
- inc d_bit
- mov a,d_bit
- cjne a,#3AH,stlop
- mov d_bit,#30h
- inc e_bit
- mov a,e_bit
- cjne a,#3AH,stlop
- mov e_bit,#30h
- inc f_bit
- mov a,f_bit
- cjne a,#3AH,stlop
- mov f_bit,#30h
- ajmp stlop
- display: ;顯示子程序
- MOV P0,#0C9H
- ACALL ENABLE
- MOV A,A_BIT
- ACALL WRILTE2
- MOV P0,#0C8H ;顯示的位置
- ACALL ENABLE
- MOV A,B_BIT ;顯示10位數(shù)
- ACALL WRILTE2 ;顯示
- MOV P0,#0C7H ;數(shù)據(jù)存貯器地址
- ACALL ENABLE
- MOV A,C_BIT
- ACALL WRILTE2
- MOV P0,#0C6H ;數(shù)據(jù)存貯器地址
- ACALL ENABLE
- MOV A,D_BIT
- ACALL WRILTE2
- MOV P0,#0C5H ;數(shù)據(jù)存貯器地址
- ACALL ENABLE
- MOV A,E_BIT
- ACALL WRILTE2
- MOV P0,#0C4H ;數(shù)據(jù)存貯器地址
- ACALL ENABLE
- MOV A,F_BIT
- ACALL WRILTE2
- ;1MS延時(按12MHZ算)
- ;====================================================
- D1MS: MOV R7,#2
- DJNZ R7,$
- RET
- WRILTE2:MOV p0,A ;顯示
- SETB RS
- CLR RW
- CLR E
- CALL DELAY
- CALL DELAY3
- SETB E
- RET
- WRITE1: MOV R1,#00H ;顯示table中的值
- A1: MOV A,R1 ;到table取碼
- MOVC A,@A+DPTR
- call WRILTE2 ;顯示到lcd
- INC R1
- CJNE A,#00H,A1 ;是否到00h
- RET
- ENABLE: CLR RS ;送命令
- CLR RW
- CLR E
- ACALL DELAY
- SETB E
- RET
- DELAY: MOV P0,#0FFH
- CLR RS
- SETB RW
- CLR E
- NOP
- SETB E
- JB P0.7,DELAY ;判斷忙標(biāo)志
- RET
- DELAY3: ; 延時程序
- MOV R7,#255
- D1:MOV R6,#25
- D2: DJNZ R6,D2
- DJNZ R7,D1
- RET
- table1: db" Counter ",00H
- end
復(fù)制代碼
|
評分
-
查看全部評分
|