找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3920|回复: 2
收起左侧

NJW1194量产单片机源程序

[复制链接]
ID:304423 发表于 2018-4-9 15:24 | 显示全部楼层 |阅读模式
大批量产的程序,可以直接使用。
0.jpg

单片机源程序如下:

  1. #include  "TypeDefine.H"
  2. #include "ConstantDefine.h"
  3. #include "NJW1194.H"
  4. #include "PublicVariable.H"




  5. /*******************************************************************************************************************
  6. 程序名称:   void NJW1194Driver(u8 type, u8 Value1, BYTE Value2)
  7. 程序功能:   驱动音调输入等控制                                                                                                                         
  8. 入口参数:   type,Value                                                                       
  9. 出口参数:   无                                                                                                                                         
  10. 调用子程序:WriteNjw1194(DataTemp)                                                                                                                                                 
  11. ********************************************************************************************************************/
  12. void NJW1194Driver(u8 type, u8 Value1, u8 Value2)
  13. {
  14.                 u16 DataTemp;

  15.                 switch(type)
  16.                 {

  17.                                 case NJW1194_VOLUME:   
  18.                                         if((Value1 <= VOLUME_MIN) || (Value2 <= VOLUME_MIN))
  19.                                         {
  20.                                                     Value1 = Value2 = VOLUME_MIN;
  21.                                         }
  22.                                         else
  23.                                         {
  24.                                                     if((Value1 + MUSIC_BALANC_0DB) >= MusicBalanc)
  25.                                                     {
  26.                                                                Value1 = Value1 + MUSIC_BALANC_0DB - MusicBalanc;
  27.                                                     }
  28.                                                     else
  29.                                                     {
  30.                                                                 Value1 = VOLUME_MIN;
  31.                                                     }

  32.                                                     if((Value2 + MusicBalanc) >= MUSIC_BALANC_0DB)
  33.                                                     {
  34.                                                                 Value2 = Value2 + MusicBalanc - MUSIC_BALANC_0DB;
  35.                                                     }
  36.                                                     else
  37.                                                     {
  38.                                                                 Value2 = VOLUME_MIN;
  39.                                                     }       
  40.                                         }
  41.                                        
  42.                                         if(Value1 > VOLUME_MAX)          
  43.                                         {
  44.                                                     Value1 = VOLUME_MAX;
  45.                                         }
  46.                                         if(Value2 > VOLUME_MAX)          
  47.                                         {
  48.                                                     Value2 = VOLUME_MAX;
  49.                                         }

  50.                
  51.                                                                                 if(Value1 <= 0)
  52.                                                                                 {
  53.                                                                                             DataTemp = 255;
  54.                                                                                 }
  55.                                         else
  56.                                         {
  57.                                                 DataTemp = 255 - Value1 - 55;
  58.                                         }
  59.                                         DataTemp = (((DataTemp << 8) & 0xFF00)) | NJW1194_ADD;
  60.                                                                                 WriteNjw1194(DataTemp);
  61.                                        
  62.                                                                                 if(Value2 <= 0)
  63.                                                                                 {
  64.                                                                                             DataTemp = 255;
  65.                                                                                 }                                           
  66.                                                                                 else
  67.                                                                                 {
  68.                                                                                                 DataTemp = 255 - Value2 - 55;
  69.                                                                                 }
  70.                                                                                 DataTemp = (((DataTemp << 8) & 0xFF00)) | NJW1194_ADD;
  71.                                                                                 WriteNjw1194(DataTemp | 0x10);                                    
  72.                                                                                 break;                         
  73.        
  74.                                  case INPUT1194_SEL:          
  75.                                                                                    DataTemp = Value1;
  76.                                                                                    DataTemp = (((DataTemp << 10) & 0xFF00) | 0x20 | NJW1194_ADD);
  77.                                                                                    WriteNjw1194(DataTemp);
  78.                                                                                    break;
  79.                                                           
  80.                                 case TREB1194:          
  81.                                                                                    DataTemp = NJW1194TONE_TAB[Value1];
  82.                                                                                    if(Value1 > 10)
  83.                                                                                 {
  84.                                                                                                      DataTemp |=  0x80;
  85.                                                                                 }
  86.                                                                                 //if(BypassMode)                    
  87.                                                                                 {
  88.                                                                                            DataTemp |= 0x04;
  89.                                                                                 }
  90.                                                                                 /*else
  91.                                                                                 {
  92.                                                                                            DataTemp &= 0xFB;                        //音调控制OFF
  93.                                                                                 }*/
  94.                                                                                    DataTemp = (((DataTemp << 8) & 0xFF00) | 0x30 | NJW1194_ADD);
  95.                                                                                    WriteNjw1194(DataTemp);
  96.                                                                                    break;

  97.                                 case BASS1194:          
  98.                                                                                    DataTemp = NJW1194TONE_TAB[Value1];
  99.                                                                                    if(Value1 > 10)
  100.                                                                                 {
  101.                                                                                                      DataTemp |=  0x80;
  102.                                                                                 }
  103.                                                  
  104.                                                                                    DataTemp = (((DataTemp << 8) & 0xFF00) | 0x40 | NJW1194_ADD);
  105.                                                                                    WriteNjw1194(DataTemp);
  106.                                                                                    break;

  107.                                  default:
  108.                                                         break;
  109.                 }
  110. }

  111. /***************************************************************************************************************
  112. 程序名称:   void        WriteNjw1194(u16 InData)
  113. 程序功能:   送数据                                                                                                                         
  114. 入口参数:   In_Data                                                                       
  115. 出口参数:   无                                                                                                                                         
  116. 调用子程序:Delay_1us(BYTE Count)                                                                                                                                                 
  117. ****************************************************************************************************************/
  118. void        WriteNjw1194(u16 InData)
  119. {       
  120.                 u8 Couner;

  121.                 NJW1194EnPort(0);
  122.                 Delay_us(2);
  123.                
  124.                 //_asm("sim");                       
  125.                 for(Couner = 0; Couner < 16; Couner ++)
  126.                 {
  127.                                 NJW1194DataPort(InData & 0x8000);
  128.                                 Delay_us(2);
  129.                                 NJW1194ClkPort(0);
  130.                                                                        
  131.                                 Delay_us(2);       
  132.                                 NJW1194ClkPort(1);
  133.                                 InData = InData << 1;                                                                         
  134.                 }
  135.                 //_asm("rim");
  136.                 Delay_us(2);
  137.                 NJW1194EnPort(1);
  138.                 Delay_us(2);
  139.                 NJW1194ClkPort(1);
  140.                                                                                   
  141. }

  142. /*******************************************************************************************************************
  143. 程序名称:   void NJW1194Driver(u8 type, u8 Value1, BYTE Value2)
  144. 程序功能:   驱动音调输入等控制                                                                                                                         
  145. 入口参数:   type,Value                                                                       
  146. 出口参数:   无                                                                                                                                         
  147. 调用子程序:void NJW1194Init(void)                                                                                                                                                 
  148. ********************************************************************************************************************/
  149. void NJW1194Init(void)
  150. {
  151.         NJW1194Driver(NJW1194_VOLUME, 0, 0);
  152.         NJW1194Driver(INPUT1194_SEL, 0, 0);
  153.         NJW1194Driver(TREB1194, MUSIC_TREBLE_0DB, MUSIC_TREBLE_0DB);
  154.         NJW1194Driver(BASS1194, MUSIC_BASS_0DB, MUSIC_BASS_0DB);
  155. }
复制代码

所有资料51hei提供下载:
NJW1194 code .rar (1.42 KB, 下载次数: 67)
回复

使用道具 举报

ID:386811 发表于 2018-8-16 18:34 | 显示全部楼层
还有3个H头文件没上传呢。请上传一下,谢谢。
回复

使用道具 举报

ID:48994 发表于 2021-10-15 15:26 | 显示全部楼层
程序不完整呢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表