久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
51單片機(jī)P1口的數(shù)據(jù)采樣(ADC)驅(qū)動(dòng)程序
[打印本頁(yè)]
作者:
xueren
時(shí)間:
2013-7-19 02:20
標(biāo)題:
51單片機(jī)P1口的數(shù)據(jù)采樣(ADC)驅(qū)動(dòng)程序
#include "reg52.h"
#include "intrins.h"
#define FOSC 18432000L
#define BAUD 9600
typedef unsigned char BYTE;
typedef unsigned int WORD;
/*Declare SFR associated with the ADC */
sfr ADC_CONTR = 0xBC; //ADC control register
sfr ADC_RES = 0xBD; //ADC high 8-bit result register
sfr ADC_LOW2 = 0xBE; //ADC low 2-bit result register
sfr P1ASF = 0x9D; //P1 secondary function control register
/*Define ADC operation const for ADC_CONTR*/
#define ADC_POWER 0x80 //ADC power control bit
#define ADC_FLAG 0x10 //ADC complete flag
#define ADC_START 0x08 //ADC start control bit
#define ADC_SPEEDLL 0x00 //420 clocks
#define ADC_SPEEDL 0x20 //280 clocks
#define ADC_SPEEDH 0x40 //140 clocks
#define ADC_SPEEDHH 0x60 //70 clocks
void InitUart();
void InitADC();
void SendData(BYTE dat);
BYTE GetADCResult(BYTE ch);
void Delay(WORD n);
void ShowResult(BYTE ch);
/*
void main()
{ InitUart(); //Init UART, use to show ADC result
InitADC(); //Init ADC sfr
while (1)
{
ShowResult(0); //Show Channel0
}
}
*/
/*----------------------------
Send ADC result to UART
----------------------------*/
void ShowResult(BYTE ch)
{
SendData(ch); //Show Channel NO.
SendData(GetADCResult(ch)); //Show ADC high 8-bit result
//if you want show 10-bit result, uncomment next line
// SendData(ADC_LOW2); //Show ADC low 2-bit result
}
/*----------------------------
Get ADC result
----------------------------*/
BYTE GetADCResult(BYTE ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
_nop_(); //Must wait before inquiry
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG));//Wait complete flag
ADC_CONTR &= ~ADC_FLAG; //Close ADC
return ADC_RES; //Return ADC result
}
/*----------------------------
Initial UART
----------------------------*/
void InitUart()
{
SCON = 0x5a; //8 bit data ,no parity bit
TMOD = 0x20; //T1 as 8-bit auto reload
TH1 = TL1 = -(FOSC/12/32/BAUD); //Set Uart baudrate
TR1 = 1; //T1 start running
}
/*----------------------------
Initial ADC sfr
----------------------------*/
void InitADC()
{
P1ASF = 0xe7; //Open 8 channels ADC function
ADC_RES = 0; //Clear previous result
ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
Delay(2); //ADC power-on and delay
}
/*----------------------------
Send one byte data to PC
Input: dat (UART data)
Output:-
----------------------------*/
void SendData(BYTE dat)
{ while (!TI); //Wait for the previous data is sent
TI = 0; //Clear TI flag
SBUF = dat; //Send current data
}
/*----------------------------
Software delay function
----------------------------*/
void Delay(WORD n)
{ WORD x;
while (n--)
{ x = 5000;
while (x--);
}
}
復(fù)制代碼
作者:
s360221867
時(shí)間:
2018-9-22 15:57
這跟STC的一樣么
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产成人精品一区二区在线
|
欧美激情在线观看一区二区三区
|
国产精品久久久久久婷婷天堂
|
四虎影院在线免费观看
|
免费一级欧美在线观看视频
|
羞羞视频在线观看免费观看
|
免费黄色录像视频
|
欧美日韩综合
|
欧美高清视频一区
|
亚洲精品一区二区三区中文字幕
|
久久久久国产精品人
|
天堂精品视频
|
99精品免费
|
爱综合
|
国产亚洲精品精品国产亚洲综合
|
久久av在线播放
|
国产精品99久久久久久动医院
|
av一级一片
|
精品视频99
|
欧美性受xxxx
|
992人人草
|
国产精品久久久久久久久婷婷
|
国产精品久久久久久二区
|
久久久久国产一区二区三区
|
欧美日韩电影免费观看
|
日韩精品a在线观看图片
|
日韩精品一区二区三区免费视频
|
国产永久免费
|
免费一级做a爰片久久毛片潮喷
|
欧美日韩国产精品一区二区
|
国产69精品久久99不卡免费版
|
日韩视频免费
|
成人精品视频99在线观看免费
|
国产福利在线
|
久久免费精品
|
免费观看av
|
国产玖玖
|
成人性视频免费网站
|
黑人巨大精品欧美一区二区免费
|
丝袜 亚洲 另类 欧美 综合
|
久久色视频
|