大批量產的程序,可以直接使用。
0.jpg (24.55 KB, 下載次數: 43)
下載附件
2018-4-9 17:33 上傳
單片機源程序如下:
- #include "TypeDefine.H"
- #include "ConstantDefine.h"
- #include "NJW1194.H"
- #include "PublicVariable.H"
- /*******************************************************************************************************************
- 程序名稱: void NJW1194Driver(u8 type, u8 Value1, BYTE Value2)
- 程序功能: 驅動音調輸入等控制
- 入口參數: type,Value
- 出口參數: 無
- 調用子程序:WriteNjw1194(DataTemp)
- ********************************************************************************************************************/
- void NJW1194Driver(u8 type, u8 Value1, u8 Value2)
- {
- u16 DataTemp;
- switch(type)
- {
- case NJW1194_VOLUME:
- if((Value1 <= VOLUME_MIN) || (Value2 <= VOLUME_MIN))
- {
- Value1 = Value2 = VOLUME_MIN;
- }
- else
- {
- if((Value1 + MUSIC_BALANC_0DB) >= MusicBalanc)
- {
- Value1 = Value1 + MUSIC_BALANC_0DB - MusicBalanc;
- }
- else
- {
- Value1 = VOLUME_MIN;
- }
- if((Value2 + MusicBalanc) >= MUSIC_BALANC_0DB)
- {
- Value2 = Value2 + MusicBalanc - MUSIC_BALANC_0DB;
- }
- else
- {
- Value2 = VOLUME_MIN;
- }
- }
-
- if(Value1 > VOLUME_MAX)
- {
- Value1 = VOLUME_MAX;
- }
- if(Value2 > VOLUME_MAX)
- {
- Value2 = VOLUME_MAX;
- }
-
- if(Value1 <= 0)
- {
- DataTemp = 255;
- }
- else
- {
- DataTemp = 255 - Value1 - 55;
- }
- DataTemp = (((DataTemp << 8) & 0xFF00)) | NJW1194_ADD;
- WriteNjw1194(DataTemp);
-
- if(Value2 <= 0)
- {
- DataTemp = 255;
- }
- else
- {
- DataTemp = 255 - Value2 - 55;
- }
- DataTemp = (((DataTemp << 8) & 0xFF00)) | NJW1194_ADD;
- WriteNjw1194(DataTemp | 0x10);
- break;
-
- case INPUT1194_SEL:
- DataTemp = Value1;
- DataTemp = (((DataTemp << 10) & 0xFF00) | 0x20 | NJW1194_ADD);
- WriteNjw1194(DataTemp);
- break;
-
- case TREB1194:
- DataTemp = NJW1194TONE_TAB[Value1];
- if(Value1 > 10)
- {
- DataTemp |= 0x80;
- }
- //if(BypassMode)
- {
- DataTemp |= 0x04;
- }
- /*else
- {
- DataTemp &= 0xFB; //音調控制OFF
- }*/
- DataTemp = (((DataTemp << 8) & 0xFF00) | 0x30 | NJW1194_ADD);
- WriteNjw1194(DataTemp);
- break;
- case BASS1194:
- DataTemp = NJW1194TONE_TAB[Value1];
- if(Value1 > 10)
- {
- DataTemp |= 0x80;
- }
-
- DataTemp = (((DataTemp << 8) & 0xFF00) | 0x40 | NJW1194_ADD);
- WriteNjw1194(DataTemp);
- break;
- default:
- break;
- }
- }
- /***************************************************************************************************************
- 程序名稱: void WriteNjw1194(u16 InData)
- 程序功能: 送數據
- 入口參數: In_Data
- 出口參數: 無
- 調用子程序:Delay_1us(BYTE Count)
- ****************************************************************************************************************/
- void WriteNjw1194(u16 InData)
- {
- u8 Couner;
- NJW1194EnPort(0);
- Delay_us(2);
-
- //_asm("sim");
- for(Couner = 0; Couner < 16; Couner ++)
- {
- NJW1194DataPort(InData & 0x8000);
- Delay_us(2);
- NJW1194ClkPort(0);
-
- Delay_us(2);
- NJW1194ClkPort(1);
- InData = InData << 1;
- }
- //_asm("rim");
- Delay_us(2);
- NJW1194EnPort(1);
- Delay_us(2);
- NJW1194ClkPort(1);
-
- }
- /*******************************************************************************************************************
- 程序名稱: void NJW1194Driver(u8 type, u8 Value1, BYTE Value2)
- 程序功能: 驅動音調輸入等控制
- 入口參數: type,Value
- 出口參數: 無
- 調用子程序:void NJW1194Init(void)
- ********************************************************************************************************************/
- void NJW1194Init(void)
- {
- NJW1194Driver(NJW1194_VOLUME, 0, 0);
- NJW1194Driver(INPUT1194_SEL, 0, 0);
- NJW1194Driver(TREB1194, MUSIC_TREBLE_0DB, MUSIC_TREBLE_0DB);
- NJW1194Driver(BASS1194, MUSIC_BASS_0DB, MUSIC_BASS_0DB);
- }
復制代碼
所有資料51hei提供下載:
NJW1194 code .rar
(1.42 KB, 下載次數: 70)
2018-4-9 15:21 上傳
點擊文件名下載附件
NJW1194 code
|