www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]PIC單片機(jī)實現(xiàn)音樂播放的實例程序 ******************************** * PIC單片機(jī)實現(xiàn)音樂播放 * ******************************** 源程序: 以下程序要用二個定時器資源,凡是有二個定時器的PIC單片機(jī)均

PIC單片機(jī)實現(xiàn)音樂播放的實例程序
********************************
*   PIC單片機(jī)實現(xiàn)音樂播放      *
********************************

 源程序:

 以下程序要用二個定時器資源,凡是有二個定時器的PIC單片機(jī)均可實現(xiàn),該范例需要的MCU是MICROCHIP PIC16C62
 INCLUDE "D:PICP16XX.EQU"   ;該文件在MICROCHIP光盤中可找到
;**************************************************
#define BeepOut RC,4
;**************************************************
W_TEMP EQU 0X20 ;(0XA0)
STATUS_TEMP EQU 0X21
BeepCnt equ 30h
TmrBak equ 31h
BeepMode equ 32h
Sflag equ 33h
;**************************************************
CSTIME100MS equ .8;
;**************************************************
;Sflag
Fg_100ms equ 0
FgBeep equ 1
;**************************************************
    ORG 000H;
    GOTO MAIN ; Skip over interrupt vecter
    ORG 04H ; Interrupt Vector
    GOTO INTZ

;**************************************************
OkTab:
    movf BeepCnt,w
    addwf PCL,f
    retlw .255-.130;0xf6 ;1 ;
    retlw .255-.126;0xfa ;2 ;
    retlw .255-.119; 0xfd ;3 ;
    retlw 0
;**************************************************
WhisleTab:
    movf BeepCnt,w
    addwf PCL,f
    retlw .255-.239;523Hz ;0 ;
    retlw .255-.179;698Hz ;1 ;
    retlw .255-.159;784Hz ;2 ;
    retlw .255-.119;1046Hz ;3 ;
    retlw .0
;**************************************************
HangTab:
    movf BeepCnt,w
    addwf PCL,f
    retlw .255-.159; 784Hz ;0 ;
    retlw .255-.119; 1046Hz ;1 ;
    retlw .255-.150; 830Hz ;2 ;
    retlw .255-.112 ;1109Hz ;3 ;
    retlw .255-.142 ;880Hz ;4 ;
    retlw .255-.106;1174Hz ;5 ;
    retlw .255-.134;932Hz ;6 ;
    retlw .255-.100;1244Hz ;7
    retlw .255-.126;988Hz ;8;
    retlw .255-.94;1318Hz ;9;
    retlw .255-.119;1046Hz ;10 ;
    retlw .255-.89;1397Hz ;11 ;
    retlw .0

;**************************************************
WelcomTab:
    movf BeepCnt,w
    addwf PCL,f
    retlw .255-.89;1397Hz ;11 ;
    retlw .255-.119;1046Hz ;10 ;
    retlw .255-.94;1318Hz ;9;
    retlw .255-.126;988Hz ;8;
    retlw .255-.100;1244Hz ;7
    retlw .255-.134;932Hz ;6 ;
    retlw .255-.106;1174Hz ;5 ;
    retlw .255-.142 ;880Hz ;4 ;
    retlw .255-.112 ;1109Hz ;3 ;
    retlw .255-.150; 830Hz ;2 ;
    retlw .255-.119; 1046Hz ;1 ;
    retlw .255-.159; 784Hz ;0 ;
    retlw .0
;**************************************************
    BeepModeJmp:
    addwf PCL,f
    b psWhisle ;0
    b psOk ;1
    b psHang ;2
    b psWelcom ;3
;**************************************************
IO_SET:
    BANK1_
    MOVLW B'11001011'
    MOVWF TRISA
    MOVLW B'00001100'
    movwf TRISB
    MOVLW B'00000011'
    movwf TRISC ; Set Port_C to all outputs
    BANK0_
    RETURN
;**************************************************
SYS_SET:
    BANK1_
    MOVLW B'00000111' ; 1:256 TMR0分頻
    MOVWF OPTION_R
    BSF PIE1,TMR2IE ;TMR2中斷允許
    BANK0_
    MOVLW B'00000001' ;開TMR1
    MOVWF T1CON
    bsf INTCON,TOIE ;TMR0中斷允許
    BSF INTCON,PEIE ;允許所有未被屏蔽之外圍接口中斷
    RETURN
