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

📄 main.c

📁 ARM9的ZLG7290的模块 在液晶上显示数字
💻 C
字号:
/*******************************************************************************************************
** File Name: main.c
** Last modified Date: 2006-01-13
** Last Version: v1.0
** Description: 控制LED数码管显示并接收键盘输入。
** Note: 请短接实验箱上的JP9跳线。
********************************************************************************************************/
#include  "config.h"

// 蜂鸣器控制
#define   BEEP				(1<<5)	    /* GPH10,低电平时蜂鸣 */
#define   BEEP_MASK			(~BEEP)

// 定义显示缓冲区
uint8  disp_buf[50];

// ZLG7290控制LED数码管闪烁命令
#define     Glitter_COM     0x70 



/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 长软件延时。
**              延时时间与系统时钟有关。
** Input: dly	延时参数,值越大,延时越久
** Output: 无
********************************************************************************************************/
void  DelayNS(uint32  dly)
{  
	uint32  i;

   	for(; dly>0; dly--) 
       for(i=0; i<50000; i++);
}


/*********************************************************************************************************
** Function name: RunBeep
** Descriptions: 控制蜂鸣器Be一声音。
** Input: 无
** Output: 无
********************************************************************************************************/
void  RunBeep(void)
{  
    rGPEDAT = rGPEDAT | BEEP;		    // BEEP = 1 
    DelayNS(20);
    rGPEDAT = rGPEDAT & BEEP_MASK;	    // BEEP = 0
    DelayNS(20);
}


/*********************************************************************************************************
** Function name: main
** Descriptions: 通过ZLG7290电路控制LED数码管依次显示数字0、2、4、6、8进行检测,然后显示"87654321",
**               再读取按键,按下1--8键时相应位的字符会闪烁。按Enter键时蜂鸣器响一声。           
** Input: 无
** Output: 系统返回值0
********************************************************************************************************/
int  main(void)
{	
    int  i, j;
    uint16  key;
    
    // GPIO设置	        
    rGPECON = (rGPECON & (~(0x03<<10))) | (0x01<<10);   // rGPECON[11:10] = 01b,设置GPE5为I/O输出模式   
    rGPEDAT = rGPEDAT & (~(1<<5));
    	
    // 初始化I2C接口
    InitI2C();  
     
    RunBeep();
   
      
    // 全显示0、2、4、6、8测试 
    for(i=0; i<=8; i=i+2)
    {   
        for(j=0; j<8; j++) disp_buf[j] = 0;
        ZLG7290_SendBuf((uint8 *)disp_buf, 8);
        DelayNS(100);
    }
    
 /*   // 显示"87654321"
    for(j=0; j<8; j++) disp_buf[j] = j+1;
    ZLG7290_SendBuf((uint8 *)disp_buf, 8);
    DelayNS(100);
    // 读取按键,设置键值对应的显示位闪烁*/
   while(1)
    {        
        DelayNS(1);   
        key = ZLG7290_GetKey();
        if((key&0xFF00) == 0) 
        {  
            key = key&0x00FF;
        }     
    
        switch(key)
        {  
            case  1:
            case  9:            
                ZLG7290_SendCmd(Glitter_COM, 0x01);
                RunBeep();

                break;        
      
            case  2:
            case 10:
                ZLG7290_SendCmd(Glitter_COM, 0x02);         
                break;
         
            case  3: 
            case 11: 
                ZLG7290_SendCmd(Glitter_COM, 0x04);
                break;
         
            case  4:
            case 12:
                ZLG7290_SendCmd(Glitter_COM, 0x08);
                break;
               
            case  17:
            case  57:
                ZLG7290_SendCmd(Glitter_COM, 0x10);
                break;       
               
            case  18:
            case  58:
                ZLG7290_SendCmd(Glitter_COM, 0x20);         
                break;
         
            case  19:
            case  59:
                ZLG7290_SendCmd(Glitter_COM, 0x40);
                break;
         
            case  20:
            
                ZLG7290_SendCmd(Glitter_COM, 0x80);
                break;
               
            case  60:       // 为Enter键,则蜂鸣器响一声
                RunBeep();
                break;   
            
            default:                             
                break;
        } // end of switch(key)...
    }

	while(1);
   	return(0);
 }

/*********************************************************************************************************
**                            End Of File
********************************************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -