|
51單片機(jī)節(jié)能燈,是AD和DA轉(zhuǎn)換的綜合運(yùn)用,下面的代碼是樓主寫的節(jié)能燈代碼。希望互相幫助
0.png (58.93 KB, 下載次數(shù): 62)
下載附件
2017-7-20 15:58 上傳
光敏電阻測試數(shù)碼管顯示單片機(jī)源程序如下:
- /*-----------------www.szjcdz.cn------------------
- 名稱:IIC協(xié)議 PCF8591 AD/DA轉(zhuǎn)換 測試光敏電阻
- 編寫:szjcdz
- 日期:2010.09
- 內(nèi)容:使用4路AD中的1路檢測外部模擬量輸入,顯示0-255數(shù)值
- 短路帽設(shè)置: AD輸入ON短接 光敏帽短路
- ------------------------------------------------*/
- #include <reg52.h>
- #include "i2c.h"
- #include "delay.h"
- #define AddWr 0x90 //寫數(shù)據(jù)地址
- #define AddRd 0x91 //讀數(shù)據(jù)地址
- extern bit ack;
- unsigned char ReadADC(unsigned char Chl);
- bit WriteDAC(unsigned char dat);
- /*------------------------------------------------
- 主程序
- ------------------------------------------------*/
- main()
- {
-
- }
- /*------------------------------------------------
- 讀AD轉(zhuǎn)值程序
- 輸入?yún)?shù) Chl 表示需要轉(zhuǎn)換的通道,范圍從0-3
- 返回值范圍0-255
- ------------------------------------------------*/
- unsigned char ReadADC(unsigned char Chl)
- {
- unsigned char Val;
- Start_I2c(); //啟動(dòng)總線
- SendByte(AddWr); //發(fā)送器件地址
- if(ack==0)return(0);
- SendByte(0x40|Chl); //發(fā)送器件子地址
- if(ack==0)return(0);
- Start_I2c();
- SendByte(AddWr+1);
- if(ack==0)return(0);
- Val=RcvByte();
- NoAck_I2c(); //發(fā)送非應(yīng)位
- Stop_I2c(); //結(jié)束總線
- return(Val);
- }
- /*------------------------------------------------
- 寫入DA轉(zhuǎn)換數(shù)值
- 輸入?yún)?shù):dat 表示需要轉(zhuǎn)換的DA數(shù)值,范圍是0-255
- ------------------------------------------------*/
- /*bit WriteDAC(unsigned char dat)
- {
- Start_I2c(); //啟動(dòng)總線
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:在2樓
|
|