ATmega8内部AD程序.doc

上传人:b****3 文档编号:2486497 上传时间:2022-10-30 格式:DOC 页数:4 大小:20KB
下载 相关 举报
ATmega8内部AD程序.doc_第1页
第1页 / 共4页
ATmega8内部AD程序.doc_第2页
第2页 / 共4页
ATmega8内部AD程序.doc_第3页
第3页 / 共4页
ATmega8内部AD程序.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ATmega8内部AD程序.doc

《ATmega8内部AD程序.doc》由会员分享,可在线阅读,更多相关《ATmega8内部AD程序.doc(4页珍藏版)》请在冰豆网上搜索。

ATmega8内部AD程序.doc

#include

#include

typedefunsignedcharuchar;

typedefunsignedintuint;

/*LCD引脚定义*/

#defineCS_setPORTD|=BIT(6)

#defineCS_clrPORTD&=~BIT(6)

#defineSID_setPORTD|=BIT(7)

#defineSID_clrPORTD&=~BIT(7)

#defineSCLK_setPORTB|=BIT(0)

#defineSCLK_clrPORTB&=~BIT(0)

Delay(uintt)

{

while(--t);

{}

}

/*LCD12232端口初始化*/

voidPORT_Init(void)

{

DDRD|=BIT(6);

PORTD|=BIT(6);

DDRD|=BIT(7);

PORTD|=BIT(7);

DDRB|=BIT(0);

PORTB|=BIT(0);

}

/*LCD12232写数据*/

voidSend_DATA(ucharData,ucharO_Z)

{

uchari,Order;

CS_clr;

switch(O_Z)

{

case0:

Order=0xf8;break;//写指令

case1:

Order=0xfa;break;//写数据

default:

break;

}

SCLK_clr;

CS_set;

for(i=0;i<8;i++)

{

if(Order&0x80)

SID_set;

else

SID_clr;

SCLK_clr;

SCLK_set;

Order<<=1;

}

Order=Data;

Order&=0xf0;

for(i=0;i<8;i++)

{

if(Order&0x80)

SID_set;

else

SID_clr;

SCLK_clr;

SCLK_set;

Order<<=1;

}

Order=Data;

Order<<=4;

for(i=0;i<8;i++)

{

if(Order&0x80)

SID_set;

else

SID_clr;

SCLK_clr;

SCLK_clr;

SCLK_set;

Order<<=1;

}

CS_clr;

Delay(20);

}

/*显示一字符串*/

voidDis_str(ucharAddr,uchar*str)

{

Send_DATA(Addr,0);

Delay(30);

while(*str!

='\0')

{

Send_DATA(*str,1);

str++;

Delay(20);

}

}

/*LCD12232初始化*/

voidInit_LCD(void)

{

Delay(2000);

Send_DATA(0x06,0);

Delay(200);

Send_DATA(0x02,0);

Delay(200);

Send_DATA(0x0c,0);

Delay(200);

Send_DATA(0x80,0);

Delay(200);

Send_DATA(0x30,0);

Delay(200);

Send_DATA(0x01,0);

Delay(5000);

}

/*片内ADC初始化*/

voidADC_Init(void)

{/*工作于单次转换模式下*/

DDRC|=(1<<4)|(1<<5);

ADMUX=0xc4;//0xc5

ADCSRA=0x84;

}

voidmain(void)

{

uchari;

ucharTemp_L,Temp_H;

uintAD_Data=0;

PORT_Init();

Init_LCD();

ADC_Init();

do

{

ADMUX|=0x04;//启用PC4口作模拟量输入

ADCSRA|=0x70;//启动AD转换

while(ADCSRA&(1<

ADCSRA&=~(1<

Delay(10);

Temp_L=ADCL;

Temp_H=ADCH;

AD_Data=Temp_H*256+Temp_L;

Send_DATA(0x81,0);

Send_DATA(AD_Data/1000+0x30,1);

Send_DATA(AD_Data%1000/100+0x30,1);

Send_DATA(AD_Data%100/10+0x30,1);

Send_DATA(AD_Data%10+0x30,1);

ADMUX|=0x05;//启用PC4口作模拟量输入

ADCSRA|=0x70;//启动AD转换

while(ADCSRA&(1<

ADCSRA&=~(1<

Delay(10);

Temp_L=ADCL;

Temp_H=ADCH;

AD_Data=Temp_H*256+Temp_L;

Send_DATA(0x84,0);

Send_DATA(AD_Data/1000+0x30,1);

Send_DATA(AD_Data%1000/100+0x30,1);

Send_DATA(AD_Data%100/10+0x30,1);

Send_DATA(AD_Data%10+0x30,1);

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

Delay(60000);

}

while

(1);

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 工作计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1