日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 技術(shù)學(xué)院 > 熱搜器件
[導(dǎo)讀]/*---------------------------------------------------------------------------------------------------程序說明:adc0809接到51單片機的P1口,P1口接有8個LED,每次轉(zhuǎn)換結(jié)束都可以通過LED觀察到轉(zhuǎn)換結(jié)果(低電平

/*---------------------------------------------------------------------------------------------------

程序說明:adc0809接到51單片機的P1口,P1口接有8個LED,每次轉(zhuǎn)換結(jié)束都可以通過LED觀察到轉(zhuǎn)換結(jié)果(低電平亮),ADC參考電壓與單片機的電源要一致

通過驗證:輸入5v則LED全滅

輸入0v則LED全亮

通過電位器控制輸入0~5v則1602顯示輸出從0~255逐次增加

------------------------------------------------------------------------------------------------------*/

#include

#include

#include"1602.c"

#define uchar unsigned char

#define uint unsigned int

sbit ADC_START=P2^0;

sbit ADC_ALE =P2^1;

sbit ADC_OE =P2^2;

sbit ADC_EOC =P2^3;

sbit D0=P1^0;

sbit D1=P1^1;

sbit D2=P1^2;

sbit D3=P1^3;

sbit D4=P1^4;

sbit D5=P1^5;

sbit D6=P1^6;

sbit D7=P1^7;

uchar ad_dat;

/*---------------------------------

函數(shù)名:delayus(i)

功 能:延時t=(12*i+14)us

參 數(shù):i

返回值:無

備 注: 晶振12MHz

-----------------------------------*/

/*void delayus(i)

{

for(i;i>0;i--);

}

*/

/*---------------------------------

dac0809初始化

----------------------------------*/

void init0809()

{

ADC_START=0;

ADC_OE =0;

_nop_();

ADC_ALE=0;

_nop_();

_nop_();

_nop_();

ADC_ALE=1; //ALE=1時地址進入鎖存器

_nop_();

_nop_();

_nop_();

ADC_ALE=0; //ALE=0時地址被鎖存住

_nop_();

_nop_();

_nop_();

}

/*---------------------------------

dac0809模數(shù)轉(zhuǎn)換

----------------------------------*/

void ADC_0809()

{

ADC_START=1; //上升沿復(fù)位

_nop_();

_nop_();

_nop_();

ADC_START=0; //下降沿開始

_nop_();

_nop_();

_nop_();

while(!ADC_EOC); //等待轉(zhuǎn)換結(jié)束

ADC_OE =1;

w_dat_1602(0x30+(uchar)D0);

w_dat_1602(0x30+(uchar)D1);

w_dat_1602(0x30+(uchar)D2);

w_dat_1602(0x30+(uchar)D3);

w_dat_1602(0x30+(uchar)D4);

w_dat_1602(0x30+(uchar)D5);

w_dat_1602(0x30+(uchar)D6);

w_dat_1602(0x30+(uchar)D7);

delayus(5);

ADC_OE =0;

}

void main()

{

init0809();

init_1602();

delayus(10);

while(1)

{

w_com_1602(0x80);

ADC_0809();

}

}

#include

#define uchar unsigned char

#define uint unsigned int

sbit rs=P2^4; //1602io引腳

sbit rw=P2^5; //1602io引腳

sbit e=P2^6; //1602io引腳

/*---------------------------------

函數(shù)名:delayusus(i)

功 能:延時t=(12*i+14)us

參 數(shù):i

返回值:無

備 注: 晶振12MHz

-----------------------------------*/

void delayus(i)

{

for(i;i>0;i--);

}

/*---------------------------------

函數(shù)名:w_com_1602(uchar com)

功 能:寫命令

參 數(shù):uchar com

返回值:無

-----------------------------------*/

void w_com_1602(uchar com)

{

e=0;

rs=0;

rw=0;

delayus(2);

P0=com;

e=1;

delayus(2);

e=0;

delayus(2);

}

/*---------------------------------

函數(shù)名:w_dat_1602(uchar dat)

功 能:寫數(shù)據(jù)

參 數(shù):uchar dat

返回值:無

-----------------------------------*/

void w_dat_1602(uchar dat)

{

e=0;

rs=1;

rw=0;

delayus(2);

P0=dat;

e=1;

delayus(2);

e=0;

delayus(2);

}

/*---------------------------------

函數(shù)名:init_1602()

功 能:1602初始化

參 數(shù):無

返回值:無

-----------------------------------*/

void init_1602()

{

P0=0xff; //端口初始化

w_com_1602(0x38); //功能設(shè)置

w_com_1602(0x0f); //開光標(biāo)但不閃爍

w_com_1602(0x06); //設(shè)置輸入方式

w_com_1602(0x01); //清屏

delayus(5);

}

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