lc72130的應(yīng)用C程序源代碼
收音頭控制程序(LC72130)
//------------------------------------------------------------------------
/***************************************************
// Tuner, VER 1.0
//
// COPYRIGHT (C) 2002, Enbia Technology Inc.
// Target: 89C5X, PLL IC: LC72130/LC72130M
// AUTHOR: STEVEN LUO
//
// Revision History:
// 2000/12/16 - Original Version
// 2001/4/3 - V2.0, ported to RTX51TNY
//
//------------------------------------------------------------------------
#include
#include
#include
#include
#include "tuner_int.h"
#include "dspenm.h"
//---------------------------------------------------------------------------
// Tuner_Initialize
//---------------------------------------------------------------------------
void Tuner_Initialize(void){
b_amstep = Read_EEPROM(EE_AMSTEP) & 0x01;
band = Read_EEPROM(EE_BAND) & 0x01;
cur_count[band] = Read_EEPROM(EE_CURCNT_LOW) + Read_EEPROM(EE_CURCNT_HIGH) * 0x100;
Tuner_Set_Frequency_Int();
dwPLL_Shadow_IN2 |= BO2_ON; // Unmute
Write_LC72131(MODE_IN1, dwPLL_Shadow_IN1);
Write_LC72131(MODE_IN2, dwPLL_Shadow_IN2);
}
//---------------------------------------------------------------------------
// Tuner_Shutdown
//---------------------------------------------------------------------------
void Tuner_Shutdown(BOOL bonoff){
if (bonoff){
Write_LC72131(MODE_IN1, (dwPLL_Shadow_IN1 & 0x0fffff) | PLL_OFF_REF);
}
else{
Write_LC72131(MODE_IN1, dwPLL_Shadow_IN1);
}
}
//---------------------------------------------------------------------------
// Tuner_Set_AMStep
//---------------------------------------------------------------------------
BOOL Tuner_Set_AMStep(BYTE ctrl){
if (ctrl != INQUIRE){
b_amstep = ! b_amstep;
Write_EEPROM(EE_AMSTEP, b_amstep);
}
return b_amstep;
}
//---------------------------------------------------------------------------
// Tuner_Set_FMStep
//---------------------------------------------------------------------------
BOOL Tuner_Set_FMStep(BYTE ctrl){
if (ctrl != INQUIRE){
b_fmstep = ! b_fmstep;
}
http://bbs.elecfans.com 電子技術(shù)論壇 http://wenjunhu.com 電子發(fā)燒友
無(wú)標(biāo)題
return b_fmstep;
}
//---------------------------------------------------------------------------
// Tuner_Set_Band
//---------------------------------------------------------------------------
BYTE Tuner_Set_Band(BYTE ctrl, WORD *freq){
if (ctrl != INQUIRE){
Temp_Mute(1);
if (band != BAND_AM) band = BAND_AM; else band = BAND_FM; // 0: am, 1: fm
Write_EEPROM(EE_BAND, band);
Tuner_Set_Frequency_Int();
dwPLL_Shadow_IN2 |= BO2_ON; // Unmute
Write_LC72131(MODE_IN1, dwPLL_Shadow_IN1);
Write_LC72131(MODE_IN2, dwPLL_Shadow_IN2);
Temp_Mute(0);
}
*freq = (Count_To_Freq());
return band;
}
//---------------------------------------------------------------------------
// Tuner_Set_Mono
//---------------------------------------------------------------------------
BOOL Tuner_Set_Mono(BYTE ctrl){
if (ctrl != INQUIRE){
Temp_Mute(1);
bST_MONO = ! bST_MONO;
dwPLL_Shadow_IN2 &= ~BO3_ON;
if (bST_MONO) {dwPLL_Shadow_IN2 |= BO3_ON;} // Stereo
// Write_LC72131(MODE_IN1, dwPLL_Shadow_IN1);
Write_LC72131(MODE_IN2, dwPLL_Shadow_IN2);
Temp_Mute(0);
}
return bST_MONO;
}
//---------------------------------------------------------------------------
// Tuner_Save_Station
//---------------------------------------------------------------------------
void Tuner_Save_Station(BYTE station){
BYTE ee_addr;
if (station > MAX_PRESET_NUMBER) station = MAX_PRESET_NUMBER;
ee_addr = EE_PRESET_BASE + band * (MAX_PRESET_NUMBER + 1) * 2 + station *2;
Write_EEPROM(ee_addr, cur_count[band]/0x100); Write_EEPROM(ee_addr +1, cur_count[band]&0xff);
}
//---------------------------------------------------------------------------
// Tuner_Restore_Station
//---------------------------------------------------------------------------
WORD Tuner_Restore_Station(BYTE station){
BYTE ee_addr;
Temp_Mute(1);
if (station > MAX_PRESET_NUMBER) station = MAX_PRESET_NUMBER;
http://bbs.elecfans.com 電子技術(shù)論壇 http://wenjunhu.com 電子發(fā)燒友
無(wú)標(biāo)題
ee_addr = EE_PRESET_BASE + band * (MAX_PRESET_NUMBER + 1) * 2 + station *2;
cur_count[band]= Read_EEPROM(ee_addr) * 0x100 + Read_EEPROM(ee_addr +1);
Tuner_Set_Frequency_Int();
dwPLL_Shadow_IN2 |= BO2_ON; // Unmute
Write_LC72131(MODE_IN1, dwPLL_Shadow_IN1);
Write_LC72131(MODE_IN2, dwPLL_Shadow_IN2);
// save the current count
Write_EEPROM(EE_CURCNT_LOW, cur_count[band] & 0xff); Write_EEPROM(EE_CURCNT_HIGH, cur_count[band] >> 8);
Temp_Mute(0);
return (Count_To_Freq());
}
//---------------------------------------------------------------------------
// Tuner_Set_Frequency
//---------------------------------------------------------------------------
WORD Tuner_Set_Frequency(BYTE ctrl, WORD freq){
BAND_INFO code *pBInfo;
switch(band){
case BAND_AM:
if (b_amstep) pBInfo = &BandInfo_AM_10KHz; else pBInfo = &BandInfo_AM_9KHz; break;
case BAND_FM:
if (b_fmstep) pBInfo = &BandInfo_FM_100KHz; else pBInfo = &BandInfo_FM_50KHz; break;
case BAND_SW:
break;
}
switch (ctrl){
case INQUIRE:
return (Count_To_Freq()); break;
case UP:
cur_count[band] += pBInfo -> CntStep; break;
case DOWN:
cur_count[band] -= pBInfo -> CntStep; break;
case SET:
if ((band == BAND_AM) || (band == BAND_SW)){
//return cur_count[band] * pBInfo -> FRef - 450;
cur_count[band] = (freq + 450) / (pBInfo -> FRef);
}
else {
//return cur_count[band] * ((FM_FREF *100)/1000) - 1070;
cur_count[band] = ((freq + 1070) * 1000) / (FM_FREF *100);
}
break;
}
Tuner_Set_Frequency_Int();
dwPLL_Shadow_IN2 |= BO2_ON; // Unmute
Write_LC72131(MODE_IN1, dwPLL_Shadow_IN1);
Write_LC72131(MODE_IN2, dwPLL_Shadow_IN2);
// save the current count
Write_EEPROM(EE_CURCNT_LOW, cur_count[band] & 0xff); Write_EEPROM(EE_CURCNT_HIGH, cur_count[band] >> 8);
return (Count_To_Freq());
}
//---------------------------------------------------------------------------
// Tuner_Step
//---------------------------------------------------------------------------
WORD Tuner_Step(BYTE ctrl){
無(wú)標(biāo)題
if (ctrl != SET)return Tuner_Set_Frequency(ctrl, 0);
}
//---------------------------------------------------------------------------
// Tuner_Scan
//---------------------------------------------------------------------------
int Tuner_Scan(BYTE ctrl){
BAND_INFO code *pBInfo;
WORD temp;
register BYTE j;
switch(band){
case BAND_AM:
if (b_amstep) pBInfo = &BandInfo_AM_10KHz; else pBInfo = &BandInfo_AM_9KHz; break;
case BAND_FM:
if (b_fmstep) pBInfo = &BandInfo_FM_100KHz; else pBInfo = &BandInfo_FM_50KHz; break;
case BAND_SW:
break;
}
if (ctrl == INQUIRE){
return (Count_To_Freq());
}
else if (ctrl == UP){
cur_count[band] += pBInfo -> CntStep;
}
else if (ctrl == DOWN){
cur_count[band] -= pBInfo -> CntStep;
}
// Temp_Mute(1);
Tuner_Set_Frequency_Int();
Write_LC72131(MODE_IN1, dwPLL_Shadow_IN1);
Write_LC72131(MODE_IN2, dwPLL_Shadow_IN2);
// Wait PLL Lock -----------------------------------------------------------
Pause(1); //
for (j=0; j<255; j++){
if (PIN_TUNER_DO)break;
}
dwPLL_Shadow_IN2 &= DO_MODE_MASK; // set DO mode, end uc
dwPLL_Shadow_IN2 |= DO_MODE_END_UC;
dwPLL_Shadow_IN1 |= CTE_ON; // IF count start
Write_LC72131(MODE_IN1, dwPLL_Shadow_IN1);
Write_LC72131(MODE_IN2, dwPLL_Shadow_IN2);
// Wait Gate over -----------------------------------------------------
for (j=0; j<10; j++){
if (!PIN_TUNER_DO) break; // break when gate ends
os_wait2(K_TMO, 1);
}
// Gate time over
temp = Read_72131() & 0x0fffff;
dwPLL_Shadow_IN2 |= BO2_ON; // Unmute
Write_LC72131(MODE_IN2, dwPLL_Shadow_IN2);
// save the current count
Write_EEPROM(EE_CURCNT_LOW, cur_count[band] & 0xff); Write_EEPROM(EE_CURCNT_HIGH, cur_count[band] >> 8);
if ((temp >= pBInfo -> IFCntMin) && (temp <= pBInfo -> IFCntMax)){
return -(Count_To_Freq());
}
else {
return (Count_To_Freq());
}
http://bbs.elecfans.com 電子技術(shù)論壇 http://wenjunhu.com 電子發(fā)燒友
無(wú)標(biāo)題
}
//---------------------------------------------------------------------------
// Tuner_Get_Stereo
//---------------------------------------------------------------------------
BOOL Tuner_Get_Stereo(void){
if (band == BAND_FM) {
return (!(Read_72131() & 0x800000));
}
else
return 0;
}
//---------------------------------------------------------------------------
// Tuner_Set_Frequency_Int
//---------------------------------------------------------------------------
static void Tuner_Set_Frequency_Int(void){
BAND_INFO code *pBInfo;
switch(band){
case BAND_AM:
if (b_amstep) pBInfo = &BandInfo_AM_10KHz; else pBInfo = &BandInfo_AM_9KHz; break;
case BAND_FM:
if (b_fmstep) pBInfo = &BandInfo_FM_100KHz; else pBInfo = &BandInfo_FM_50KHz; break;
case BAND_SW:
break;
}
dwPLL_Shadow_IN1 = 0; dwPLL_Shadow_IN2 = 0;
// Check Boundary -----------------------------------------------------
if (cur_count[band] > pBInfo -> CntMax){
cur_count[band] = pBInfo -> CntMin; // Cycling
}
else if (cur_count[band] < pBInfo -> CntMin){
cur_count[band] = pBInfo -> CntMax; // Cycling
}
// IN2 Mode -----------------------------------------------------------
dwPLL_Shadow_IN2 |= GATE_TIME_32MS; // Gate Time = 4ms
dwPLL_Shadow_IN2 |= 0x100000; // IFS
if (band == BAND_AM){ // Set Band
dwPLL_Shadow_IN2 |= BO1_ON;
}
else if (band == BAND_FM){
dwPLL_Shadow_IN2 |= BO4_ON;
}
if (!bST_MONO) {dwPLL_Shadow_IN2 |= BO3_ON;} // Stereo
// dwPLL_Shadow_IN2 &= DO_MODE_MASK;
dwPLL_Shadow_IN2 |= DO_MODE_UNLOCK; //
// IN1 Mode -----------------------------------------------------------
if (band == BAND_AM){ // Set Frequency
dwPLL_Shadow_IN1 |= (cur_count[band] << 4);
}
else {
dwPLL_Shadow_IN1 |= cur_count[band];
}
dwPLL_Shadow_IN1 |= pBInfo -> DivMode; // Set DIv Mode
dwPLL_Shadow_IN1 |= pBInfo -> DivRefPara; // Set DIV Ref Para
}
//---------------------------------------------------------------------------
// Count_To_Freq
//---------------------------------------------------------------------------
static WORD Count_To_Freq(void){
BAND_INFO code *pBInfo;
http://bbs.elecfans.com 電子技術(shù)論壇 http://wenjunhu.com 電子發(fā)燒友
無(wú)標(biāo)題
switch(band){
case BAND_AM:
if (b_amstep) pBInfo = &BandInfo_AM_10KHz; else pBInfo = &BandInfo_AM_9KHz; break;
case BAND_FM:
if (b_fmstep) pBInfo = &BandInfo_FM_100KHz; else pBInfo = &BandInfo_FM_50KHz; break;
case BAND_SW:
break;
}
if ((band == BAND_AM) || (band == BAND_SW)){
return cur_count[band] * pBInfo -> FRef - 450;
}
else {
return cur_count[band] * ((FM_FREF *100)/1000) - 1070;
}
}
#define LC72131_DELAY() {_nop_(); _nop_(); _nop_();}
//---------------------------------------------------------------------------
// Write_LC72131_Addr
// addr: the addr of the control register
// value: the valude to set to
//---------------------------------------------------------------------------
static void Write_LC72131_Addr(BYTE addr){
register BYTE i;
PIN_TUNER_CE = 0;
PIN_TUNER_CL = 1;
LC72131_DELAY();
for (i = 8; i>0; --i){
PIN_TUNER_CL = 0;
LC72131_DELAY();
if (addr & 0x01) PIN_TUNER_DI=1; else PIN_TUNER_DI=0;
addr >>= 1;
LC72131_DELAY();
PIN_TUNER_CL = 1;
LC72131_DELAY();
}
}
//---------------------------------------------------------------------------
// Write_LC72131
// addr: the addr of the control register
// value: the valude to set to
//---------------------------------------------------------------------------
static void Write_LC72131(BYTE addr, DWORD value){
register BYTE i;
// Send the addr byte first ------------//
Write_LC72131_Addr(addr);
PIN_TUNER_CE = 1;
LC72131_DELAY();
// Send the control value in following------------//
for (i = 24; i>0; --i){
PIN_TUNER_CL = 0;
LC72131_DELAY();
if (value & 0x01) PIN_TUNER_DI=1; else PIN_TUNER_DI=0;
value >>= 1;
LC72131_DELAY();
PIN_TUNER_CL = 1;
http://bbs.elecfans.com 電子技術(shù)論壇 http://wenjunhu.com 電子發(fā)燒友
無(wú)標(biāo)題
LC72131_DELAY();
}
PIN_TUNER_CE = 0;
}
//---------------------------------------------------------------------------
// Read_LC72131
// addr: the addr of the control register
// return value
//---------------------------------------------------------------------------
static DWORD Read_72131(void){
register BYTE i;
DWORD temp = 0;
// Send the addr byte first ------------//
Write_LC72131_Addr(MODE_OUT);
PIN_TUNER_CE = 1;
LC72131_DELAY();
// read the value dword ------------//
for (i=24; i>0; --i){
PIN_TUNER_CL = 0;
LC72131_DELAY();
temp <<= 1;
if (PIN_TUNER_DO) temp |= 1;
PIN_TUNER_CL = 1;
LC72131_DELAY();
}
PIN_TUNER_CE = 0;
return temp;
}
頭文件如下:
#ifndef __TUNER_INT_H__
#define __TUNER_INT_H__
#include
// ----------------------------------------------------------------
// Control Pins
// ----------------------------------------------------------------
extern BOOL PIN_TUNER_DO;
extern BOOL PIN_TUNER_CL;
extern BOOL PIN_TUNER_DI;
extern BOOL PIN_TUNER_CE;
// use 24c02, 0x80 - 0xff
enum TUNER_EE {
EE_AMSTEP = 0x80,
EE_BAND,
EE_CURCNT_LOW,
EE_CURCNT_HIGH,
EE_PRESET_BASE // To store the preset station
};
#define MAX_PRESET_NUMBER 0x29 // can store 20 channels for each band
// -------------------------------------------------------------
// Tuner Modle: T-989 of Guangzhou Youshen
// -------------------------------------------------------------
// work mode type define:
#define MODE_IN1 0x28
#define MODE_IN2 0x29
http://bbs.elecfans.com 電子技術(shù)論壇 http://wenjunhu.com 電子發(fā)燒友
無(wú)標(biāo)題
#define MODE_OUT 0x2a
#define CTE_ON 0x040000
#define IOC1 0x000001
#define IOC2 0x000002
#define IO1 0x000004
#define IO2 0x000008
#define BO1_ON 0x000010
#define BO2_ON 0x000020
#define BO3_ON 0x000040
#define BO4_ON 0x000080
#define DO_MODE_UNLOCK 0x000200
#define DO_MODE_END_UC 0x000400
#define DO_MODE_MASK ~0x000e00
// ----------------------------------------
// DEVIDER mode type define
// ----------------------------------------
#define AM_DV_MODE 0x000000 // 16 BIT
#define SW_DV_MODE 0x020000 // 20
#define FM_DV_MODE 0x020000 // 20 BIT SWALLOW
#define AM_DV_REF_9KHz 0x900000 // 9 KHZ
#define AM_DV_REF_10KHz 0x800000 // 10 KHZ
#define SW_DV_REF 0xa00000 // 5 KHZ
#define FM_DV_REF 0x300000 // 25 KHZ
#define PLL_OFF_REF 0xe00000 // PLL inhibit and OSC stop.
// ----------------------------------------
// IF Count
// ----------------------------------------
#define GATE_TIME 32
#define GATE_TIME_32MS 0x020000 //
#define GATE_TIME_4MS 0x000000
#define GATE_TIME_8MS 0x010000
#define IFS 0x100000
#define AM_IF_CNT 450*GATE_TIME // 450KH;
#define AM_IF_CNT_MIN AM_IF_CNT - AM_IF_CNT*0.01
#define AM_IF_CNT_MAX AM_IF_CNT + AM_IF_CNT*0.01
#define SW_IF_CNT 450*GATE_TIME // 450KH;
#define SW_IF_CNT_MIN SW_IF_CNT - SW_IF_CNT*0.01
#define SW_IF_CNT_MAX SW_IF_CNT + SW_IF_CNT*0.01
#define FM_IF_CNT 10700*GATE_TIME // 10.7 MH;
#define FM_IF_CNT_MIN FM_IF_CNT - FM_IF_CNT*0.01
#define FM_IF_CNT_MAX FM_IF_CNT + FM_IF_CNT*0.01
// ----------------------------------------
// Frequence Refrence
// ----------------------------------------
#define AM_FREF_9KHz 9 // 9khz
#define AM_FREF_10KHz 10 // 10khz
#define SW_FREF 5 // 5khz
#define FM_FREF (25*2) // Fref=25*2 khz
// Frequence Range
#define AM_MIN_9KHz 522 // KHZ
#define AM_MAX_9KHz 1611 // KHZ
#define AM_MIN_10KHz 530 // KHZ
#define AM_MAX_10KHz 1610 // KHZ
#define SW_MIN 1700 // KHZ
#define SW_MAX 25000 // KHZ
第 8 頁(yè)
http://bbs.elecfans.com 電子技術(shù)論壇 http://wenjunhu.com 電子發(fā)燒友
無(wú)標(biāo)題
#define FM_MIN 8700 // 10KHZ
#define FM_MAX 10800 // 10KHZ
// Frequence Counter Range
#define AM_CNT_MIN_9KHz ((AM_MIN_9KHz + 450)/9)
#define AM_CNT_MAX_9KHz ((AM_MAX_9KHz + 450)/9)
#define AM_CNT_MIN_10KHz ((AM_MIN_10KHz + 450)/10)
#define AM_CNT_MAX_10KHz ((AM_MAX_10KHz + 450)/10)
#define SW_CNT_MIN ((SW_MIN + 450)/SW_FREF)
#define SW_CNT_MAX ((SW_MAX + 450)/SW_FREF)
#define FM_CNT_MIN ((FM_MIN + 1070)/((FM_FREF *100)/1000))
#define FM_CNT_MAX ((FM_MAX + 1070)/((FM_FREF *100)/1000))
// ----------------------------------------
// Search Step
// ----------------------------------------
#define AM_CNT_STEP 1 // F_step=1*5khz
#define SW_CNT_STEP 1 // F_step=1*5khz
#define FM_CNT_STEP_100KHz 2 // F_step=2*50khz when Fref=25khz
#define FM_CNT_STEP_50KHz 1 // F_step=50khz when Fref=25khz
typedef struct {
DWORD DivMode;
DWORD DivRefPara;
WORD IFCntMax;
WORD IFCntMin;
BYTE FRef;
WORD CntMax;
WORD CntMin;
BYTE CntStep;
}BAND_INFO;
enum {
BAND_AM,
BAND_FM,
BAND_SW
};
static BAND_INFO code BandInfo_AM_9KHz = {AM_DV_MODE, AM_DV_REF_9KHz, AM_IF_CNT_MAX, AM_IF_CNT_MIN,
AM_FREF_9KHz, AM_CNT_MAX_9KHz, AM_CNT_MIN_9KHz, AM_CNT_STEP};
static BAND_INFO code BandInfo_AM_10KHz = {AM_DV_MODE, AM_DV_REF_10KHz, AM_IF_CNT_MAX, AM_IF_CNT_MIN,
AM_FREF_10KHz, AM_CNT_MAX_10KHz, AM_CNT_MIN_10KHz, AM_CNT_STEP};
static BAND_INFO code BandInfo_FM_100KHz = {FM_DV_MODE, FM_DV_REF, FM_IF_CNT_MAX, FM_IF_CNT_MIN, FM_FREF,
FM_CNT_MAX, FM_CNT_MIN, FM_CNT_STEP_100KHz};
static BAND_INFO code BandInfo_FM_50KHz = {FM_DV_MODE, FM_DV_REF, FM_IF_CNT_MAX, FM_IF_CNT_MIN, FM_FREF,
FM_CNT_MAX, FM_CNT_MIN, FM_CNT_STEP_50KHz};
static BAND_INFO code BandInfo_SW = {SW_DV_MODE, SW_DV_REF, SW_IF_CNT_MAX, SW_IF_CNT_MIN, SW_FREF,
SW_CNT_MAX, SW_CNT_MIN, SW_CNT_STEP};
// ----------------------------------------------------------------
// Variables
// ----------------------------------------------------------------
static DWORD idata dwPLL_Shadow_IN1;
static DWORD idata dwPLL_Shadow_IN2;
static WORD idata cur_count[3]; // Current count
static BOOL bST_MONO;
static BOOL b_amstep;
static BOOL b_fmstep = 1;
static BYTE idata band;
// ----------------------------------------------------------------
// external functions
// ----------------------------------------------------------------
http://bbs.elecfans.com 電子技術(shù)論壇 http://wenjunhu.com 電子發(fā)燒友
無(wú)標(biāo)題
static void Tuner_Set_Frequency_Int(void);
static void Write_LC72131_Addr(BYTE addr);
static DWORD Read_72131(void);
static void Write_LC72131(BYTE addr, DWORD value);
static WORD Count_To_Freq(void);
extern void Pause(BYTE);
extern BOOL Write_EEPROM(BYTE, BYTE);
extern BYTE Read_EEPROM(BYTE);
extern void Temp_Mute(BOOL bOnOff);
#endif
lc72130的應(yīng)用C程序源代碼
- LC(83578)
相關(guān)推薦
lc72130 pdf datasheet
The LC72130 and LC72130M are PLL frequencysynthesizers for use in tuners in radio cassette
2008-07-31 11:38:5137
mcp2515 c程序源代碼
mcp2515 c程序源代碼
;----------------------------------------------------------------------;MCP2510.INC; Description:&
2008-06-06 21:47:47662
ad9850-c程序-設(shè)計(jì)源代碼
ad9850-c程序-源代碼
#include #includefloat l,m,n,q,z;double k; //-----------------------定義管腳---------
2008-04-10 13:12:171363
24C08程序源代碼
24C08程序源代碼:/*********************************************** 24C08.C 判斷寫(xiě)入EEPROM的數(shù)據(jù)是否和讀出的數(shù)據(jù)
2009-09-13 15:00:31130
解密程序源代碼
解密程序源代碼源程序5;***********************************************************; File: system.ASM; Taget
2010-02-09 15:08:1638
sle4442程序(ic卡程序,C語(yǔ)言源代碼)
sle4442程序(ic卡程序,C語(yǔ)言源代碼)
//*********************FileName:Main.c**
2008-09-22 17:33:405768
PIC單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)例及源代碼
PIC單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)例精粹源代碼,圖書(shū)的配套源代碼資料分享。
2022-04-20 15:16:2616
C51讀寫(xiě)AT24C04源代碼及AT24C04測(cè)試程序
本文主要介紹了C51讀寫(xiě)AT24C04源代碼及AT24C04測(cè)試程序。
2018-04-04 12:01:4910850
電動(dòng)車上的蹺蹺板程序源代碼C語(yǔ)言程序免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是電動(dòng)車上的蹺蹺板程序源代碼C語(yǔ)言程序免費(fèi)下載。
2019-05-27 17:51:3911
C51單片機(jī)相關(guān)的LCD驅(qū)動(dòng)程序源代碼
C51單片機(jī)相關(guān)的LCD驅(qū)動(dòng)程序源代碼,可供參考調(diào)試
2016-02-22 18:14:2319
報(bào)警產(chǎn)生器小程序 (C語(yǔ)言+匯編程序源代碼)
報(bào)警產(chǎn)生器小程序 (C語(yǔ)言+匯編程序源代碼):
匯編源代碼:flag bit 00h  
2009-09-13 14:58:5091
一些基礎(chǔ)的C語(yǔ)言程序及其源代碼資料合集免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是一些基礎(chǔ)的C語(yǔ)言程序及其源代碼資料合集免費(fèi)下載。
2020-05-21 08:00:003
nrf905射頻發(fā)送電路圖和C程序源代碼
nrf905射頻發(fā)送電路圖和C程序源代碼,很好設(shè)計(jì)資料,快來(lái)學(xué)習(xí)吧。
2016-05-09 16:33:2326
單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例基于+仿真-源代碼
51CTO下載-單片機(jī)C語(yǔ)言程序設(shè)計(jì)實(shí)訓(xùn)100例基于+仿真-源代碼部分
2016-06-16 18:21:2221
AT89C2051單片機(jī)時(shí)鐘程序源代碼
AT89C2051單片機(jī)時(shí)鐘程序源代碼:AT89C2051組成的時(shí)鐘電路原理圖
2010-03-06 10:14:18200
C#編程源代碼規(guī)范
C#編程源代碼規(guī)范
注:目的:為了保證開(kāi)發(fā)隊(duì)伍中的所有程序員都能夠理解其他人編寫(xiě)的代碼。
參考: 《華為編碼規(guī)范和范例》
《凱潤(rùn)軟件
2010-02-09 16:11:5681
C語(yǔ)言的源代碼文件和目標(biāo)文件與可執(zhí)行文件的詳細(xì)介紹
1、源代碼文件
存放程序代碼的文件,即我們編輯代碼的文件,稱為源代碼文件。
C語(yǔ)言源程序文件的擴(kuò)展名為“.c”。源代碼文件是相對(duì)目標(biāo)文件和可執(zhí)行文件而言的,一般是用高級(jí)語(yǔ)言寫(xiě)出來(lái)的。
2020-02-18 11:52:476909
用來(lái)記錄最大數(shù)的序號(hào)的C語(yǔ)言程序源代碼資料免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是用來(lái)記錄最大數(shù)的序號(hào)的C語(yǔ)言程序源代碼資料免費(fèi)下載。
2018-12-05 08:00:0010
多個(gè)51單片機(jī)C語(yǔ)言程序設(shè)計(jì)源代碼的詳細(xì)資料合集
本文檔的主要內(nèi)容詳細(xì)介紹的是多個(gè)51單片機(jī)C語(yǔ)言程序設(shè)計(jì)源代碼的詳細(xì)資料合集。
2019-03-11 08:00:0019
C#網(wǎng)絡(luò)與通信方面程序編程源代碼的詳細(xì)資料合集免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是C#網(wǎng)絡(luò)與通信方面程序編程源代碼的詳細(xì)資料合集免費(fèi)下載。
2019-03-13 16:42:5027
STM32F4的I2C總線的詳細(xì)源代碼程序資料免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F4的I2C總線的詳細(xì)源代碼程序資料免費(fèi)下載。
2018-09-04 15:38:0048
cy7c68013開(kāi)發(fā)usb固件程序源代碼
cy7c68013開(kāi)發(fā)usb固件程序源代碼,可實(shí)現(xiàn)主機(jī)和借口MASTER的控制命令和數(shù)據(jù)的傳輸。
2009-04-11 16:56:5929
DES算法程序源代碼
DES算法程序源代碼:The file MacDES.sit.hqx is a $15 shareware program by John Powers,written in 1985 for Macintoshes. It is extremely slow.
2010-02-09 11:20:3450
LC7461遙控解碼子程序源代碼
//遙控解碼子程序,LC7461,用戶碼為11C//external interrupt0void isr_4(){
unsigned char r_count;//定義解碼的個(gè)數(shù) unsigned long use_data=0;//定義16位的用戶碼,只用到13位
2008-11-28 11:00:4145
《政府安全計(jì)劃源代碼協(xié)議》程序指南
《政府安全計(jì)劃源代碼協(xié)議》程序指南
、承辦機(jī)構(gòu)申請(qǐng)承辦機(jī)構(gòu)申請(qǐng)?jiān)L問(wèn)源代碼,需向協(xié)調(diào)機(jī)構(gòu)提交以下材料:•源代碼查看申請(qǐng)表•國(guó)家有關(guān)
2010-02-09 15:46:206
紅外源程序源代碼
紅外源程序源代碼
/*遙控接收在此中斷程序內(nèi)完成//遙控碼放在ir_da[]中/************************************//* Interrupt for IR subroutine *//*&nbs
2010-02-24 14:35:0947
C/C++源代碼靜態(tài)監(jiān)測(cè)設(shè)計(jì)實(shí)現(xiàn)
為了檢測(cè)出C/C++源代碼程序中常見(jiàn)的運(yùn)行時(shí)錯(cuò)誤,設(shè)計(jì)了一個(gè)靜態(tài)檢測(cè)系統(tǒng)。該系統(tǒng)通過(guò)詞法分析、語(yǔ)法分析、語(yǔ)義分析來(lái)獲取程序的語(yǔ)法樹(shù)。然后系統(tǒng)的檢測(cè)程序將會(huì)分析語(yǔ)法樹(shù)的每
2011-06-21 15:06:2444
SAA3010紅外遙控接收的C程序源代碼
SAA3010紅外遙控接收的C程序源代碼
// 用單片機(jī)進(jìn)行紅外遙控接收已經(jīng)是很平常的應(yīng)用了,基本上稍懂單片機(jī)就可以自己編////  
2008-11-28 10:26:042448
MTK1389的DVD方案C語(yǔ)言程序源代碼
MTK1389的DVD方案程序C語(yǔ)言源代碼,自已根據(jù)需要修改界面什么的就可以成自已的產(chǎn)了。MTK1389 the DVD program source code, customers can
2009-02-25 12:02:17160
探析源代碼如何在硬件上運(yùn)行
C語(yǔ)言的編譯鏈接過(guò)程要把我們編寫(xiě)的一個(gè)c程序(源代碼)轉(zhuǎn)換成可以在硬件上運(yùn)行的程序(可執(zhí)行代碼),需要進(jìn)行編譯和鏈接。
2019-01-07 16:22:223309
小波變換進(jìn)行圖像壓縮matlab源代碼/源程序
小波變換進(jìn)行圖像壓縮matlab源代碼/源程序:%removes all variables, globals, functions and%MEX links(MATLAB loads
2010-02-08 15:03:16341
演示USB設(shè)備基本操作的程序源代碼
演示USB設(shè)備基本操作的程序源代碼:
// busbdev.h - include file for device class of basic USB example
2009-04-11 17:09:5122
C編譯器的設(shè)計(jì)文檔與源代碼
C-編譯器的設(shè)計(jì)文檔與源代碼:本壓縮包包含了C-編譯器的設(shè)計(jì)文檔與源代碼,供學(xué)習(xí)參考。 整體框架. 3 詞法分析. 3 Class CTokenizer 3 Cla
2010-02-09 11:13:5645
基于單片機(jī)AT89C52和DS1302的溫度時(shí)間顯示方案含源代碼程序
電子發(fā)燒友網(wǎng)站提供《基于單片機(jī)AT89C52和DS1302的溫度時(shí)間顯示方案含源代碼程序.zip》資料免費(fèi)下載
2018-01-02 11:34:1917
常用算法程序集 (C語(yǔ)言描述)(第三版)+源代碼修改
常用算法程序集 (C語(yǔ)言描述)(第三版)+源代碼修改:1.書(shū)中所有的算法均用C語(yǔ)言描述,并存放在一張光盤(pán)上。2.在與本書(shū)配套的光盤(pán)中,按章存放了書(shū)中所有的算法函數(shù)程序以及例子
2010-02-08 18:22:38110
汽車車牌識(shí)別系統(tǒng)的C++源代碼和工程文件免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是汽車車牌識(shí)別程序的C++源代碼和工程文件免費(fèi)下載。
2019-09-20 08:00:002
C51單片機(jī)程序之NOKIA5110液晶顯示的源代碼資料免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是C51單片機(jī)程序之NOKIA5110液晶顯示的源代碼資料免費(fèi)下載。
2019-01-03 08:00:0036
Java程序設(shè)計(jì)經(jīng)典教程(源代碼)
Java程序設(shè)計(jì)經(jīng)典教程(源代碼): 基于swing的Java可視化軟件開(kāi)發(fā)在代碼編輯區(qū)中生成如下所示程序框架代碼:package pack_six;
import javax.swing.JPanel;import java.awt.Frame;import jav
2008-12-08 17:37:3887
GNU C庫(kù)的源代碼
包含GNU C 庫(kù)的源代碼。請(qǐng)參閱文件“version.h”了解您擁有的發(fā)行版本。 GNU C庫(kù)是所有 GNU 系統(tǒng)的標(biāo)準(zhǔn)系統(tǒng) C 庫(kù),并且是構(gòu)成 GNU 系統(tǒng)的重要組成部分。它提供了用 C 和 C
2022-03-18 10:26:163
UDP及TCP通信的程序設(shè)計(jì)和源代碼免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是UDP及TCP通信的程序設(shè)計(jì)和源代碼免費(fèi)下載。
2020-01-08 15:12:4133
easyARM所有試驗(yàn)程序源代碼與實(shí)驗(yàn)教程免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是easyARM所有試驗(yàn)程序源代碼與實(shí)驗(yàn)教程免費(fèi)下載。
2019-08-05 08:00:000
java實(shí)用程序設(shè)計(jì)100例(含源代碼)
java實(shí)用程序設(shè)計(jì)100例,含有豐富的源代碼實(shí)例。
2008-12-06 12:26:37136
PHP程序設(shè)計(jì)高級(jí)教程的源代碼合集免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是PHP程序設(shè)計(jì)高級(jí)教程的源代碼合集免費(fèi)下載。
2019-12-17 08:00:0034
Linux中應(yīng)用程序PING的源代碼免費(fèi)下載
本文檔的主要內(nèi)容詳細(xì)介紹的是Linux中應(yīng)用程序PING的源代碼免費(fèi)下載。
2019-10-18 17:46:4213
紅外源程序為NEC的源代碼
紅外源程序為NEC的源代碼:/*遙控接收在此中斷程序內(nèi)完成//遙控碼放在ir_da[]中/************************************//* 
2010-02-08 16:51:0945
評(píng)論
查看更多