資源簡介
avr單片機例程@天祥電子,老師的講解視頻程序,板帶程序,資料全

代碼片段和文件信息
/*******************************************
??文件:AD5161.C
??環境:編譯為ICC?AVR6.25A,仿真為AVR?Studio4.10?
??硬件:ATMEGA16芯片
??日期:2006年12月10日?
??功能:驅動開發板上的數字電位器(AD5161采用IIC接口)
??備注:參考《AVR系列單片機C語言編程與應用實例》(清華大學出版社)
/******************************************/
#include? //包含型號頭文件
#include? //包含“位“操作頭文件
#include? //標準輸入輸出頭文件
#include? //包含自定義常量頭文件
#include?“Skey.C“ //包含數碼管顯示函數
/*******************************************
函數名稱:?Twi_init
功????能:?初始化TWI
參????數:?MS--延時的毫秒數
返回值??:?無
/********************************************/
void?Twi_init(void)
{
?TWBR=?0x20;?//設置波特率
?TWSR=?0x00;?//設置預分頻比
?TWCR=?0x44;?//使能應答,使能TWI
}
/*******************************************
函數名稱:?AD5161_writeB
功????能:?向AD5161寫入電阻值數據
參????數:?devadd--器件地址
?? ??cmd--控制命令
??rdata--電阻數據
返回值??:?success--數據成功標志(為TRUE時寫入成功,為FALSE時失敗)
/********************************************/
uchar?AD5161_writeB(uchar?devadduchar?cmduchar?rdata)
{
?uchar?success=FALSE; ??//默認返回是寫入失敗
?Start(); ??//產生START信號
?Wait(); ??//等待START信號發送完畢
?if(TestACK()!=START) ??//檢查是否是START信號發送完畢狀態
?{
??success=FALSE;?? ??//如果不是,則返回寫入失敗
??return?success;
?}
?Writebyte(devadd); ??//發送從器件地址
?Wait(); ??//等待發送完畢
?if(TestACK()!=MT_SLA_ACK)//檢查是否是從器件地址發送完畢狀態
?{
??success=FALSE; ??//如果不是,則返回寫入失敗
??return?success;
?}
?Writebyte(cmd);? ??//發送AD5161的命令字節(具體含義請參看AD5161的數據手冊)
?Wait(); ??//等待發送完畢
?if(TestACK()!=MT_DATA_ACK)//檢查是否是數據發送完畢
?{
??success=FALSE; ??//如果不是,則返回寫入失敗
??return?success;
?}
?Writebyte(rdata); ??//發送電阻值數據
?Wait(); ??//等待發送完畢
?if(TestACK()!=MT_DATA_ACK)//檢查是否是數據發送完畢
?{
??success=FALSE; ??//如果不是,則返回寫入失敗
??return?success;
?}
?Stop();? ? ??//對AD5161的一次操作完畢,發送STOP信號
?Delayms(10); ??//等待發送完畢
?success=TRUE; ??//本次寫入成功
?return?success; ??//返回寫入成功狀態
}
/*******************************************
函數名稱:?main
功????能:?按鍵更新數字電位器的阻值(電阻是A和W端的阻值,默認B端是開路的)
參????數:?無
返回值??:?無
/********************************************/
void?main(void)
{
?uchar?idata=0;??//初始電阻是滿量程
?Board_init(?); ??//初始化開發板
?Twi_init(?); ??//初始化TWI?
?AD5161_writeB(0x580x00data); //設置初始電阻
?while(1)
?{
??if(Skey_press()) ?? //是否有按鍵按下
??{
???i=Skey_scan(); ?? //掃描并反回翻譯后的鍵碼
???switch(i)
???{
??? case?0: //S1鍵按下,減少電阻的數字量(AD5161的特性是減少電阻的數字量,阻值增加)
?data-=16;
?break;
case?1: ??? ?? //S2鍵按下,增加電阻的數字量
?data+=16;
?break;
case?2: ??? ?? //S3鍵按下,使電阻的數字量為零(阻值滿量程)
?data=0;
?break;
case?3: ??? //S3鍵按下,使電阻的數字量為滿(阻值清零,只剩下接觸電阻)
?data=255;
?break;
???}
???AD5161_writeB(0x580x00data);??//更新電阻
??}
?}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2009-07-03?10:02??avr單片機例程\
?????文件???????15663??2007-03-03?11:14??avr單片機例程\AVR_PQ1A.H
?????目錄???????????0??2009-07-03?10:02??avr單片機例程\AVR_PQ1A_DEMO\
?????目錄???????????0??2009-07-03?10:02??avr單片機例程\AVR_PQ1A_DEMO\10_DA\
?????文件????????2488??2007-03-09?09:52??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.C
?????文件????????3700??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.cof
?????文件????????2549??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.dbg
?????文件?????????301??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.dp2
?????文件????????1775??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.hex
?????文件???????22340??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.lis
?????文件??????????11??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.lk
?????文件???????18713??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.lst
?????文件?????????779??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.mak
?????文件????????1477??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.mp
?????文件????????5708??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.o
?????文件?????????840??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.prj
?????文件????????9377??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.s
?????文件??????????43??2007-03-09?09:49??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300.SRC
?????文件????????2462??2007-03-09?09:50??avr單片機例程\AVR_PQ1A_DEMO\10_DA\AD5300._C
?????文件????????1850??2007-01-06?21:56??avr單片機例程\AVR_PQ1A_DEMO\10_DA\Skey.C
?????目錄???????????0??2009-07-03?10:02??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\
?????文件????????4435??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.C
?????文件????????6958??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.cof
?????文件????????3935??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.dbg
?????文件?????????306??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.dp2
?????文件????????6268??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.hex
?????文件???????39793??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.lis
?????文件??????????12??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.lk
?????文件???????45489??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.lst
?????文件?????????801??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.mak
?????文件????????3537??2007-03-09?09:55??avr單片機例程\AVR_PQ1A_DEMO\11_DS18B20\DS18B20.mp
............此處省略354個文件信息
- 上一篇:netflow網絡流量分析手冊
- 下一篇:NetDraw.zip
評論
共有 條評論