標(biāo)題: PCF8591輸出三角波 單片機(jī)D/A轉(zhuǎn)換實驗報告 [打印本頁]
作者: 吳明山 時間: 2018-1-9 11:37
標(biāo)題: PCF8591輸出三角波 單片機(jī)D/A轉(zhuǎn)換實驗報告
實驗報告
課程名稱 單片機(jī)原理與接口技術(shù)實驗 實驗名稱D-A轉(zhuǎn)換(PCF8591)
系別 電子信息科學(xué)學(xué)院 專業(yè)班級 15電子信息工程3班 指導(dǎo)教師 林*
學(xué)號1631*姓名_吳*_實驗日期_ 12.22實驗成績_______

一,實驗?zāi)康?/strong>1、熟悉D/A轉(zhuǎn)換的原理。
2、熟悉PCF8591芯片的工作特性,進(jìn)一步熟悉I2C總線工作的原理。
3、掌握PCF8591芯片D/A轉(zhuǎn)換的編程應(yīng)用。
二,實驗設(shè)備
計算機(jī)一臺;
單片機(jī)實驗儀一臺;
Keil C51和Proteus軟件;
示波器。
三,實驗內(nèi)容
根據(jù)D/A轉(zhuǎn)換、I2C總線工作的原理和PCF8591手冊,從PCF8591的AOUT引腳輸出一個如下圖所示的三角波。提示:PCF8591芯片固定地址為1001。
四,實驗源程序
七,實驗總結(jié)及心得體會
通過本次實驗增加了對軟件的熟悉和使用,對電腦更加熟悉,加上了對課本上知識的了解和認(rèn)識。
單片機(jī)源程序如下:
- #include<reg52.h>
- #include<intrins.h>
- sbit SCL=P2^1; //I2C時鐘線
- sbit SDA=P2^0; //I2C數(shù)據(jù)線
-
-
-
-
-
-
-
- void start() //定義起始信號函數(shù)
- {
- SDA=1;
- SCL=1;
- _nop_();
- _nop_();
- SDA=0;
- _nop_();
- _nop_();
- SCL=0;
- }
-
- void stop() //定義停止信號產(chǎn)生函數(shù)
- {
- SDA=0;
- SCL=0;
- _nop_();
- _nop_();
- SCL=1;
- _nop_();
- _nop_();
- SDA=1;
- }
-
- void rack() //定義應(yīng)答檢測函數(shù)
- {
- SCL=1;
- _nop_();
- _nop_();
- SCL=0;
- }
-
- void nack() //定義不應(yīng)答信號產(chǎn)生函數(shù)
- {
- SDA=1;
- SCL=1;
- _nop_();
- _nop_();
- SCL=0;
- SDA=1;
- }
-
- void wbyte(unsigned char tmp) //寫字節(jié)函數(shù)
- {
- unsigned char i;
- for(i=0;i<8;i++)
- {
- tmp=tmp<<1; //左移一位,移入CY
- SDA=CY; //移出位發(fā)送
- SCL=1;
- _nop_();
- _nop_();
- SCL=0;
- }
- rack();
- }
-
-
-
-
- void wdata(unsigned char dat)
- {
- unsigned char i;
- start();
- wbyte(0x90); //器件尋址
- wbyte(0x40);
- wbyte(dat); //寫數(shù)據(jù)
- stop();
- for(i=0;i<255;i++); //每寫一數(shù)據(jù),
- for(i=0;i<255;i++); //都要延時
- }
-
- int main()
- {
- int i;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
作者: Like2102 時間: 2023-12-15 09:29
全部代碼是在附件里面嗎?
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |