|
电路中MEGA16部分程序
/*
*********************************************************************************************************
** 函数名称 :PortInit()
** 函数功能 :端口初始化
** 入口参数 :无
** 出口参数 :无
** 创建人 :YDCMAN
** 创建时间 :2009年11月27日13:58:33
*********************************************************************************************************
*/
void PortInit(void)
{
//PORTA_BIT0~1为输入“0”,2-7为输出“1”,
PORTA=0xfc;
DDRA=0xfc;
//PORTB_BIT5~7为输入“0”,0-4为输出“1”,
PORTB=0x1f;
DDRB=0x1f;
//初始设置总线为输出,值“0”
PORTC=0x00;
DDRC=0xff;
//PORTD_BIT0&3为输入“1”,1-2&4-7为输出“1”,
PORTD=0xff;
DDRD=0x76;
//T0定时器使用,
TCCR0=0x00;
TCNT0=0xe4;
OCR0=0x00;
//T1定时器不用
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
//T2定时器不用
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
//开T0中断
TIMSK=0x01;
TCCR0=0x03;
//串口,波特率9600,8位
UCSRA=0x00;
UCSRB=0x98;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x2F;
//ADC初始化
SFIOR=0x00;
ACSR=0x80;
ADCSRA=0x00;
ADCSRA=0x8e;
ADMUX=FIRST_ADC_INPUT|ADC_VREF_TYPE;
ADCSRA=(0x8e|(1<<6));
//SPI口不用
SPCR=0x00;
SPSR=0x00;
//TWI不用
TWSR=0x00;
TWBR=0x00;
TWAR=0x00;
TWCR=0x00;
//12864使用并口
PB1=1;
PSB=0;
} |
|