📄 main.c
字号:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include "spi.h"
unsigned char seg[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x87};//数字的字模
void HC595_Show(unsigned char ch)
{
unsigned char rdata;
if (ch<0x10)
rdata = SPI_Byte(seg[ch]);
}
int main(void)
{
unsigned char t;
unsigned char CPU_STATUS;
//上电默认DDRx=0x00,PORTx=0x00 输入,无上拉电阻
DDRA =0xFF;
PORTA=0xFF; //不用的管脚使能内部上拉电阻。
PORTB=0xFF;
PORTC=0xFF; //SCL,SDA使能了内部的10K上拉电阻
PORTD=0xFF;
SPI_Init();
t=eeprom_read_byte (0x40);
//从0x40地址读出1个字节
CPU_STATUS =MCUCSR;
CPU_STATUS&=0x1F;
PORTA = CPU_STATUS;
if (CPU_STATUS==0x03)
{
t=t+1;
//PORTA=0x55;
eeprom_write_byte (0x40,t); //向EEPROM的0x40地址写入t
_delay_ms(10); //延时等待编程完成
}
t=t%10; //记录开机次数的个位数
HC595_Show(t);
MCUCSR=0;
while(1)
{
};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -