人狗畜禽COMPANY LIMITED|全是肉的高H文〈男男〉|全篇肉高H秘书被C办公室四爱|全黄H全肉共妻|全黄H全肉短篇禁乱NP慕浅浅|全黄H全肉短篇N男男

技術(shù)熱線: 4007-888-234

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

從全面的產(chǎn)品導(dǎo)入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

技術(shù)支持

PIC單片機lcd顯示時鐘演示程序

更新時間: 2019-03-22

單片機方案開發(fā)商深圳英銳恩分享PIC單片機lcd顯示時鐘演示程序。

include 
;*----
; 定義 LCD數(shù)據(jù)& 控制I/O口
LCD_DATA equ PORTB
LCD_CNTL1 equ PORTB
LCD_CNTL2 equ PORTA 
; 定義 LCD控制相應(yīng)的I/O引腳
RS equ 1
E equ 5

; LCD 模塊命令
DISP_ON EQU 0x00C ; 開顯示
DISP_ON_C EQU 0x00E ; 開顯示, 開指針
DISP_ON_B EQU 0x00F ; 開顯示, 開指針,開閃爍
DISP_OFF EQU 0x008 ; 關(guān)顯示
CLR_DISP EQU 0x001 ; 清顯示的操作數(shù)
ENTRY_INC EQU 0x006 ; 操作數(shù)
ENTRY_INC_S EQU 0x007 ; 操作數(shù)
ENTRY_DEC EQU 0x004 ; 操作數(shù)
ENTRY_DEC_S EQU 0x005 ; 操作數(shù)
DD_RAM_ADDR EQU 0x080 ; 初始化第一行顯示的操作數(shù)
DD_RAM_UL EQU 0x0c0 ; 初始化第二行顯示的操作數(shù)

; 設(shè)置顯示相關(guān)寄存器
Byte EQU 20H
Count EQU 21H 

Count1 EQU 22H
Count2 EQU 23H
LCD_DATA1 EQU 24H
PORTDB EQU 25H
Temp EQU 26H
TempH EQU 27H
TempL EQU 28H
INTSIG EQU 29H
RTCCSIG1 EQU 2AH
RTCCSIG EQU 2BH
ALRSIG EQU 2CH
Hour EQU 2DH
HourH EQU 2EH
HourL EQU 2FH
HourL1 EQU 30H
HourH1 EQU 31H
Mins EQU 32H
Mins1 EQU 33H
MinsH EQU 34H
MinsL EQU 35H
MinsH1 EQU 36H
MinsL1 EQU 37H
Secs EQU 38H
SecsH EQU 39H
SecsL EQU 3AH
ALRH1 EQU 3BH
ALRM1 EQU 3CH 

ALRH2 EQU 3DH
ALRM2 EQU 3EH
ALRH3 EQU 3FH
ALRM3 EQU 40H
_WREG EQU 41H
_STATUS EQU 42H
Hour1 EQU 43H
ADRESB EQU 44H
BKM EQU 45H
;*----

org 0
nop
goto start
org 4
goto ISR

org 10

CalTable
bcf STATUS,RP0
bcf PCLATH,0
movlw 0x66 ; 進行校準處理
subwf Temp,w ;
addwf PCL,f ; 將補償結(jié)果與 PCL相加
dt 0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5
dt 6,6,6,7,7,7,8,8,8,9,9,0xa,0xa,0xb,0xb,0xc,0xc
dt 0xd,0xd,0xe,0xe,0xf,0xf,0xf,0x10,0x10,0x10
dt 0x11,0x11,0x12,0x12,0x12,0x13,0x13,0x14,0x14,0x14
dt 0x15,0x15,0x15,0x16,0x16,0x16,0x17,0x17,0x18,0x18
dt 0x19,0x19,0x1a,0x1a,0x1b,0x1b,0x1c,0x1c,0x1c
dt 0x1d,0x1d,0x1d,0x1e,0x1e,0x1f,0x1f,0x20,0x20
dt 0x21,0x21,0x22,0x22,0x23,0x23,0x24,0x24,0x25,0x25
dt 0x26,0x26,0x27,0x28,0x29,0x29,0x2a,0x2a,0x2b,0x2b
dt 0x2c,0x2d,0x2e,0x2f,0x30,0x32

start
call InitLCD
clrf RTCCSIG 

clrf RTCCSIG1
clrf INTSIG
clrf Hour
clrf Hour1
clrf Mins
clrf Mins1
clrf Secs
clrf ALRSIG
movlw 20h
movwf BKM
movlw b'10001111'
movwf PORTDB
movlw 0ffh
movwf TMR0
movlw 00
movwf TMR1L
movlw 80h
movwf TMR1H
movlw b'00001111'
movwf T1CON
bsf STATUS,RP0
bsf PIE1,TMR1IE 

