分享一個HC8F003 無線充電方案
包括源代碼
硬件原理圖
BOM表
版本說明:
1、Holychip_WirelessCharger_Library functionV1.0.0.0 初版
2、Holychip_WirelessCharger_Library functionV1.0.0.1 修改基本參數
電路原理圖如下:
單片機源程序如下:
- /**
- * @Examle Version V1.0.0.1
- * @Demo Version V1.0.0.0
- * @Date 2018.03.01
- * ************************************************************************************
- * 客戶服務
- * 感謝您使用我們的單片機,若發現錯誤或對函數的使用存在疑問。
- **/
- #define ALLOCATE_EXTERN
- #include "Include.h"
- #define Code1_Pin P1_1
- #define Code2_Pin P2_4
- /***************************************************************************************
- * @函數名 int main()
- * @說明 主函數
- * @參數 無
- * @返回值 無
- * @注
- ***************************************************************************************/
- int main()
- {
- SystemInit(); //系統初始化
- DispalyDateInit(); //顯示 數據初始化
- QI_Init();
- EA = 1; //打開總中斷
- while(1)
- {
- Systerm();
- }
- return 0;
- }
- /***************************************************************************************
- * @說明 T0中斷服務函數
- * @參數 無
- * @返回值 無
- * @注 62.5us 中斷處理一次
- ***************************************************************************************/
- void TIMER0_Rpt(void) interrupt TIMER0_VECTOR
- {
- signal2 = Code1_Pin; //Sdata 4 62.5us 采集Code值 解碼
- signal1 = Code2_Pin; //Sdata 6 62.5us 采集Code值 解碼
- Interrupt();
- }
復制代碼- #include "Include.h"
- extern unsigned char code code_FREQ_INIT = FREQ_INIT_df;
- extern unsigned int code code_LOAD_LEVEL_TIME = LOAD_LEVEL_TIME_df;
- extern unsigned int code code_Fod_sensitivity = Fod_sensitivity_df;
- unsigned int gui_Cycle = 0; //周期時間
- unsigned int gui_DutyRatio = 0; //占空比時間
- unsigned char guc_DeadTime = 3; //死區時間設置
- /***************************************************************************************
- * @說明 系統初始化
- * @參數 無
- * @返回值 無
- * @注 無
- ***************************************************************************************/
- void SystemInit(void)
- {
- WDTCCR = 0x00; //關閉看門狗
- while((CLKCON&0x20)!=0x20); //等待內部高頻RC起振
- CLKSWR = 0x51; //選擇內部高頻時鐘為主時鐘,內部高頻RC2分頻,Fosc=16MHz
- while((CLKSWR&0xC0)!=0x40); //等待內部高頻切換完成
- CLKDIV = 0x01; //Fosc1分頻得到Fcpu,Fcpu=16MHz
-
- P0M0 = 0x83; //P01 Test P00 None
- P0M1 = 0x38; //P03 Rst P02 Test
- P0M2 = 0x33; //P05 I P04 Temp
- P0M3 = 0x33; //P07 Coil P06 2.5V
- P1M0 = 0x08; //P11 Code1 P10 Blue
- P2M0 = 0x38; //P21 SWIM P20 BEEP
- P2M1 = 0x88; //P23 PWML1 P22 PWMH2
- P2M2 = 0x80; //P25 PWML2 P24 Code2
- P2M3 = 0x88; //P27 RED P26 PWMH1
-
- PWM1_MAP = 0x26; //PWM1映射P26口
- PWM11_MAP = 0x25; //PWM11映射P23口
- PWM2_MAP = 0x23; //PWM2映射P22口
- PWM21_MAP = 0x22; //PWM21映射P25口
- PWM1C = 0x00; //PWM1和PWM11均為高有效,時鐘1分頻
- PWM2C = 0x00; //PWM2和PWM21均為高有效,時鐘1分頻
- PWM1EN = 0x01; //打開PWM1但是PWM1和PWM11不輸出
-
- PWM2EN = 0x01; //打開PWM2但是PWM2和PWM21不輸出
- Delay_Ms(1); //延時一段時間濾掉前期不穩定波形,延時時間根據實際設定,延時時間大于2個PWM周期即可
- PWM1EN |= 0x06;
- PWM2EN |= 0x06; //使能PWM輸出
- TCON1 = 0x00; //Tx0定時器時鐘為Fosc
- TMOD = 0x00; //16位重裝載定時器/計數器
- TH0 = 0xFF;
- TL0 = 0xAD; //T0定時時間62us
- IE |= 0x02; //打開T0中斷
- TCON |= 0x10; //使能T0
-
- ADCC0 = 0x80; //打開ADC轉換電源
- ADCC2 = 0xCD; //轉換結果10位數據,數據右對齊,ADC時鐘16分頻
- }
復制代碼
代碼不完整:
Holychip_WirelessCharger_Library functionV1.0.0.1.rar
(165.1 KB, 下載次數: 321)
2018-6-8 15:15 上傳
點擊文件名下載附件
無線充電源代碼
|