本设计:
基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文)
原理图:Altium Designer
程序编译器:keil 5
编程语言:C语言
编号C0019
下载链接
【腾讯文档】C0019 网盘链接/doc/DS2NVbkhWZG9GQnd2
本设计采用单相互感式计量模块检测交流用电量,利用 RC522 射频模块完
成刷卡计费系统设计。STM32F103C8T6 通过 Modbus 串行传输通信协议与计量
模块进行通信,获得实时电压,实时电流和累计用电量。整个电量检测模块使用电流互感器和光耦隔离,对使用者和控制电路板进行保护。利用 RC522 射频
模块对不同 IC 卡进行读写操作,完成充值,查询和扣费操作,HMI 串口触摸
屏同步显示操作步骤信息。IC 卡号可以储存在 EEPROM 中,保留用户信息。
电参数信息可通过蓝牙发送到其他蓝牙设备上,通过跳线选择 RS232 通信将信
息传输到串行设备上。系统完成硬件电路和程序设计,适合在汽车充电桩上作
为计费系统使用。
STM32F103C8T6 作为中央控制芯片,其它模块包括:AMS1117- 3.3V 稳压电源、、HMI 串口显示屏、晶振与复位电路、RS232 通信模块、RFID-RC522 射频模块、LED 显示、EEPROM 模块和隔离模块。
原理图(提供源文件):
PCB(提供源文件):
源程序(提供源文件):
int main(void){char showBuff[80];GPIO_InitTypeDef GPIO_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// ÉèÖÃÖжÏÓÅÏȼ¶·Ö×é2delay_init();//ÑÓʱº¯Êý³õʼ»¯ uart1_init(9600);uart2_init(9600);uart3_init(4800);LED_Init(); //³õʼ»¯ÓëLEDÁ¬½ÓµÄÓ²¼þ½Ó¿ÚKEY_Init();//°´¼ü³õʼ»¯//TIM2_Int_Init(4999,71); //(1000*72/72(Mhz))us=1ms//TIM3_Int_Init(999,71);AT24CXX_Init();//IIC³õʼ»¯ InitRc522();power_ClearValue();while(1){Charge_GetValue();memset(showBuff,0,sizeof(showBuff));snprintf(showBuff,sizeof(showBuff),"V:%.2fV,I:%.2fA,E:%.2fkW-h\r\n", control.V,control.I,control.E);UsartPrintf(USART2,showBuff);switch(TFT_Command){case TFT_CommandMain:memset(showBuff,0,sizeof(showBuff));snprintf(showBuff,sizeof(showBuff),"main.t0.txt=\"µçѹ:%.2fV\"", control.V);UsartPrintf(USART1,showBuff);UsartPrintf(USART1,sendEnd);memset(showBuff,0,sizeof(showBuff));snprintf(showBuff,sizeof(showBuff),"main.t1.txt=\"µçÁ÷:%.2fA\"", control.I);UsartPrintf(USART1,showBuff);UsartPrintf(USART1,sendEnd);getRFID=0;break;case TFT_CommandStart:memset(showBuff,0,sizeof(showBuff));snprintf(showBuff,sizeof(showBuff),"start.t0.txt=\"µçѹ:%.2fV\"", control.V);UsartPrintf(USART1,showBuff);UsartPrintf(USART1,sendEnd);memset(showBuff,0,sizeof(showBuff));snprintf(showBuff,sizeof(showBuff),"start.t1.txt=\"µçÁ÷:%.2fA\"", control.I);UsartPrintf(USART1,showBuff);UsartPrintf(USART1,sendEnd);memset(showBuff,0,sizeof(showBuff));snprintf(showBuff,sizeof(showBuff),"start.t2.txt=\"µçÁ¿:%.2fkW-h\"", control.E);UsartPrintf(USART1,showBuff);UsartPrintf(USART1,sendEnd);memset(showBuff,0,sizeof(showBuff));snprintf(showBuff,sizeof(showBuff),"start.t3.txt=\"½ð¶î:%.1fÔª\"", control.E*Unit_price);UsartPrintf(USART1,showBuff);UsartPrintf(USART1,sendEnd);break;case TFT_CommandQuery:if(!RFID_find()){UsartPrintf(USART1,"vis g0,0");//¹Ø±Õ¹ö¶¯Îı¾UsartPrintf(USART1,sendEnd);temp_money=Read_overage();memset(showBuff,0,sizeof(showBuff));snprintf(showBuff,sizeof(showBuff),"query.t0.txt=\"Óà¶î:%.1lfÔª\"", temp_money);UsartPrintf(USART1,showBuff);UsartPrintf(USART1,sendEnd);}break;case TFT_CommandRecharge:if(!RFID_find() && getRFID==0){UsartPrintf(USART1,"page recharge");UsartPrintf(USART1,sendEnd);getRFID=1;}if(alterInfo.rev_idle){temp_money=alterInfo.alterBuf[4]+Read_overage();RFID_find();write_overage(temp_money);UsartPrintf(USART1,"page main");UsartPrintf(USART1,sendEnd);TFT_Command=TFT_CommandMain;alterInfo.rev_idle=0;}break;case TFT_CommandConsume:if(!RFID_find()){UsartPrintf(USART1,"vis g0,0");//¹Ø±Õ¹ö¶¯Îı¾UsartPrintf(USART1,sendEnd);//µ÷ÊÔtemp_money=Read_overage()-control.E*Unit_price;test=(Read_overage()-control.E*Unit_price)*10;temp_money=(double)test/10;memset(showBuff,0,sizeof(showBuff));snprintf(showBuff,sizeof(showBuff),"consume.t0.txt=\"Óà¶î:%.1lfÔª\"", temp_money-10);UsartPrintf(USART1,showBuff);UsartPrintf(USART1,sendEnd);delay_ms(1000);RFID_find();write_overage(temp_money-10);power_ClearValue();//Çå³ýµçÁ¿TFT_Command=TFT_CommandMain;//±ÜÃâÖظ´¿Û·Ñ}break;default:break;}}}
论文报告部分目录:
资料清单如下:
温馨提示:
1、拿到压缩包文件之后先解压,再运行!!压缩名称带有特殊符号的,要把特殊符号删除再解压,例如⭐;
2、单片机芯片是通用的,无论51还是52、无论stc还是at都一样,引脚功能都是一样的,程序也是一样的,芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片;
3、仿真原理图和硬件原理图会有着些许区别,如果要做硬件请参照硬件原理图,硬件原理图中的. Sch .pcb等格式要用altium designer 打开;
4、如果没有装KEIL软件:.c .h结尾的文件即为程序,可以选择记事本、Notepad++、Source Insight 4.0、或其他C语言软件打开,打开的就是程序了。其他后缀的文件是写程序编译时自动生成的,没什么用的,不用管;
5、仿真时请打开“.pdsprj”工程文件或“.DSN”工程文件,“.pdsprj”是proteus8版本画的,“.DSN”是proteus7版本画的,版本是向上兼容的,理论上proteus8可以打开“.DSN”工程文件,proteus7打不开“.pdsprj”工程文件;
6、后缀.hex结尾的文件为烧录文件,仿真时一定要记得烧录程序(.hex)。
注:
请大家将keil安装在默认路径,C:\Keil,不要安装在其他盘