當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]ORG PIC54 GOTO MAIN ORG 0 ;---------------------- ;---------------------------- DELAY22 MOVLW D'200' ; DELAY 2*250=500mS MOVWF COUNT1 DE32 MOVLW D'250' ; 8*250=2mS MOVWF CO

ORG PIC54

GOTO MAIN
ORG 0
;----------------------
;----------------------------
DELAY22
MOVLW D'200' ; DELAY 2*250=500mS
MOVWF COUNT1
DE32 MOVLW D'250' ; 8*250=2mS
MOVWF COUNT2
DE42 NOP ; 1+2+1=5uS
DECFSZ COUNT2,1
GOTO DE42
DECFSZ COUNT1,1
GOTO DE32
RETLW 0
;--------------------------------
; 子程序!!!
;********************************
MAIN
MOVLW 0FFH
TRIS RA
LOOP
CALL CONVERT
CALL DELAY22
CALL DELAY22
CALL GET_TEMP

GOTO LOOP
;------------------------
GET_TEMP
CALL INI
MOVLW 0CCH
MOVWF COMD
CALL WR1820
MOVLW 0BEH
MOVWF COMD
CALL WR1820
CALL RE1820
MOVF TEM_DATE,W
MOVWF TEM_DATEL
CALL RE1820
MOVF TEM_DATE,W
MOVWF TEM_DATEH
RETLW 0
;------------------------
CONVERT
CALL INI
MOVLW 0CCH
MOVWF COMD
CALL WR1820
MOVLW 44H
MOVWF COMD
CALL WR1820
RETLW 0

;---------DS1820---------
INI
;MOVLW B'00100000'
MOVLW 0
TRIS RA
BSF RA,3
NOP
BCF RA,3
MOVLW D'200'
MOVWF COUNT1
L0
DECFSZ COUNT1,1
GOTO L0
;MOVLW B'01100000'
MOVLW 0FH
TRIS RA
MOVLW D'30'
MOVWF COUNT1
L1
DECFSZ COUNT1,1
GOTO L1
BTFSC RA,3
GOTO INI
L2
MOVLW D'80'
MOVWF COUNT1
L3
DECFSZ COUNT1,1
GOTO L3
BTFSS RA,3
GOTO L0
RETLW 0
;-------------------------
WR1820
MOVLW 8
MOVWF COUNT2
WR0
;MOVLW B'00100000'
MOVLW 0
TRIS RA
BCF RA,3
NOP
NOP
MOVLW 2
MOVWF COUNT1
WR1
DECFSZ COUNT1,1
GOTO WR1
;MOVLW B'01111111'
MOVLW 0FH
BTFSC COMD,0
BSF RA,3
BTFSC COMD,0
TRIS RA
BCF STATUS,C
RRF COMD,1
MOVLW D'20'
MOVWF COUNT1
WR2
DECFSZ COUNT1,1
GOTO WR2
BSF RA,3
;MOVLW B'01100000'
MOVLW 0FH
TRIS RA
DECFSZ COUNT2,1
GOTO WR0
RETLW 0
;--------------------------
RE1820
MOVLW 8
MOVWF COUNT2
RE0
;MOVLW B'00100000'
MOVLW 0
TRIS RA
BCF RA,3
MOVLW 2
MOVWF COUNT1
RE1
DECFSZ COUNT1,1
GOTO RE1
;MOVLW B'01100000'
MOVLW 0FH
TRIS RA
NOP
BTFSS RA,3
BCF STATUS,C
BTFSC RA,3
BSF STATUS,C
RRF TEM_DATE,1
MOVLW D'20'
MOVWF COUNT1
RE2
DECFSZ COUNT1,1
GOTO RE2
DECFSZ COUNT2,1
GOTO RE0
BSF RA,3
RETLW 0
;-------------------------
;****************************
;**************************
END

PIC控制時鐘芯片DS1302匯編程序

;PIC單片機(jī)www.pic16.com
#INCLUDE
CBLOCK 20H
SEC ;秒
MIN ;分
HOU ;小時
DATE ;日期
MON ;月
DAY ;日
YERR ;年
DDD ;寫使能位
TIME_TX ;1302發(fā)送寄存器
TIME_RX ;1302接收寄存器
COUNT1 ;
COUNT2 ;
DELAY1
DELAY2
ENDC
*******************************
; ; 1302子程序說明
; ;******************************
; DS1302INI ;1302初始化,先禁止RST,設(shè)定充電方式
; SET_TIME ;一次發(fā)送7個數(shù)據(jù)設(shè)定時間,包含寫使能寄存器,8個數(shù)據(jù)
; GET_TIME ;一次接收7個數(shù)據(jù)顯示時間
; TIME_WRITE_1;一次寫入1302一個字節(jié)
; TIME_READ_1 ;一次接收一個字節(jié)數(shù)據(jù)
; ;******* 1302定義**************
; ;******************************
#DEFINE I_O PORTC,7 ;1302I_O
#DEFINE SCLK PORTC,6 ;1302時鐘
#DEFINE RST PORTA,0 ;1302使能位
#DEFINE RX_ADD 40H ;保存接受的7個數(shù)據(jù)
#DEFINE TX_ADD 20H ;開始保存7個要寫入的時間數(shù)據(jù)
BANK1 MACRO
BSF STATUS,RP0
ENDM
BANK0 MACRO
BCF STATUS,RP0
ENDM

ORG 000H
NOP
GOTO MAIN
MAIN

CALL CLR_RAM 清除RAN
CALL PORT_INI 端口定義
CALL DS1302_INI
CALL SET_TIME 一次寫入7個時間數(shù)據(jù)
CALL GET_TIME ; 一次讀回7個時間數(shù)據(jù)
GOTO $


;; 寫入秒,可以寫任意的7個時間數(shù)據(jù),單字節(jié)
MOVLW B'10000000'
MOVWF TIME_TX
BSF RST
CALL TIME_WRITE_1
MOVLW B'00100101'
MOVWF TIME_TX
CALL TIME_WRITE_1
BCF RST

讀秒,可以讀任意7個時間,單字節(jié)


MOVLW B'10000001'
MOVWF TIME_TX
BSF RST
CALL TIME_WRITE_1
CALL TIME_READ_1
BCF RST

GOTO $

:子程序

**************************************************
; DS1302_INI
; 作用:初始化1302,先禁止RST,允許寫使能
;**************************************************
DS1302_INI
BCF SCLK
BCF RST ;先禁止
MOVLW B'10001110' ;寫使能寄存器
MOVWF TIME_TX
BSF RST
CALL TIME_WRITE_1
MOVLW B'0' ;允許寫使能
MOVWF TIME_TX
CALL TIME_WRITE_1;發(fā)送一個字節(jié)的數(shù)據(jù)
BCF RST

;設(shè)定充電方式

沒有設(shè)定
RETURN

;**************************************************
; SET_TIME
; 作用:一次輸入7個數(shù)據(jù)來一次性的設(shè)定時間,同時使能寫寄存器
; 突發(fā)模式寫入,必須寫入8個數(shù)據(jù),不是7個
; INPUT:要設(shè)定的8個數(shù)據(jù)已經(jīng)寫入到TIME_TX_ADD開始的8個字節(jié)里面
;**************************************************
SET_TIME
MOVLW B'10111110' ;標(biāo)志位
MOVWF TIME_TX
BSF RST
CALL TIME_WRITE_1
;TIME_WRITE_8 ;發(fā)送8個數(shù)據(jù)
MOVLW TIME_TX_ADD ;發(fā)送數(shù)據(jù)的起始地址
MOVWF FSR
MOVLW D'8'
MOVWF COUNT2
TW1
MOVF INDF,W
MOVWF TIME_TX
CALL TIME_WRITE_1
INCF FSR,F
DECFSZ COUNT2,F
GOTO TW1
BCF RST
RETURN
;***********************************************
; GET_TIME
; 作用:一次接受7個字節(jié)的時間數(shù)據(jù),突發(fā)模式讀取
; INPUT:NONE
; OUTPUT:把7個時間數(shù)據(jù)保存在TIME_RX_ADD開始的7個寄存器里面
;***********************************************
GET_TIME
MOVLW B'10111111'
MOVWF TIME_TX
BSF RST
CALL TIME_WRITE_1
;TIME_READ_7 ;接收7個數(shù)據(jù)
MOVLW TIME_RX_ADD ;保存數(shù)據(jù)的起始地址
MOVWF FSR
MOVLW D'7'
MOVWF COUNT2
TR2
CALL TIME_READ_1
MOVF TIME_RX,W
MOVWF INDF
INCF FSR,F
DECFSZ COUNT2,F
GOTO TR2
BCF RST
RETURN
;************************************************
; TIME_WRITE_1
; 作用:一次發(fā)送一個字節(jié)的數(shù)據(jù),用于發(fā)送1302的
; 控制字或者發(fā)送一個數(shù)據(jù)
; INPUT: TIME_TX
;************************************************
TIME_WRITE_1
MOVLW D'8'
MOVWF COUNT1
TLOP
BCF I_O ;初始值是低電平
BCF SCLK
BTFSC TIME_TX,0
BSF I_O
RRF TIME_TX,F
BSF SCLK ;高電平發(fā)送數(shù)據(jù)
DECFSZ COUNT1,F
GOTO TLOP
BCF SCLK ;恢復(fù)
RETURN
;************************************************
; TIME_READ_1
; 作用:讀取1302一個字節(jié)的數(shù)據(jù)
; INPUT: NONE
; OUTPUT:接收數(shù)據(jù)保存在TIME_RX里面
; 原理:在SCLK下降沿接收數(shù)據(jù),低字節(jié)在前,根據(jù)I_O的
; 的電平的高低,采取帶進(jìn)位和不帶進(jìn)位右移.
;***********************************************
TIME_READ_1
BANK1
BSF TRISC,7 ;I_O IS INPUT
BANK0
MOVLW D'8'
MOVWF COUNT1 ;讀取8個字節(jié)
TR1
BCF SCLK ;下降沿讀取
BCF STATUS,C
BTFSC I_O
BSF STATUS,C
RRF TIME_RX,F
BSF SCLK ;恢復(fù)高電平
DECFSZ COUNT1,F
GOTO TR1
BANK1
BCF TRISC,7 ;OUTPUT
BANK0
BCF SCLK ;恢復(fù)
RETURN
NOP

 

