?? lpc935_ad.c
字號:
/****************************LPC935_AD.C*******************************
*程序功能:測試LPC935 AD轉換功能
*轉換模式:單次轉換
*啟動方式:立即啟動
**********************************************************************/
#include "reg935.h"
#define uchar unsigned char
/* 74HC595控制管腳定義 */
sbit HC595_CS = P2^4;
sbit HC595_CLK = P2^5;
sbit HC595_DAT = P2^2;
void SendHC595(uchar dat) ;
void DelayNS(uchar no);
main()
{
uchar result;
P1M1=0x80; //P1.7設置為僅為輸入狀態
P1M2=0x00;
P2M1=0x00; //P0端口設置為準雙向
P2M2=0x00;
//------------------------
ADINS=0x01; //0000 0001, 選擇channel
ADMODA=0x01; //0000 0001, 選擇轉換工作模式:單次轉換模式
ADMODB=0x00; //500Khz < ADC CLK < 3.3Mhz,,
//------------------------
while(1)
{
ADCON0=0x05; //選擇轉換觸發模式;并立即啟動
result=AD0DAT0; //將AD轉換獲得的數據存入result
SendHC595(~result); //通過LED顯示result的值
ADCON0&=0xF7; //清除中斷完成標志
DelayNS(10); //延時
}
}
/*******************************************************
* 名稱:SendHC595()
* 功能:向74HC595發送數據,以驅動LED顯示
* 入口參數:data 要發送的數據
* 出口參數:無
*******************************************************/
void SendHC595(uchar dat)
{ uchar i;
HC595_CS=0;
for(i=0; i<8; i++)
{ HC595_CLK=0;
if( (dat&0x80)!=0 )HC595_DAT=1; //設置數據線
else HC595_DAT=0;
HC595_CLK=1;
dat=dat<<1; //移動數據
}
HC595_CS=1; //關閉
}
/*********************************************************
*名稱:DelayNS()
*功能:延時一段時間
*入口參數:no
*出口參數:無
*********************************************************/
void DelayNS(uchar no)
{ uchar i,j;
for(; no>0; no--)
{ for(i=0; i<200; i++)
for(j=0; j<250; j++);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -