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

📄 main.c

📁 手机液晶3310驱动程序的中文说明
💻 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 + -