📄 main.c
字号:
/***********************************************/
/***********************************************/
#include <p30f6010A.h>
#include <stdio.h>
#include "UART2_RS485.h"
const unsigned char table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //不带小数点的LED码值
const unsigned char table0[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //带小数点显示的LED码值
void init_SPI1(void)
{
SPI1CON=0x0063;// "0000000001100011" ;
SPI1STAT=0x8000;//"1000000000000000" ;
}
void spiled(unsigned char led_data)
{
unsigned char tmpData;
while(SPI1STATbits.SPITBF);
SPI1BUF=led_data;
while(!IFS0bits.SPI1IF);
IFS0bits.SPI1IF=0;
tmpData = SPI1BUF; //Dummy read in order not to set SPIROV bit
// ClrWdt();
}
void display(unsigned int a) //显示代码值:GExx;unsigned char a是代码值,范围是0~31
{
char s[4];
unsigned char data_x=0;
sprintf(s,"%4d",a); //通过 sprintf 函数把需要显示的电压数据转换成ASII 码,并存于数组 S 中
spiled(0x12);
data_x=s[3];data_x=data_x&0X0F; data_x=table[data_x];
spiled(data_x);
data_x=s[2];data_x=data_x&0X0F; data_x=table0[data_x];
spiled(data_x);
data_x=s[1];data_x=data_x&0X0F; data_x=table[data_x];
spiled(data_x);
data_x=s[0];data_x=data_x&0X0F; data_x=table[data_x];
spiled(data_x);
}
int main (void)
{
/* Initialization of the system and the functions*/
//INIT_UART1();
//INIT_UART2();
INIT_UART2_485();
init_SPI1();
unsigned int i=0;
///*while(1)*//*while(1)*//*while(1)*//*while(1)*//*while(1)*//*while(1)*//*while(1)*///
while(1)
{
display(receive[0]);
communicate485();
///向上发送=》OK
/**/
/*
if(i<65530){i++;}//LATDbits.LATD1=1;
else{i=0;SendMonitor485();}//LATDbits.LATD1=0;
*/
for(;i<100;i++);
}
//end of while(1);end of while(1);end of while(1);end of while(1);end of while(1);//
}
/*---------------------------------- End of MAIN ----------------------------------------*/
/*---------------------------------- End of MAIN ----------------------------------------*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -