📄 main.c
字号:
/********************************************************************************************************
* 文 件 名 : main.c
* 程 序 员 : (CaiJie) hnclcj@gmail.com
* (c) Copyright 2006-2006, CaiJie
* 所有版权保留 2006-2006
* All Rights Reserved
* 创建日期 : 2006-07-28
* 说 明 :
* 修改日期 :
* 修改版本 :
********************************************************************************************************/
#include "includes.h"
/********************************************************************************************************
* 功 能 : M64I/O初始化
* 入 口 : 无
* 返 回 : 无
* 说 明 : 无
********************************************************************************************************/
static void io_init(void)
{
PORTA = 0xff;
DDRA = 0xff;
PORTB = 0xFF;
DDRB = 0xFF;
PORTC = 0xFF;
DDRC = 0xFF;
PORTD = 0xff;
DDRD = 0xff;
PORTE = 0xFF;
DDRE = 0xFF;
PORTF = 0xFF;
DDRF = 0xFF;
PORTG = 0xFF;
DDRG = 0xFF;
wdt_disable();
ACSR = 0x80;
}
/********************************************************************************************************
* 功 能 : SPI初始化
* 入 口 : 无
* 返 回 : 无
* 说 明 : 无
********************************************************************************************************/
void SpiInit (void)
{
DDRB = 0xBF; //SI输入,SO,SCK,SS输出
SPCR = 0x50; //setup SPI
SPSR = 0x01; //setup SPI
}
/********************************************************************************************************
* 功 能 : 主函数 测试3310函数
* 入 口 : 无
* 返 回 : 无
* 说 明 : 无
********************************************************************************************************/
int main(void)
{
BOOL bFlg = 0;
INT16U IdleCtr = 0;
INT16U temp = 0;
INT8U ClkSec = 0;
INT8U ClkMin = 0;
INT8U NCtr = 0;
io_init();
DelayNMs(1);
SpiInit(); // 初始化ATMEGA64SPI 3310采用硬件SPI总线驱动
LCDDispInit(); // 初始化3310
while(1) {
DelayNMs(100);
//
NCtr++;
LCDDispTxtHex(0, 1, NCtr); // 显示HEX进制的8BIT数据
//
bFlg = !bFlg;
if (bFlg) {
LCDDispTxtStr(3, 1, "Hell0! World!"); // 显示一串字符
} else {
LCDDispTxtStr(3, 1, " "); //
}
//
ClkSec++;
if (ClkSec >= 60) {
ClkSec = 0;
ClkMin++;
if (ClkMin >= 60) {
ClkMin = 0;
}
}
LCDDispTxtBCD (5, 0, ClkMin); // 显示BCD码 裁减
LCDDispTxtChar(5, 2, ':');
LCDDispTxtBCD (5, 3, ClkSec);
//
IdleCtr++;
temp = IdleCtr;
LCDDispTxtChar(5, 9, temp / 10000 + '0'); // 显示单个字符
temp %= 10000;
LCDDispTxtChar(5, 10, temp / 1000 + '0');
temp %= 1000;
LCDDispTxtChar(5, 11, temp / 100 + '0');
temp %= 100;
LCDDispTxtChar(5, 12, temp / 10 + '0');
LCDDispTxtChar(5, 13, temp % 10 + '0');
}
}
/********************************************************************************************************
* 功 能 : 延时函数
* 入 口 : 'Dly' 延时的MS数
* 返 回 : 无
* 说 明 : 1> 这个函数现在只是随便写 没有进行时间效对 实际运用时需要计算周期效对
********************************************************************************************************/
void DelayNMs (INT16U Dly)
{
unsigned int i;
while (Dly != 0) {
Dly--;
for (i=0; i<65530; i++);
}
}
/********************************************************************************************************
* End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -