天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開(kāi)發(fā)

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

開(kāi)發(fā)工具

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

技術(shù)支持

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

新品推廣

提供新的芯片及解決方案,提升客戶(hù)產(chǎn)品競(jìng)爭(zhēng)力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

ST套件上0-99秒計(jì)時(shí)

更新時(shí)間: 2019-03-23
閱讀量:1686

十年專(zhuān)注單片機(jī)方案開(kāi)發(fā)的方案公司英銳恩,分享ST套件上0-99秒計(jì)時(shí)。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類(lèi)運(yùn)算放大器等。

;這是我學(xué)習(xí)PIC完成的第一個(gè)程序燒在了ST套件上不錯(cuò),0-99秒計(jì)時(shí)

;如果用MPLAB模擬,用stopwach計(jì)時(shí)非常準(zhǔn)

;ST套件上0-99秒表程序,根據(jù)原0-99鍵控程序上改寫(xiě)的,初學(xué)練習(xí) ;**************************************************************** LIST P=16F84A,R=DEC ;MCU:16F84,默認(rèn)數(shù)制為十進(jìn)制 ;----------------------------------------------- __CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC ;沒(méi)有代碼保護(hù) ;看門(mén)狗關(guān)閉 ;上電廷時(shí)器開(kāi)啟 ;振蕩器模式為XT ;--------------------- RTCC EQU 01H ;計(jì)數(shù)器 PC EQU 02H ;程序計(jì)數(shù)器 STATUS EQU 03H ;狀態(tài)寄存器 PORTA EQU 05H PORTB EQU 06H INTCON EQU 0BH 

OPTION_REG EQU 1H ;81H TRISA EQU 5H TRISB EQU 6H ;-----------------------STATUS C EQU 0 Z EQU 2 RP0 EQU 5 ;寄存器體選 ;-------------------------INTCON T0IF EQU 2 ;定時(shí)器0溢出中斷標(biāo)志位 T0IE EQU 5 ;定時(shí)器0溢出中斷允許/禁止 GIE EQU 7 ;總中斷允許/禁止 ;------------------------- TABADD EQU 13H ;轉(zhuǎn)換數(shù)碼管地址 FLAGS EQU 14H ;顯示位選標(biāo)志位 DISPBUF_H EQU 15H ;顯示器秒拾位 DISPBUF_L EQU 16H ;顯示器秒個(gè)位 DIGIT EQU 1AH ;5ms計(jì)數(shù)器 W_TEMP EQU 1BH ;W現(xiàn)場(chǎng)保護(hù)寄存器 STATUS_TEMP EQU 1CH ;STATUS現(xiàn)場(chǎng)保護(hù)寄存器 ;-------------------- ORG 0000H GOTO MAIN ORG 004H TMR0SERV MOVWF W_TEMP ;現(xiàn)場(chǎng)保護(hù) SWAPF STATUS,W ;用SWAPF才不會(huì)影響標(biāo)志位 MOVWF STATUS_TEMP ;將W和STATUS存入各保護(hù)寄存器

MOVLW 100 ;送定時(shí)器初值 MOVWF RTCC BCF INTCON,T0IF ;清定時(shí)器0溢出中斷標(biāo)志位

MOVLW 0FFH MOVWF PORTB ;先熄滅數(shù)碼管以免閃爍 BSF PORTA,1 BSF PORTA,2

MOVLW TABLE MOVWF TABADD ;將轉(zhuǎn)換表的首地址存入TABADD MOVFW DISPBUF_L ;計(jì)數(shù)值(W)與轉(zhuǎn)換表的起始地址相加 BTFSS FLAGS,1 ;FLAGS1位為1時(shí),顯示低位 MOVFW DISPBUF_H ADDWF TABADD,W CALL CONVERT ;存入W后調(diào)用轉(zhuǎn)換表子程序 MOVWF PORTB ;送RB口顯示

BTFSS FLAGS,1 ;根據(jù)標(biāo)志位選擇是點(diǎn)亮那一個(gè)數(shù)碼管 BCF PORTA,1 BTFSC FLAGS,1 BCF PORTA,2 COMF FLAGS,1 INCF DIGIT,1 MOVLW 200 ;計(jì)數(shù)值為200后不再加1 XORWF DIGIT,0 BNZ TIMEND CLRF DIGIT INCF DISPBUF_L,1 ;秒個(gè)位加1 MOVLW 10 XORWF DISPBUF_L,0 BNZ TIMEND CLRF DISPBUF_L

INCF DISPBUF_H,1 ;秒拾位加1 MOVLW 10 XORWF DISPBUF_H,0 BNZ TIMEND CLRF DISPBUF_H

TIMEND SWAPF STATUS_TEMP,W ;恢復(fù)中斷前STATUS,W的值 MOVWF STATUS SWAPF W_TEMP,F SWAPF W_TEMP,W ;(用SWAPF才不會(huì)影響STATUS的值) RETFIE ;------------------------------------------------ MAIN CLRF PORTA CLRF PORTB ;初始化IO口

BSF STATUS,RP0 ;設(shè)置寄存器體1 MOVLW 00000000B MOVWF TRISA MOVLW 00000000B MOVWF TRISB MOVLW 10000100B MOVWF OPTION_REG ;預(yù)分頻器分配給定時(shí)器0,分頻比1:32 BCF STATUS,RP0 ;恢復(fù)寄存器體0

MOVLW 100 MOVWF RTCC ;定時(shí)器送初值(256-100)*32US=4.992MS,每4.992MS一次中斷 MOVLW 0FFH ;先讓數(shù)碼管全部不顯示 MOVWF PORTB CLRF DIGIT ;顯示計(jì)數(shù)器清0 CLRF DISPBUF_L ;數(shù)碼管先顯示00 CLRF DISPBUF_H BCF INTCON,T0IF BSF INTCON,T0IE ;定時(shí)器0溢出中斷允許 BSF INTCON,GIE ;總中斷允許 ;-------------------------------------------------- LOOP GOTO LOOP ;循環(huán)掃描

CONVERT MOVWF PC ;將W寄存器內(nèi)的7段顯示碼地址放入PC TABLE ;PC執(zhí)行新地址指令, 跳到相對(duì)的地址執(zhí)行? RETLW 081H ;0 ;RETLW指令,將七段顯示碼存入W后返回 RETLW 0E7H ;1 RETLW 092H ;2 RETLW 0A2H ;3 RETLW 0E4H ;4 RETLW 0A8H ;5 RETLW 088H ;6 RETLW 0E3H ;7 RETLW 080H ;8 RETLW 0A0H ;9 ;----- ----------------------------------------------- END

联系我们: 鄂伦春自治旗| 津南区| 合山市| 丁青县| 洛川县| 怀来县| 临西县| 宽城| 吴川市| 南华县| 昌图县| 赤水市| 天祝| 岳池县| 尉氏县| 东乌珠穆沁旗| 大港区| 马龙县| 司法| 钟山县| 阿合奇县| 甘孜| 美姑县| 双城市| 龙山县| 哈尔滨市| 清丰县| 克什克腾旗| 维西| 赣州市| 健康| 绥江县| 康马县| 鸡西市| 克拉玛依市| 兴隆县| 湘西| 石首市| 出国| 彰化市| 溧阳市|