PORT_INI
BANK1
MOVLW B'00000000'
MOVWF TRISC
MOVLW B'0'
MOVWF TRISB
MOVLW B'00000111'
MOVWF ADCON1
MOVLW B'00000000'
MOVWF TRISA
BANK0
MOVLW 18H
MOVWF 20H
MOVLW 19H
MOVWF 21H
MOVLW 05H
MOVWF 22H
MOVLW 13H
MOVWF 23H
MOVLW 14H
MOVWF 24H
MOVLW 15H
MOVWF 25H
MOVLW 16H
MOVWF 26H
RETURN
CLR_RAM
MOVLW 20H
MOVWF FSR
LOOP
CLRF INDF
INCF FSR,F
BTFSS FSR,7
GOTO LOOP ;清除32個
RETURN
END

LCD驅(qū)動HT1621的PIC源代碼

;PIC單片機(jī)www.pic16.com
STATUS EQU 3H
FSR EQU 4H
RB EQU 6H
RC EQU 7H
OPTIONA EQU 81H
TRISB EQU 86H
TRISC EQU 87H

GENR0 EQU 053H
GENR1 EQU 054H
WD_RG EQU 055H
DA_AG0 EQU 056H ;SEG0 SEG1
DA_AG8 EQU 05EH ;SEG16 SEG17
;.............................
C EQU 0
Z EQU 2
RP0 EQU 5
RP1 EQU 6
CS EQU 2
WDA EQU 5 ;RC,5數(shù)據(jù)線
WCLK EQU 1 ;RB,1寫時鐘線
RCLK EQU 4 ;RB,4讀時鐘線
;..............................
ORG 0H
GOTO START
;...............................
START BSF STATUS,RP0
MOVLW 00H
MOVWF TRISB
MOVLW 81H
MOVWF TRISC
BCF STATUS,RP0
MOVLW 12H
MOVWF RB
BSF RC,2
BSF RC,5
MOVLW 4
MOVWF OPTIONA
LOOP NOP
CALL X_QUAN
NOP
GOTO LOOP

;............................
X_QUAN
MOVLW 8H
CALL ON_LCD ;TRANSMIT TH1621 WORK MODE VALUE

MOVLW 9H ;顯示9位LCD
CALL DIS_DATA

RETURN
;............................
ON_LCD MOVWF GENR1
BCF RC,2
MOVLW 80H ;HI_W3 BITS:100
MOVWF WD_RG
MOVLW 3 ;3位命令100
CALL TRAM_DATA
ON_LCD0 MOVF GENR1,0
CALL ON_VALUE ;查表初始化LCD
MOVWF WD_RG

MOVLW 8 ;送8位查表值
CALL TRAM_DATA

BCF RC,WDA
NOP
NOP
BCF RB,1
NOP
NOP
BSF RB,1
BSF RC,2
DECFSZ GENR1,1
GOTO ON_LCD+1
RETURN
;........................
ON_VALUE
ADDWF 2
NOP
RETLW 03H ;LCD ON
RETLW 01H ;SYS ON

RETLW 08H ;TONE OFF
RETLW 29H ;BISA1/3 4 COM
RETLW 18H ;256K
RETLW 05H ;WDT DISABLE

RETLW 80H ;/IRQ DISABLE *
RETLW 0E3H ;NORMAL MODE *

;................................
;TRANSMIT BITS SUBROUTINE
TRAM_DATA
BCF STATUS,0
MOVWF GENR0
BCF RB,1
RLF WD_RG
BTFSS 3,0
GOTO $+3
BSF RC,WDA
GOTO $+2
BCF RC,WDA

BSF RB,1
DECFSZ GENR0,1
GOTO TRAM_DATA+2

RETURN
;.......................
DIS_DATA
MOVWF GENR1 ;9位LCD
BCF RC,2
MOVLW 0A0H
MOVWF WD_RG ;WRITE CONTROL

MOVLW 3H ;3位寫命令101
CALL TRAM_DATA
MOVLW 00
MOVWF WD_RG ;WRITE ADDRESS
MOVLW 6H ;6位地址
CALL TRAM_DATA ;
DIS_DATA0

MOVLW 0FFH
MOVWF WD_RG ;DISPLAY CODE

MOVLW 8 ;8段數(shù)據(jù)
CALL TRAM_DATA

DECFSZ GENR1,1
GOTO DIS_DATA0
BSF RC,2
RETLW 0
END

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