|
发表于 2006-10-7 16:17:44
|
显示全部楼层
//ICC-AVR application builder : 2005/12/15 下午 03:52:38
// Target : M8
// Crystal: 8.0000Mhz
#include <iom8v.h>
#include <macros.h>
#include "miniplc.h"
void uart0_init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = 0x33; //set baud rate lo
UBRRH = 0x00; //set baud rate hi
UCSRB = 0x98;
}
#pragma interrupt_handler uart0_rx_isr:12
void uart0_rx_isr(void)
{
//uart has received a character in UDR
P=UDR;
if(P=='1')Y1(0);
if(P=='2')Y1(1);
if(P=='3')Y2(0);
if(P=='4')Y2(1);
if(P=='5')Y3(0);
if(P=='6')Y3(1);
if(P=='7')Y4(0);
if(P=='8')Y4(1);
if(P=='9')Y5(0);
if(P=='A')Y5(1);
if(P=='S')Y6(0);
if(P=='D')Y6(1);
}
void main()
{unsigned char t,m;
//stop errant interrupts until set up
CLI(); //disable all interrupts
DDRD=0X00;
PORTD=0X00;
uart0_init();
MCUCR = 0B00000000;
GICR = 0x00;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialized
WDTCR=0B00011000;
WDTCR=0B00001000;//wdt initial
while(1);
{
if(X1(1)==0)
{if( (!X2(1)) && (!X3(1)) && (!X4(1)) && (!X5(1)) && (X6(1)) )Y1(0);
else
Y1(1);}
}
} |
|