資源簡介
用C語言編寫的數字電位器X9C102/103/104的調節程序,子函數分別為up(command)和down(command)
代碼片段和文件信息
//文件名: X9C103.c
//
//編寫人: LD
//
//編寫時間:2009/08/12
//
//目標器件:?C8051F410
//
//編譯工具:?Keil
//
//程序說明: 此程序通過I/O口P1^3P1^4和P1^5調節數字電位器X9C102/103/104的阻值
//X9C103_CS=P1^3; X9C103_INC=P1^4; X9C103_UD=P1^5;
//------------------------------------------------------------------------------------
//?Includes
//------------------------------------------------------------------------------------
#include?????????????????????//?SFR?declarations
#include?
sbit?X9C103_CS=P1^3;
sbit?X9C103_INC=P1^4;
sbit?X9C103_UD=P1^5;
//------------------------------------------------------------------------------------
//?Function?PROTOTYPES
//------------------------------------------------------------------------------------
void?PORT_Init?(void);
void?Oscillator_Init();
void?up(unsigned?char?command);
void?down(unsigned?char?command);
/***************************************************************************************
函數名稱: void?sleep_ms(WORD?count)
功能描述: 延時
輸入: WORD?count(所要延時的長度)
輸出: 無
全局變量: 無
調用模塊: _nop_()
***************************************************************************************/
void?sleep_ms(unsigned?char?count)
{
??unsigned?char?iijj;
??for(ii=0;ii ????{
??????for(jj=0;jj<250;jj++)
??_nop_();
????}
}
//------------------------------------------------------------------------------------
//?MAIN?Routine
//------------------------------------------------------------------------------------
void?main()
{ char?a;
PCA0MD????&=?~0x40; //禁止看門狗
Oscillator_Init(); //時鐘初始化
PORT_Init(); //I/O初始化
//while(1)
// {
for(a=0;a<20;a++)
{
?down(1);
?sleep_ms(200);
// ?down(1);
// ?sleep_ms(5);
}
// }
while(1);
}
/***************************************************************************************
函數名稱: void?PORT_Init(void)
功能描述: 初始化I/O
輸入: 無
輸出: 無
全局變量: XBR1
調用模塊: 無
***************************************************************************************/
void?PORT_Init?(void)
{
???XBR1=?0x40;???/*使能交叉開關和弱上拉*/
}
/***************************************************************************************
函數名稱: void?Oscillator_Init()
功能描述: 初始化Oscillator時鐘為49MHz
輸入: 無
輸出: 無
全局變量:
調用模塊: 無
***************************************************************************************/
void?Oscillator_Init()
{
????int?i?=?0;
????PFE0CN????&=?~0x20;
????FLSCL?????=?0x10;
????PFE0CN????|=?0x20;
????CLKMUL????=?0x80;
????for?(i?=?0;?i?20;?i++);????//?Wait?5us?for?initialization
????CLKMUL????|=?0xC0;
????while?((CLKMUL?&?0x20)?==?0);
????CLKSEL????=?0x02;
????OSCICN????=?0x87;
}
/***************************************************************************************
函數名稱: void?up(unsigned?char?command)
功能描述: 調節增大數字電位器X9C103的阻值
輸入: command
輸出: 無
全局變量: 無
調用模塊: 無
備注: 兩次調用調節數字電位器函數之間的間隔應大于20ms
***************************************************************************************/
void?up(unsigned?char?command)
{
unsig
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????6376??2007-09-11?14:50??X9C103\STARTUP.A51
?????文件??????14062??2009-08-21?22:28??X9C103\STARTUP.LST
?????文件???????5085??2009-08-20?21:04??X9C103\X9C103.c
?????文件????????213??2009-08-22?10:08??X9C103\Spwm.plg
?????文件?????????58??2009-08-21?22:28??X9C103\Spwm.lnp
?????文件???????8478??2009-08-21?22:28??X9C103\Spwm.M51
?????文件????????702??2009-08-21?22:28??X9C103\Spwm.hex
?????文件????????749??2009-08-21?22:28??X9C103\STARTUP.OBJ
?????文件??????10036??2009-08-21?22:28??X9C103\X9C103.LST
?????文件???????6029??2009-08-21?22:28??X9C103\X9C103.OBJ
?????文件???????6137??2009-08-21?22:28??X9C103\Spwm
?????文件???????2247??2009-08-16?21:21??X9C103\X9C103_Uv2.Bak
?????文件???????2252??2009-08-21?22:33??X9C103\X9C103.Uv2
?????文件???????1073??2009-08-21?23:07??X9C103\X9C103_Opt.Bak
?????文件???????1075??2009-08-22?10:08??X9C103\X9C103.Opt
?????目錄??????????0??2009-08-23?23:17??X9C103
-----------?---------??----------?-----??----
????????????????64572????????????????????16
- 上一篇:CCS FFT c語言算法
- 下一篇:C語言課程設計
評論
共有 條評論