|
pads畫的數(shù)控開關(guān)電源原理圖和PCB圖如下:(51hei附件中可下載工程文件)
1.png (12.26 KB, 下載次數(shù): 123)
下載附件
2020-6-15 19:37 上傳
制作出來的實(shí)物圖如下:
3.png (854.09 KB, 下載次數(shù): 113)
下載附件
2020-6-15 19:37 上傳
4.png (668.27 KB, 下載次數(shù): 120)
下載附件
2020-6-15 19:37 上傳
電壓調(diào)節(jié)是小數(shù)點(diǎn)后兩位。
/分255級(jí)控制
//3個(gè)按鍵:1.加鍵 長(zhǎng)按連加 2.減鍵 長(zhǎng)按連減 3.讀出預(yù)存鍵 長(zhǎng)按保存當(dāng)前電壓
單片機(jī)源程序如下:
#include "stc15w204s.h"
#include "flash.h"
#define MAIN_Fosc 12000000 //定義主時(shí)鐘
typedef unsigned long u32; //32位無符號(hào)整型數(shù)
typedef unsigned int u16; //16位無符號(hào)整型數(shù)
typedef unsigned char u8; //8位無符號(hào)整型數(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}; //矩陣按鍵的當(dāng)前狀態(tài)
u16 KeyDownTime[2]= {0, 0}; //矩陣按鍵按下時(shí)間
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); //初始化定時(shí)器ms
EA = 1; //允許全局中斷
Zi=eeprom_read(0) ; // 讀保存在Flash中的電壓值
ShuChu(); //數(shù)值輸出到管腳
_nop_ ();
_nop_ ();
_nop_ (); //等待3個(gè)指令周期
Kai=0; //開啟LM2576控制端
while (1)
{
KeyDriver(); //按鍵處理
}
}
|
評(píng)分
-
查看全部評(píng)分
|