|
STC單片機(jī)串口發(fā)送及LCD中斷接收程序,親測(cè)可用
單片機(jī)源程序如下:
- #include "stc15w4k32s4.h"
- #include <stdio.h>
- #include <string.h>
- #define EN_DISK_QUERY 1 //啟用磁盤(pán)查詢
- #include "SysTick.h" //時(shí)鐘相關(guān)函數(shù) 延遲函數(shù)
- #include "W25Q256.h" //Flash模塊
- #include "KeyHandle.h"
- #include "DEBUG.H"
- #include "lcd.h"
- #include "vs1003.h" //音頻解碼模塊
- char i; //用于for循環(huán)的變量,后為正在播放的歌曲位置
- UINT8 MP3Count; //歌曲數(shù)
- UINT32 MP3LenByOne; //單個(gè)歌曲長(zhǎng)度
- //UINT8 KeyDetectionTime = 0; //k2按鍵檢測(cè)間隔
- UINT8 TempDisplayTime = 0; //k1溫度顯示間隔
- UINT8 ResultStr; //操作結(jié)果返回值
- UINT8 idata buf[64];
- UINT8 xdata BufMP3[11*50];
- UINT8 xdata SrcName[64];
- void init_time_interrupt()
- {
- AUXR |= 0x80; //定時(shí)器0工作模式1
- TMOD = 0x00;
- TH0 = (65536-(24000000/60000)) / 256; //定時(shí)器0,1設(shè)置為60ms
- TL0 = (65536-(24000000/60000)) % 256;
- TR0 = 1; //啟動(dòng)定時(shí)器0
- ET0 = 1; //允許定時(shí)器0中斷
- EX0 = 1; //外部中斷0
- IT0 = 1; //指定外部中斷0下降沿觸發(fā),INT0(P3.2)
- //TCON = 0x01; //打開(kāi)外部中斷0,并設(shè)置為下降沿觸發(fā)
- EA = 1; //使能總中斷
- }
- void timer0() interrupt 1
- {
- TH0 = (65536-(24000000/60000)) / 256; //定時(shí)時(shí)間初值為60ms
- TL0 = (65536-(24000000/60000)) % 256;
- if(Count != 100)
- {
- Count++; //計(jì)數(shù)值加1
- if(Count >= CountNum) //到達(dá)預(yù)置計(jì)數(shù)值,一秒鐘更新一次定時(shí)值
- {
- Count = 0; //清零
- if(!music_stop)
- {
- Second--;
- GetAM2302Data(); //獲得溫濕度值
- if(Second < 0) //秒減小到0時(shí),重新從60遞減同時(shí)分減一
- {
- Second = 59;
- Minute--;
- if(Minute < 0) //分減小到0時(shí)停止計(jì)時(shí)
- {
- Minute = 0;
- TimingDisplayFlag = 0;
- all_stop = 1; //定時(shí)到停止播放音樂(lè)
- Count = 100;
- }
- }
- }
-
- }
- }
- }
- void main(void)
- {
- UINT32 OffSetFile;
- UINT32 Temp_Addr;
- UINT32 Alarm_Addr;
- UINT32 My_Addr = 0; //初始化音樂(lè)地址
- UINT8 MP3PlayIndex = 0; //播放歌曲序號(hào) 切歌次數(shù)
- uint32 music_addr[8] = //flash音樂(lè)長(zhǎng)度 8首歌
- {
- 0x00126f4f,
- 0x0010253a,
- 0x001c26db,
- 0x00129087,
- 0x003606c1,
- 0x00190806,
- 0x0016f3e1,
- 0x0023f007
- };
- uint32 music_Alarm[2] = //報(bào)警音樂(lè)首末地址
- {
- 0x00db3e9a,
- 0x00e256b7
- };
- bit Flash_SkipMusicFlag = 0; //用于表示Flash切歌按鍵是否按下 0 自然切歌 1 按鍵切歌
- char j; //用于for循環(huán)的變量
- vol = 25; //音量初始化
- CamPower_Ctrl = 0; //視頻開(kāi)啟標(biāo)志位,0 關(guān)閉 ;1 開(kāi)啟
- SPI_RE_flag = 0;
- mInitSTDIO();
- init_time_interrupt(); //初始化定時(shí)器中斷0
- SPI_init();
- lcd_Init(); //初始化LCD
- VS_Reset(); //VS1003軟復(fù)位及初始化 其中包括設(shè)置音量
- //myputchar('ResultStr');
- VS_Write_Reg(0x0b,vol,vol); //音量設(shè)置,左右聲道均最大音量
- //printf( "\n*** vol: %s***\n", vol );
- while(1)
- {
- }
- }
-
-
復(fù)制代碼
不完整的代碼下載,求幫助:
新建文件夾.rar
(7.28 KB, 下載次數(shù): 78)
2018-5-7 09:34 上傳
點(diǎn)擊文件名下載附件
|
|