基于AVR单片机的CD纹机的自动控制程序
DDRC|=0xff;
PORTC|=0xff; //配置PC口为输入,有上拉电阻
DDRC&=0x00;
t1=Mega16_ad(0X40); //启动一次通道0的AD转换
t2=Mega16_ad(0X41); //启动一次通道1的AD转换
t3=Mega16_ad(0X42); //启动一次通道2的AD转换
t4=Mega16_ad(0X43); //启动一次通道3的AD转换
/////////以下while中为按键扫描程序//////////////////////////////////////////////
while(1)
{
////////////启动按钮/////////////////////////////////////////////////////////////////////////
if(!(PINC&BIT(0)))//qidong
{
delay(10);
if(!(PINC&BIT(0)))//qidong
{
while(!(PINC&BIT(0)));
s0out;s0L;gg=1;
}
}
/////////////停止按钮/////////////////////////////////////////////////////////////////////////////
if(!(PINC&BIT(4)))
{
s0out;s0H;
s1out;s1H;
s2out;s2H;
s3out;s3H;
tt1=0;tt2=0;tt3=0;
tt4=0;gg=0;jj=0;xx=0;
}
/////////工作模式判断///车CD纹///高光/////////////////////////////////////////////
if(t1
if(!(PINC&BIT(2))){ gg=0;tt1=0;s0out;s0H;}
else if(!(PINC&BIT(3)))
{
if(!(PINC&BIT(1))) {gg=0;tt1=0;s1out;s1L;}
}
}
///////////////行程开关/////////////////////////////////////////////////////////////////////////////////
if(!((PINC&BIT(5))|(PINC&BIT(1)))) jj=1;
//////////////////////////////////////////////////////////////////////////////////////////////////////////
if(t2
if(t3
}
}
////////////定时器0的中断程序////刷新AD转换的值和刷新液晶屏用///////////
#pragma interrupt_handler timer0:10
void timer0(void)
{
uint ff;
TCNT0=0X00;
ff++;
if(ff==10000);
{ff=0;adc_lcd();}
}
////////////定时器1的中断程序///给继电器定时用////////////////////////////////////////
#pragma interrupt_handler timer1:9
void timer1(void)
{
TCNT1H=0xff;
TCNT1L=0x03;
if(gg)tt1++;
if(jj)tt2++;
if(xx)tt3++;
}
///完成!!!!!
AVR单片机CD纹机自动控制程 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)