📄 main.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 + -