;**************************************************
MAIN: ; Main rotation
    CALL IO_SET
    MOVLW B'00000000' ;關(guān)所有中斷
    MOVWF INTCON
;****************************
    CALL SYS_SET
;****************************
    call PlayPsWelcom ;上電提示音
MAINLOOP:
    bsf INTCON,GIE ;開所有中斷
    CLRWDT ; Clear WDT
    call BeepFor
    B MAINLOOP
;**************************************************
INTZ:
    PUSH ; Push ;中斷服務(wù)程序
    BTFSC PIR1,TMR2IF ;測試TMR2中斷標(biāo)志位
    b INT_TMR2 ;
    BTFSC INTCON,TOIF ;測試TMR0中斷標(biāo)志位
    GOTO INT_TMR0
IntRet:
    POP ; Pop
    RETFIE
;**************************************************
INT_TMR2:
    BCF PIR1,TMR2IF ;清TMR2中斷標(biāo)志位
    movf TmrBak,w
    movwf TMR2
    CPL BeepOut
BeeperEnd:
    b IntRet
;**************************************************
INT_TMR0: ;定時0中斷
    BCF INTCON,TOIF ; clear INTF
    MOVLW .255-.38 ;10ms
    MOVWF TMR0
    ;====================
    decfsz T100ms,f
    b int_tmr0_ret
    movlw CSTIME100MS
    movwf T100ms
    bsf Sflag,Fg_100ms
    ;=====================
int_tmr0_ret:
    b IntRet
;**************************************************
PlayPsWhisle:
    bsf Fg,FgBeep
    clrf BeepCnt
    movlw .0
    movwf BeepMode
    movlw CSTIME100MS
    movwf T100ms
    retlw 0
;**************************************************
PlayPsOk:
    bsf Fg,FgBeep
    clrf BeepCnt
    movlw .1
    movwf BeepMode
    movlw CSTIME100MS
    movwf T100ms
    retlw 0
;**************************************************
PlayPsHang:
    bsf Fg,FgBeep
    clrf BeepCnt
    movlw .2
    movwf BeepMode
    movlw CSTIME100MS
    movwf T100ms
    retlw 0
;**************************************************
PlayPsWelcom:
    bsf Fg,FgBeep
    clrf BeepCnt
    movlw .3
    movwf BeepMode
    movlw CSTIME100MS
    movwf T100ms
    retlw 0
;**************************************************
;音樂播放程序
;BeepMode=0 : psWhisle
;BeepMode=1 : psOk
;BeepMode=2 : psHang
;BeepMode=3 : psWelcom
;**************************************************
BeepFor:
    btfss Sflag,Fg_100ms
    b BeepForEnd
    bcf Sflag,Fg_100ms
    btfss Sflag,FgBeep
    b BeepForEnd
    MOVLW B'00000101' ;開TMR2 1:4分頻
    MOVWF T2CON
    movf BeepMode,w
    b BeepModeJmp
psWhisle:
    call WhisleTab
    b BeepPlay
psOk:
    call OkTab
    b BeepPlay
psHang:
    call HangTab
    b BeepPlay
psWelcom:
    call WelcomTab
    b BeepPlay
BeepPlay:
    incf BeepCnt,f
    movwf TmrBak
    movf TmrBak,f
    btfsc status,z
    b BeepOff
    movlw .1
    xorwf TmrBak,w
    btfsc status,z
    b BeepStop
    b BeepForEnd
BeepOff:
    clrf BeepCnt
    bcf Sflag,FgBeep
    bcf BeepOut
    bcf T2CON,TMR2ON
    b BeepForEnd
BeepStop:
    bcf T2CON,TMR2ON ;stop
    bcf BeepOut
    BeepForEnd:
    retlw 0
;**************************************************
END

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

