基于ADE7758的智能電表,完美源程序
單片機源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "key.h"
- #include "timer.h"
- #include "lcd.h"
- #include "rtc.h"
- #include "my.h"
- #include "myeth.h"
- #include "spi.h"
- #include "ade7758.h"
- #include "remote.h"
- #include "text.h"
- u8 tRxBuf[300],tTxBuf[300],tDataBuf[900];
- extern u8 MyCommunicationMode;
- int main(void)
- {
- u8 key,t;
- u8 DataBuf[300]={0x00,0x22,0x50,0x22,0x60,0x22,0x23,0x51,0x00,0x45,0x23,0x01,0x89,0x37,0x12};
- u32 ans,Overflow,rec,i;
- u8 ans1[4];
- u16 len;
- delay_init(); //延時初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統(tǒng)中斷優(yōu)先級分組2
- uart_init(115200); //串口波特率設置
- LED_Init(); //LED初始化
- KEY_Init(); //按鍵初始化
- LCD_Init(); //LCD初始化
- FSMC_SRAM_Init(); //初始化外部SRAM
- My_RTC_Init(); //RTC初始化
- TIM3_Int_Init(999,839); //100khz的頻率,計數(shù)1000為10ms
- mymem_init(SRAMIN); //初始化內(nèi)部內(nèi)存池
- mymem_init(SRAMEX); //初始化外部內(nèi)存池
- mymem_init(SRAMCCM); //初始化CCM內(nèi)存池
- W25QXX_Init(); //W25QXX Flash初始化
- ADE_IDInitial();
- ADE_Init();
- Remote_Init();
- font_init();
- POINT_COLOR = RED; //紅色字體
-
-
- for(i=0;i<812;i++) //向W25QXX寫數(shù)據(jù)
- {
- t=i%4;
- DataBuf[i]=t;
- }
- W25QXX_Write(DataBuf,VariableAddr,812);//寫入測試數(shù)據(jù)
-
-
- while(1)
- {
- key=Remote_Scan();
-
- LCD_ShowString(30,140,200,16,16,"key0:Ethernet key1:RS485");
- MyCommunicationMode=0;
- if (key==Rem0) MyCommunicationMode=EthernetMODE;
- else if (key==Rem1) MyCommunicationMode=RS485MODE; else
- if (key==Rem2) MyCommunicationMode=ZigbeeMODE;
- if (MyCommunicationMode==EthernetMODE)
- {
- IwIPInit();
- EtherNetCommunicationProtocol(tRxBuf,tTxBuf,tDataBuf);
- } else
- if (MyCommunicationMode==RS485MODE)
- {
- RS485_Init(9600);//485初始化
- NorCommunicationProtocol(tRxBuf,tTxBuf,tDataBuf);
- } else if (MyCommunicationMode==ZigbeeMODE)
- {
- NorCommunicationProtocol(tRxBuf,tTxBuf,tDataBuf);
- }
- }
- }
復制代碼
所有資料51hei提供下載:
meter加顯示 路由器.rar
(1.32 MB, 下載次數(shù): 112)
2018-1-9 00:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|