⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 mega128通过片内EEPROM实现显示开机次数程序。
💻 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 + -