?? atmega8and74hc164controllcd1602program.asm
字號:
.include "m8def.inc"
.org $00
rjmp main
.org $20
main: ldi r16,high(ramend)
out sph,r16
ldi r16,low(ramend)
out spl,r16
sbi ddrc,1
cbi portc,1 ;pc1為液晶的數據/指令線(RS)
sbi ddrb,3
sbi portb,3 ;pb3為74hc164的數據線(A,B)
sbi ddrb,2
sbi portb,2 ;pb2為74hc164的時鐘線(CLK)
sbi ddrc,2
cbi portc,2 ;pc2為液晶的片選線,高電平有效(E)
ldi r18,0
loop: ldi r31,4
mov r30,r18
lpm r16,z
call yiwei
call delay1
inc r18
cpi r18,6
brlo loop
ldi r16,$80
call yiwei
call delay1
sbi portc,1
ldi r16,$33
call yiwei
call delay1
ldi r16,$34
call yiwei
call delay1
ldi r16,$35
call yiwei
call delay1
wait: rjmp wait
;************************************************
yiwei: ldi r17,8
yiwei0: sbi portb,3
rol r16 ;r16為要移位的數
brcs yiwei1
cbi portb,3
yiwei1: cbi portb,2
sbi portb,2 ;時鐘線置1,送出數據
dec r17
cpi r17,1
brsh yiwei0
; sbi portc,2 ;液晶片選置1,給液晶送入數據
; cbi portc,2
sbi portc,2 ;液晶片選置1,給液晶送入數據
cbi portc,2
ret
;*******************************************
delay1: ldi r16,20
del1: ldi r17,255
del2: dec r17
cpi r17,1
brsh del2
dec r16
cpi r16,1
brsh del1
ret
;***********************************************************************
.org $200 ;液晶初始化的值
.db $01,$03,$06,$0f,$14,$3c
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -