|
pads畫的數(shù)控開關電源原理圖和PCB圖如下:(51hei附件中可下載工程文件)
制作出來的實物圖如下:
電壓調(diào)節(jié)是小數(shù)點后兩位。
/分255級控制
//3個按鍵:1.加鍵 長按連加 2.減鍵 長按連減 3.讀出預存鍵 長按保存當前電壓
單片機源程序如下:
#include "stc15w204s.h"
#include "flash.h"
#define MAIN_Fosc 12000000 //定義主時鐘
typedef unsigned long u32; //32位無符號整型數(shù)
typedef unsigned int u16; //16位無符號整型數(shù)
typedef unsigned char u8; //8位無符號整型數(shù)
/************* 本地常量聲明 **************/
#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}; //矩陣按鍵的當前狀態(tài)
u16 KeyDownTime[2]= {0, 0}; //矩陣按鍵按下時間
u8 Zi=0xff; //
/************* 本地函數(shù)聲明 **************/
void ConfigTimer2(u8 ms);
void KeyDriver(); //按鍵狀態(tài)處理
void KeyAction(u8 i);
void ShuChu(); //數(shù)值輸出到管腳
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(); //數(shù)值輸出到管腳
_nop_ ();
_nop_ ();
_nop_ (); //等待3個指令周期
Kai=0; //開啟LM2576控制端
while (1)
{
KeyDriver(); //按鍵處理
}
}
|
-
-
-
-
-
數(shù)控開關電源.zip
2020-6-15 19:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
2.58 MB, 下載次數(shù): 163, 下載積分: 黑幣 -5
評分
-
查看全部評分
|