bcf STATUS,RP0
movlw b'10111111'
OPTION
movlw b'11110000'
movwf INTCON
main
movlw 80h
call SendCmd
call DisplayTime ;顯示時間
movlw 0c0h
call SendCmd
movlw 'H'
call putcLCD
movlw 'e'
call putcLCD
movlw 'l'
call putcLCD
movlw 'l'
call putcLCD
movlw 'o'
call putcLCD
movlw ' '
call putcLCD
movlw '!'
call putcLCD
movlw ' '
call putcLCD
movlw ':'
call putcLCD
movlw ')' 

call putcLCD
movlw ' '
call putcLCD
movlw ' '
call putcLCD
call BkLight ;背光控制
call TempM ;顯示溫度
btfsc ALRSIG,1
call ALR1
btfsc ALRSIG,2
call ALR2
btfsc ALRSIG,3
call ALR3
bcf STATUS,RP0 

bcf PCLATH,0
movf RTCCSIG,W
addwf PCL,1
goto main
goto RtccS1
goto RtccS2
goto Rtccs3
goto Rtccs4
clrf RTCCSIG
clrf RTCCSIG1
goto main
;*=====
ALR1 bcf STATUS,RP0
movf Hour,W
xorwf ALRH1,W
btfss STATUS,Z
goto ALREND
movf Mins,W
xorwf ALRM1,W
btfss STATUS,Z
goto ALREND
bsf STATUS,RP0
clrf TRISD
bcf STATUS,RP0
bcf STATUS,C
rlf PORTDB,1
btfsc STATUS,C
bsf PORTDB,0
movf PORTDB,W
movwf PORTD
return 

;*---
ALR2 bcf STATUS,RP0
movf Hour,W
xorwf ALRH2,W
btfss STATUS,Z
goto ALREND
movf Mins,W
xorwf ALRM2,W
btfss STATUS,Z
goto ALREND
bsf STATUS,RP0
clrf TRISD
bcf STATUS,RP0 

bcf STATUS,C
rlf PORTDB,1
btfsc STATUS,C
bsf PORTDB,0
movf PORTDB,W
movwf PORTD
return
;*----
ALR3 bcf STATUS,RP0
movf Hour,W
xorwf ALRH3,W
btfss STATUS,Z
goto ALREND
movf Mins,W
xorwf ALRM3,W
btfss STATUS,Z
goto ALREND
bsf STATUS,RP0
clrf TRISD
bcf STATUS,RP0
bcf STATUS,C
rlf PORTDB,1
btfsc STATUS,C
bsf PORTDB,0
movf PORTDB,W
movwf PORTD
return
;*--- 

ALREND
bsf STATUS,RP0
movlw 0ffh
movwf TRISD
return
;*=====
RtccS1
movlw 80h
call SendCmd
call DisplayTime
call LongDelay
movlw 0c0h
call SendCmd ;line2, 00
movlw 'S'
call putcLCD
movlw 'e' 

call putcLCD
movlw 't'
call putcLCD
movlw ' '
call putcLCD
movlw 'T'
call putcLCD
movlw 'i'
call putcLCD
movlw 'm'
call putcLCD
movlw 'e'
call putcLCD ;show "Set Time"
movlw ' '
call putcLCD
movlw ' '
call putcLCD
movlw ' '
call putcLCD
movlw ' '
call putcLCD
bsf PCLATH,0
movf RTCCSIG1,W
addwf PCL,1 

goto SetHour
goto SetMins
clrf INTSIG
incf RTCCSIG
clrf RTCCSIG1
goto main
;*----
SetHour
movlw 80h
call Selshow
movlw d'24'
subwf INTSIG,W
btfsc STATUS,C
goto

404
返回首頁 |  返回上一頁
定南县| 大宁县| 同心县| 黄陵县| 建水县| 淮阳县| 库车县| 金溪县| 海门市| 台北市| 阳春市| 盘山县| 丹棱县| 辉南县| 澄迈县| 买车| 邢台县| 普安县| 额济纳旗| 罗江县| 无锡市| 武穴市| 永靖县| 富裕县| 湖南省| 靖远县| 淮安市| 韶关市| 盐边县| 枣阳市| 天柱县| 忻州市| 陵川县| 南汇区| 黎川县| 虎林市| 惠安县| 舞钢市| 泰和县| 睢宁县| 武功县|