|
pads畫的數控開關電源原理圖和PCB圖如下:(51hei附件中可下載工程文件)
1.png (12.26 KB, 下載次數: 123)
下載附件
2020-6-15 19:37 上傳
制作出來的實物圖如下:
3.png (854.09 KB, 下載次數: 113)
下載附件
2020-6-15 19:37 上傳
4.png (668.27 KB, 下載次數: 120)
下載附件
2020-6-15 19:37 上傳
電壓調節是小數點后兩位。
/分255級控制
//3個按鍵:1.加鍵 長按連加 2.減鍵 長按連減 3.讀出預存鍵 長按保存當前電壓
單片機源程序如下:
#include "stc15w204s.h"
#include "flash.h"
#define MAIN_Fosc 12000000 //定義主時鐘
typedef unsigned long u32; //32位無符號整型數
typedef unsigned int u16; //16位無符號整型數
typedef unsigned char u8; //8位無符號整型數
/************* 本地常量聲明 **************/
#define Pin0 0x01 //IO引腳 Px.0
#define Pin1 0x02 //IO引腳 Px.1
#define Pin2 0x04 //IO引腳 Px.2
#define Pin3 0x08 //IO引腳 Px.3
#define Pin4 0x10 //IO引腳 Px.4
#define Pin5 0x20 //IO引腳 Px.5
#define Pin6 0x40 //IO引腳 Px.6
#define Pin7 0x80 //IO引腳 Px.7
#define PinAll 0xFF //IO所有引腳
/************* 本地變量聲明 **************/
sbit r7 = P3^0;
sbit r6 = P3^1;
sbit r5 = P3^2;
sbit r4 = P3^3;
sbit r3 = P3^6;
sbit r2 = P3^7;
sbit r1 = P1^0;
sbit r0 = P1^1;
sbit Kai = P1^2;
sbit K1 = P1^4;
sbit K2 = P1^5;
sbit K3 = P5^4;
u8 KeySta[2] = {1, 1}; //矩陣按鍵的當前狀態
u16 KeyDownTime[2]= {0, 0}; //矩陣按鍵按下時間
u8 Zi=0xff; //
/************* 本地函數聲明 **************/
void ConfigTimer2(u8 ms);
void KeyDriver(); //按鍵狀態處理
void KeyAction(u8 i);
void ShuChu(); //數值輸出到管腳
void main(void)
{
//IO口初始化
P1M1 |= (Pin0+Pin1);
P1M0 |= (Pin0+Pin1); //P1.0-P1.1腳定義為開漏模式
P3M1 |= (Pin0+Pin1+Pin2+Pin3+Pin6+Pin7);
P3M0 |= (Pin0+Pin1+Pin2+Pin3+Pin6+Pin7); //P3.0-P3.7腳定義為開漏模式
ConfigTimer2(5); //初始化定時器ms
EA = 1; //允許全局中斷
Zi=eeprom_read(0) ; // 讀保存在Flash中的電壓值
ShuChu(); //數值輸出到管腳
_nop_ ();
_nop_ ();
_nop_ (); //等待3個指令周期
Kai=0; //開啟LM2576控制端
while (1)
{
KeyDriver(); //按鍵處理
}
}
|
評分
-
查看全部評分
|