柏林2025年9月9日 /美通社/ -- 2025年9月5日,納斯達(dá)克上市公司優(yōu)克聯(lián)集團(tuán)(NASDAQ: UCL)旗下全球互聯(lián)品牌GlocalMe,正式亮相柏林國際消費(fèi)電子展(IFA 2025),重磅推出融合企...

關(guān)鍵字: LOCAL LM BSP 移動網(wǎng)絡(luò)

深圳2025年9月9日 /美通社/ -- PART 01活動背景 當(dāng)技術(shù)的鋒芒刺穿行業(yè)壁壘,萬物互聯(lián)的生態(tài)正重塑產(chǎn)業(yè)疆域。2025年,物聯(lián)網(wǎng)產(chǎn)業(yè)邁入?"破界創(chuàng)造"與"共生進(jìn)化"?的裂變時代——AI大模型消融感知邊界,...

關(guān)鍵字: BSP 模型 微信 AIOT

"出海無界 商機(jī)無限"助力企業(yè)構(gòu)建全球競爭力 深圳2025年9月9日 /美通社/ -- 2025年8月28日, 由領(lǐng)先商業(yè)管理媒體世界經(jīng)理人攜手環(huán)球資源聯(lián)合主辦、深圳?前海出海e站通協(xié)辦的...

關(guān)鍵字: 解碼 供應(yīng)鏈 AI BSP

柏林2025年9月9日 /美通社/ -- 柏林當(dāng)?shù)貢r間9月6日,在2025德國柏林國際電子消費(fèi)品展覽會(International Funkausstellung...

關(guān)鍵字: 掃地機(jī)器人 耳機(jī) PEN BSP

武漢2025年9月9日 /美通社/ -- 7月24日,2025慧聰跨業(yè)品牌巡展——湖北?武漢站在武漢中南花園酒店隆重舉辦!本次巡展由慧聰安防網(wǎng)、慧聰物聯(lián)網(wǎng)、慧聰音響燈光網(wǎng)、慧聰LED屏網(wǎng)、慧聰教育網(wǎng)聯(lián)合主辦,吸引了安防、...

關(guān)鍵字: AI 希捷 BSP 平板

上海2025年9月9日 /美通社/ -- 9月8日,移遠(yuǎn)通信宣布,其自研藍(lán)牙協(xié)議棧DynaBlue率先通過藍(lán)牙技術(shù)聯(lián)盟(SIG)BQB 6.1標(biāo)準(zhǔn)認(rèn)證。作為移遠(yuǎn)深耕短距離通信...

關(guān)鍵字: 藍(lán)牙協(xié)議棧 移遠(yuǎn)通信 COM BSP

上海2025年9月9日 /美通社/ -- 為全面落實黨中央、國務(wù)院和上海市委、市政府關(guān)于加快發(fā)展人力資源服務(wù)業(yè)的決策部署,更好發(fā)揮人力資源服務(wù)業(yè)賦能百業(yè)作用,8月29日,以"AI智領(lǐng) HR智鏈 靜候你來&quo...

關(guān)鍵字: 智能體 AI BSP 人工智能

北京2025年9月8日 /美通社/ -- 近日,易生支付與一汽出行達(dá)成合作,為其自主研發(fā)的"旗馭車管"車輛運(yùn)營管理平臺提供全流程支付通道及技術(shù)支持。此次合作不僅提升了平臺對百余家企業(yè)客戶的運(yùn)營管理效率...

關(guān)鍵字: 一汽 智能化 BSP SAAS

深圳2025年9月8日 /美通社/ -- 晶泰科技(2228.HK)今日宣布,由其助力智擎生技制藥(PharmaEngine, Inc.)發(fā)現(xiàn)的新一代PRMT5抑制劑PEP0...

關(guān)鍵字: 泰科 AI MT BSP

上海2025年9月5日 /美通社/ -- 由上海市經(jīng)濟(jì)和信息化委員會、上海市發(fā)展和改革委員會、上海市商務(wù)委員會、上海市教育委員會、上海市科學(xué)技術(shù)委員會指導(dǎo),東浩蘭生(集團(tuán))有限公司主辦,東浩蘭生會展集團(tuán)上海工業(yè)商務(wù)展覽有...

關(guān)鍵字: 電子 BSP 芯片 自動駕駛
關(guān)閉