AVR單片機(jī)的全功能工業(yè)控制器設(shè)計(jì)
/*************************************
INT0中斷程序(觸摸屏數(shù)據(jù)采集程序)
采用中斷方式,在中斷程序中進(jìn)行A/D轉(zhuǎn)換讀取觸摸屏數(shù)據(jù)
*************************************/
interrupt[9] int7_touch(void){ //觸摸屏數(shù)據(jù)采集程序
touch_int();
TADY_IN()
TADX_IN()
TX1_0()//啟動(dòng)ADC轉(zhuǎn)換Y軸數(shù)據(jù)
TX0_0()
TY0_1()
TY1_1()
delay_us(400);
for(i=0;i15;i++){
ADCSRA=0xA3;
ADMUX=0x41;
ADCSRA|=0x40;
while(!ADCSRA.4){;}
touch_ydata[i]=ADC0x03FF;
}
TY1_0() //啟動(dòng)ADC轉(zhuǎn)換X軸數(shù)據(jù)
TY0_0()
TX1_1();
TX0_1()
delay_us(400);
for(i=0;i15;i++){
ADCSRA=0xA3;
ADMUX=0x40;
ADCSRA|=0x40;
while(!ADCSRA.4){;}
touch_xdata[i]=ADC0x03FF;
}
EIMSK=0x7F;
//一次數(shù)據(jù)接收完成,關(guān)閉中斷
TX1_0()
TX0_0()
TY1_1()
TY0_0()
TINT_IN()
TADX_IN()
TADY_IN()
EIFR|=0x80;
//清除中斷標(biāo)志位
TADY_IN()
TADX_IN()
}
6 通信接口
控制器通信接口是具有抗噪聲干擾性、長距離傳輸和多站連接能力的RS485接口。它是采用單片機(jī)串口通過光耦隔離后,再經(jīng)過Maxim公司RS485芯片來實(shí)現(xiàn)的,主要用于組網(wǎng)和方便與上位計(jì)算機(jī)的通信。具體電路見圖4。
結(jié)語
本文介紹的全功能工業(yè)控制器,具有較高的通用性,已用于批量生產(chǎn)。有關(guān)電路和程序均已驗(yàn)證,可以直接引用。
評(píng)論