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

📄 main.c

📁 A7102-433.rar
💻 C
字号:
        /***********************************************
		*	copyrite (c) 2007
		*文件名: 	  main.c
		*作者:		  larry
		*当前版本:	  v1.0
		*建立时间:        2007-6-11 09:03
		*完成日期:        2007-6-29 9:48
		
		*描述:            测试A7102通讯性能(W78e52B,5V VDD,33.177M OSC)				     
		************************************************/
#include    "../header/main.h"               
/***********************************************
函 数:	main()
功 能:	主体循环函数 
输 入:	/
输 出:	/
描 述:	/
***********************************************/	
void    main(void)		
{
        /* 上电初始化系统 */
        PowerOn_Initialisation();       

        while(1)
        {
            KeyScan();

            if(flag_transimiter)
            {/* 1S发射一次 */ 
                WriteLcdCmd(0xc0);			           /* 设置DDRAM地址第二行 */
                Delay(3);

                Lcd_Display_Character(0x52);
                Lcd_Display_Character(0x78);
                Lcd_Display_Character(0x3a);
                Lcd_Display_Character(0x20);                       /* Rx:  */

                Lcd_Display_Character(0x20);
                Lcd_Display_Character(0x20);
                Lcd_Display_Character(0x20);
                Lcd_Display_Character(0x20);

                flag_transimiter    = false;
                Time_second         = 1000;
                
                /* 发射A7102 */
                A7102_Fifo_Write(&demo[number][0]);
                A7102_Status_Transmit();      
                          
                WriteLcdCmd(0x80);			           /* 设置DDRAM地址第一行 */
                Delay(3);

                Lcd_Display_Character(0x54);
                Lcd_Display_Character(0x78);
                Lcd_Display_Character(0x3a);
                Lcd_Display_Character(0x20);                       /* Tx:  */
                
                Lcd_Display_Hex(demo[number][0]);
                Lcd_Display_Hex(demo[number][1]);

                /* 等待A7102发射完成 */
                while(!iSPI_Irq)
                {                    
                }

                /* 发射循环数组数据 */
                if((++number) > 0x03)
                    number    = 0x00;

                /* 设置A7102为接收状态 */
                A7102_Status_Receiver();
            }

            if(iSPI_Irq)
            {/* 接收到数据 */            
                A7102_Fifo_Read(&rece_buff);
                A7102_Receiver_Enable();

                if(flag_clear)
                {
                    flag_clear    = false;
                    LcdDclear();
                }

	            WriteLcdCmd(0xc0);			           /* 设置DDRAM地址第二行 */
                Delay(3);

                Lcd_Display_Character(0x52);
                Lcd_Display_Character(0x78);
                Lcd_Display_Character(0x3a);
                Lcd_Display_Character(0x20);                       /* Rx:  */

                Lcd_Display_Hex(rece_buff[0]);
                Lcd_Display_Hex(rece_buff[1]);

                if(!flag_master)
                {/* 从机则需要应答 */
                    A7102_Fifo_Write(&rece_buff);
                    A7102_Status_Transmit();
                    while(!iSPI_Irq)
                    {                    
                    }
                    A7102_Status_Receiver();
                }
            }
        }
}
/***********************************************
函 数:	Timer0Int
功 能:	timer0中断函数 
输 入:	/  
输 出:	/
描 述:	/
***********************************************/
void    Timer0Int(void) interrupt   1
{
    TH0     = 0xF5;
    TL0     = 0x33;                             // 33.177M OSC,timer0 计时1ms
    
    if(Time_Count)
        Time_Count --;

    if(Time_second)
    {
        if((--Time_second) == 0x00)
        {
            flag_transimiter = true;
        }
    }
}

⌨️ 快捷键说明

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