📄 initmcu.c
字号:
#include <iom64.h>
#include "mydeclare.h"
#include "initmcu.h"
#include "port_def.h"
//==============================================================================
void init_port(void)
{
DDRA = 0xFF; //LCD数据总线
PORTA = 0xFF;
DDRB = 0xA7; //ISD语音芯片控制(B0-B3),
PORTB = 0x00;
DDRC = 0xA3; //lcd控制脚
PORTC = 0xE0;
DDRD = 0x79; //24C512 ds1302 232
PORTD = 0xAF; //1302的SCK和RST要为低电平
DDRE = 0xC0;
PORTE = 0x3F; //开采码头上拉
DDRF = 0x00;
PORTF = 0xF0; //JTAG KEY charge_current_gather
DDRG = 0x1C; //12V电源使能, 232电源使能,电磁铁, 继电器使能
PORTG = 0x04;
}
/*TMR0不使用
//==============================================================================
void init_tmr0(void)
{
TCCR0 = 0x07; //TMR0 1024分频 ,TMR0计156.25为20ms,
OCR0 = 0;
ASSR = 0;
TCNT0 = 0;
}
*/
//==============================================================================
void init_tmr1(void)
{
TCCR1A = 0xC1; //预分频选择1:1, 8位快速PWM模式,频率为(8MHz/1024= 7.8125KHz)
TCCR1B = 0x09;
TCCR1C = 0x00;
OCR1AH = 0x00; //设置占空比为零
OCR1AL = 0x00;
}
//==============================================================================
void init_tmr3(void)
{
TCCR3A = 0x00; //T3工作于普通模式,作为定时用,最大计数值为0xFFFF;
TCCR3B = 0x02; //预分频为1:8; 最长可产生65536ms定时
TCCR3C = 0x00;
OCR3AH = 0;
OCR3AL = 0;
}
//==============================================================================
void init_usart1(void)
{
UCSR1A = 0x40;
UCSR1B = 0x98; //使能发送和接收,使能接收中断
UBRR1H = 0; //设置8M晶振下波特率为9600
UBRR1L = 51;
UCSR1C = 0x06; //使用异步模式,8位数据位,1位停止位,无奇偶校验
}
//==============================================================================
void init_i2c(void)
{
TWBR = 0x20; //比特率寄存器为32
TWSR = 0x00; //分频比1:1,//使用100K传输速率
TWAR = 0x00; //配置从机地址为0x00,接收广播
TWCR = 0x80; //关闭TWI总线
}
//==============================================================================
void init_spi(void)
{
SPCR = 0x7F; //SPI使能,SCK空闲保持为高电平,数据在上升沿采样,速率为1:64(FOSC/64)
SPSR = 0x01; //使能倍速
}
//==============================================================================
void init_adc(void)
{
ADMUX = 0xE0; //内部2.56V参考源, 选中通道0;,转换结果左对齐
ADCSRA = 0x10; //ADC转换关闭(再开启时要舍弃第一次所用),预分频1:1
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -