|
本帖最后由 zuse1021 于 2020-5-21 21:09 編輯
之前做過(guò)一個(gè)微波爐變壓器版的點(diǎn)焊機(jī),總感覺(jué)能力不夠,在看到隔壁論壇的開(kāi)源的超級(jí)電容點(diǎn)焊機(jī)后,打算仿一個(gè)。
原版本兩個(gè)超級(jí)電容用均衡版充電,MOS利用升壓電路。感覺(jué)比較麻煩,于是打算兩個(gè)恒流模塊加上兩個(gè)獨(dú)立的220轉(zhuǎn)5V的電源,做成平衡充給電容充電。然后MOS的升壓也直接用成品的升壓模塊,更方便。
手頭正好有一些STC的8A8K64S4A12的直插40針的單片機(jī),就利用起來(lái)了。既然用了這個(gè)單片機(jī),順便就加上了測(cè)電容電壓的功能。
下面介紹一下PCB:

考慮到5塊包郵的嘉立創(chuàng),PCB的長(zhǎng)度被設(shè)定為10cm,右上方是0.36寸四位共陽(yáng)數(shù)碼管,三極管是四個(gè)9012,四個(gè)按鍵,其它元件在PCB上都標(biāo)注了。
BOOST MODULE是升壓模塊,初步打算用這個(gè)模塊:

輸出控制在16v~18v左右,PCB也是按這個(gè)模塊的尺寸來(lái)畫(huà)的。然而買回來(lái)一個(gè)卻無(wú)法升壓,大概是壞了,因?yàn)橹毁I了1個(gè),所以也不知道這個(gè)模塊是不是能用上,另一家買的另一種升壓模塊倒是可以升壓,但尺寸不對(duì)應(yīng)哈哈。
四個(gè)按鍵用于控制脈沖長(zhǎng)度、脈沖間隔和脈沖次數(shù)的設(shè)定,同時(shí)可以利用EEPROM儲(chǔ)存,斷電保存上一次的設(shè)置,還用于顯示電容電壓。
下面介紹按鍵的作用:
key1--進(jìn)入菜單1--脈沖長(zhǎng)度調(diào)節(jié)--顯示脈沖長(zhǎng)度
key1-- +1
key2-- -1
key3-- 恢復(fù)預(yù)設(shè)值
key4-- back to main
key2--進(jìn)入菜單2--脈沖間隔調(diào)節(jié)--顯示脈沖間隔
key1-- +1
key2-- -1
key3-- 恢復(fù)預(yù)設(shè)值
key4-- back to main
key3--進(jìn)入菜單3--脈沖次數(shù)調(diào)節(jié)--顯示脈沖次數(shù)
key1-- +1
key2-- -1
key3-- 恢復(fù)預(yù)設(shè)值
key4-- back to main
key4--進(jìn)入菜單4--電容電壓顯示--顯示總電壓
key1-- 顯示第一節(jié)電容電壓
key2-- 顯示第二節(jié)電容電壓
key3-- 保持當(dāng)前配置于EEPROM
key4-- back to main
MOS板初步打算16個(gè)irf3713并聯(lián),也可以某寶入一個(gè)成品的點(diǎn)焊MOS板。
實(shí)際上,只測(cè)試了電路和程序沒(méi)問(wèn)題,還沒(méi)有實(shí)際裝起來(lái)。程序和PCB文件待補(bǔ)充,下面是兩張焊了一部分的照片。
3L補(bǔ)充了PCB和程序,有興趣的可以下載大致分了兩個(gè)部分,一部分是main.c,是主程序,另一部分是ADCread.c,用于測(cè)電壓。下面把main.c貼上。
- #include <STC8.H>
- #include <stdio.h>
- #include <Intrins.h>
- #include <adcread.h>
- #define WT_12M 0x83
- typedef unsigned int u16; //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
- typedef unsigned char u8; //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
- sbit key1=P0^0; //P0.0端口定義為時(shí)間減
- sbit key2=P0^1; //P0.1端口定義為時(shí)間加
- sbit key3=P0^2; //P0.2端口定義為按下顯示第一節(jié)電容電壓
- sbit key4=P0^3; //P0.3端口定義為按下顯示第二節(jié)電容電壓
- sbit out=P4^1; //P4.1端口定義為驅(qū)動(dòng)脈沖輸出
- sbit tst=P5^5; //P5.5端口定義為檢測(cè)點(diǎn)焊筆準(zhǔn)備焊接的輸入端
- sbit DIG1=P2^0; //P2.0端口定義為DIG1
- sbit DIG2=P2^1; //P2.1端口定義為DIG2
- sbit DIG3=P2^2; //P2.2端口定義為DIG3
- sbit DIG4=P2^3; //P2.3端口定義為DIG4
- u16 pulse; //輸出脈沖長(zhǎng)度,×0.1毫秒
- u16 interval; //脈沖間隔,×0.1毫秒
- u8 num; //脈沖次數(shù)
- u16 v1; //第一電容電壓
- u16 v2; //第二電容電壓
- u16 vcc; //總電壓
- u8 Page_Sgin; //頁(yè)面選擇
- u8 zz;
- //數(shù)碼管真值表//
- u8 code LED_CODE[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示0~9,
- u8 code LED_S[2]={0x9f,0xaf}; //顯示上折角,下折角
- //延時(shí)100us//
- void Delay(long t) //STC8Axx基于STC-Y6指令集@12.000MHz,from:STC-ISP;
- {
- u8 ia, ja;
- long ka;
- for(ka=t;ka>0;ka--)
- {
- _nop_();
- ia = 2;
- ja = 140;
- do
- {
- while (--ja);
- } while (--ia);
- }
- }
- //檢測(cè)點(diǎn)焊筆準(zhǔn)備//
- bit stst(void)
- {
- static unsigned int l = 0; //定義靜態(tài)變量,用來(lái)記錄延時(shí)用.
- if(tst == 0) //如果檢測(cè)到按鍵引腳有低電平,記數(shù)變量開(kāi)始累加.
- {
- if(l <7000) //控制延時(shí)計(jì)數(shù)返0,因?yàn)楫?dāng)按鍵不松開(kāi)時(shí),i一直在累加
- l++; //CPU每檢測(cè)到一次按鍵引腳為低電平0,i就累加1次.
- }
- else //如果按鍵沒(méi)有按下或者按下后有高電平(抖動(dòng))i清0
- l = 0;
- if(l == 6999) //如果變量i的值累加到6999,說(shuō)明點(diǎn)焊筆已經(jīng)做好準(zhǔn)備,可以焊接了.
- return 1; //返回1,說(shuō)明已檢測(cè)到按鍵有效值.
- else
- return 0; //返回0,說(shuō)明沒(méi)有檢測(cè)到有效值.
- }
- void IapIdle()
- {
- IAP_CONTR = 0; //關(guān)閉IAP功能
- IAP_CMD = 0; //清除命令寄存器
- IAP_TRIG = 0; //清除觸發(fā)寄存器
- IAP_ADDRH = 0x80; //將地址設(shè)置到非IAP區(qū)域
- IAP_ADDRL = 0;
- }
- char IapRead(int addr) //EEPROM讀一字節(jié)
- {
- char dat;
- IAP_CONTR = WT_12M; //使能IAP
- IAP_CMD = 1; //設(shè)置IAP讀命令
- IAP_ADDRL = addr; //設(shè)置IAP低地址
- IAP_ADDRH = addr >> 8; //設(shè)置IAP高地址
- IAP_TRIG = 0x5a; //寫(xiě)觸發(fā)命令(0x5a)
- IAP_TRIG = 0xa5; //寫(xiě)觸發(fā)命令(0xa5)
- _nop_();
- dat = IAP_DATA; //讀IAP數(shù)據(jù)
- IapIdle(); //關(guān)閉IAP功能
- return dat;
- }
- void IapProgram(int addr, char dat) //EEPROM寫(xiě)一字節(jié)
- {
- IAP_CONTR = WT_12M; //使能IAP
- IAP_CMD = 2; //設(shè)置IAP寫(xiě)命令
- IAP_ADDRL = addr; //設(shè)置IAP低地址
- IAP_ADDRH = addr >> 8; //設(shè)置IAP高地址
- IAP_DATA = dat; //寫(xiě)IAP數(shù)據(jù)
- IAP_TRIG = 0x5a; //寫(xiě)觸發(fā)命令(0x5a)
- IAP_TRIG = 0xa5; //寫(xiě)觸發(fā)命令(0xa5)
- _nop_();
- IapIdle(); //關(guān)閉IAP功能
- }
- void IapErase(int addr) //EEPROM擦除一扇區(qū)=512字節(jié)
- {
- IAP_CONTR = WT_12M; //使能IAP
- IAP_CMD = 3; //設(shè)置IAP擦除命令
- IAP_ADDRL = addr; //設(shè)置IAP低地址
- IAP_ADDRH = addr >> 8; //設(shè)置IAP高地址
- IAP_TRIG = 0x5a; //寫(xiě)觸發(fā)命令(0x5a)
- IAP_TRIG = 0xa5; //寫(xiě)觸發(fā)命令(0xa5)
- _nop_(); //
- IapIdle(); //關(guān)閉IAP功能
- }
- /********************************
- 數(shù)碼管動(dòng)態(tài)顯示程序
- ********************************/
- void display(u8 wei)
- {
- u8 ke;
- u8 dd=0;
- switch(wei)
- {
- case 1://顯示脈沖長(zhǎng)度
- for(dd=0;dd<3;dd++)
- {
- if(dd == 0) //顯示個(gè)位
- {
- P2=0xf7;//個(gè)位段碼開(kāi)
- P3=LED_CODE[pulse%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 1&& pulse/10%10!=0) //顯示十位
- {
- P2=0xfb;//十位段碼開(kāi)
- P3=LED_CODE[pulse/10%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 2 && pulse/100%10!=0) //顯示百位
- {
- P2=0xfd;//百位段碼開(kāi)
- P3=LED_CODE[pulse/100%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- }
- break;
- case 2: //顯示脈沖間隔
- for(dd=0;dd<3;dd++)
- {
- if(dd == 0) //顯示個(gè)位
- {
- P2=0xf7;//個(gè)位段碼開(kāi)
- P3=LED_CODE[interval%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 1&& interval/10%10!=0) //顯示十位
- {
- P2=0xfb;//十位段碼開(kāi)
- P3=LED_CODE[interval/10%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 2 && interval/100%10!=0) //顯示百位
- {
- P2=0xfd;//百位段碼開(kāi)
- P3=LED_CODE[interval/100%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- }
- break;
- case 3: //顯示脈沖次數(shù)
- for(dd=0;dd<2;dd++)
- {
- if(dd == 0) //顯示個(gè)位
- {
- P2=0xf7;//個(gè)位段碼開(kāi)
- P3=LED_CODE[num%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 1&& num/10!=0) //顯示十位
- {
- P2=0xfb;//十位段碼開(kāi)
- P3=LED_CODE[num/10%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- }
- break;
- case 4: //顯示總電壓
- for(dd=0;dd<4;dd++)
- {
- if(dd == 0) //顯示個(gè)位
- {
- P2=0xf7;//個(gè)位段碼開(kāi)
- P3=LED_CODE[vcc%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 1) //顯示十位
- {
- P2=0xfb;//十位段碼開(kāi)
- P3=LED_CODE[vcc/10%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 2) //顯示百位
- {
- P2=0xfd;//百位段碼開(kāi)
- P3=LED_CODE[vcc/100%10];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 3) //顯示千位
- {
- P2=0xfe;//千位段碼開(kāi)
- P3=LED_CODE[vcc/1000]&0x7f;
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- }
- break;
- case 5: //顯示第一節(jié)電容電壓
- for(dd=0;dd<4;dd++)
- {
- if(dd == 0) //顯示個(gè)位
- {
- P2=0xf7;//個(gè)位段碼開(kāi)
- P3=LED_CODE[v1/10%10]; //個(gè)位顯示電壓小數(shù)點(diǎn)后第二位
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 1) //顯示十位
- {
- P2=0xfb;//十位段碼開(kāi)
- P3=LED_CODE[v1/100%10]; //十位顯示電壓小數(shù)點(diǎn)后第一位
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 2) //顯示百位
- {
- P2=0xfd;//百位段碼開(kāi)
- P3=LED_CODE[v1/1000]&0x7f; //百位顯示電壓小數(shù)點(diǎn)前一位+小數(shù)點(diǎn)
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 3) //顯示千位
- {
- P2=0xfe;//千位段碼開(kāi)
- P3=LED_S[0]; //千位顯示第一節(jié)電容符號(hào)
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- }
- break;
- case 6: //顯示第二節(jié)電容電壓
- for(dd=0;dd<4;dd++)
- {
- if(dd == 0) //顯示個(gè)位
- {
- P2=0xf7;//個(gè)位段碼開(kāi)
- P3=LED_CODE[v2/10%10]; //個(gè)位顯示電壓小數(shù)點(diǎn)后第二位
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 1) //顯示十位
- {
- P2=0xfb;//十位段碼開(kāi)
- P3=LED_CODE[v2/100%10]; //十位顯示電壓小數(shù)點(diǎn)后第一位
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 2) //顯示百位
- {
- P2=0xfd;//百位段碼開(kāi)
- P3=LED_CODE[v2/1000]&0x7f; //百位顯示電壓小數(shù)點(diǎn)前一位+小數(shù)點(diǎn)
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 3) //顯示千位
- {
- P2=0xfe;//千位段碼開(kāi)
- P3=LED_S[1]; //千位顯示第二節(jié)電容符號(hào)
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- }
- break;
- case 7://顯示主菜單
- for(dd=0;dd<4;dd++)
- {
- if(dd == 0) //顯示個(gè)位
- {
- P2=0xf7;//個(gè)位段碼開(kāi)
- P3=LED_S[0];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 1) //顯示十位
- {
- P2=0xfb;//十位段碼開(kāi)
- P3=LED_S[1];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 2) //顯示百位
- {
- P2=0xfd;//百位段碼開(kāi)
- P3=LED_S[0];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- if(dd == 3) //顯示千位
- {
- P2=0xfe;//千位段碼開(kāi)
- P3=LED_S[1];
- for(ke = 0;ke <100;ke++); //延時(shí)一段時(shí)間
- P2=0xff;//段碼關(guān)
- P3=0xff;//位碼消隱
- }
- }
- default:
- break;
- }
- }
- //按鍵處理函數(shù)
- //返回按鍵值1~4
- //mode:0,不支持連續(xù)按;1,支持連續(xù)按;
- //0,沒(méi)有任何按鍵按下
- u8 KEY_Scan(u8 mode)
- {
- static u8 key_up=1;//按鍵標(biāo)志
- if(mode) key_up=1; //支持連按
- //檢測(cè)按鍵是否按下
- if(key_up&&(key1==0||key2==0||key3==0||key4==0))
- {
- Delay(100);//去抖動(dòng)
- if(key_up&&(key1==0||key2==0||key3==0||key4==0))
- {
- key_up=0;
- if (key1 == 0) return 1;
- else if(key2 == 0) return 2;
- else if(key3 == 0) return 3;
- else if(key4 == 0) return 4;
-
- }
- }
- //檢測(cè)按鍵是否松開(kāi)
- else if(key1==1 && key2==1 && key3==1 && key4==1) key_up=1;
- return 0;//無(wú)按鍵按下
- }
- void Main_Menu()
- {
- u8 i;
- u8 m5=stst();
- if(m5 == 1)
- {
- for(i=0;i<num;i++) //加入 for循環(huán),表明for循環(huán)大括號(hào)中的程序循環(huán)執(zhí)行num次
- {
- out=0; //將P4.1口賦值 0,對(duì)外輸出低電平
- Delay(pulse); //調(diào)用延時(shí)程序;更改延時(shí)數(shù)字可以更改延時(shí)長(zhǎng)度;用于改變輸出脈沖時(shí)間pulse×100us
- out=1; //將P4.1口賦值 1,對(duì)外輸出高電平
- Delay(interval);//等待間隔時(shí)間
- }
- }
- display(7); //顯示主菜單CC
- switch(KEY_Scan(0))
- {
- case 1: //key1按下
- Page_Sgin=1; //頁(yè)面選擇置1,進(jìn)入菜單1--脈沖長(zhǎng)度調(diào)節(jié)
- break;
- case 2: //key2按下
- Page_Sgin=2; //頁(yè)面選擇置2,進(jìn)入菜單2--脈沖間隔調(diào)節(jié)
- break;
- case 3: //key3按下
- Page_Sgin=3; //頁(yè)面選擇置3,進(jìn)入菜單3--脈沖次數(shù)調(diào)節(jié)
- break;
- case 4: //key4按下
- Page_Sgin=4; //頁(yè)面選擇置4,進(jìn)入菜單4--電容電壓顯示
- break;
- default:
- break;
- }
- }
- void Menu_1() //菜單1--脈沖長(zhǎng)度調(diào)節(jié)
- {
- switch(KEY_Scan(0))
- {
- case 1: //key1按下
- if(pulse < 999)
- pulse++; //脈沖長(zhǎng)度+1
- break;
- case 2: //key2按下
- if(pulse > 1)
- pulse--; //脈沖長(zhǎng)度-1
- break;
- case 3: //key3按下
- pulse=20; //脈沖長(zhǎng)度恢復(fù)預(yù)置,2ms
- break;
- case 4: //key4按下
- Page_Sgin=0; //back to 主菜單
- break;
- default :
- break;
- }
- display(1); //顯示菜單1-顯示脈沖長(zhǎng)度
- }
- void Menu_2() //菜單2--脈沖間隔調(diào)節(jié)
- {
- switch(KEY_Scan(0))
- {
- case 1: //key1按下
- if(interval < 999)
- interval++; //脈沖長(zhǎng)度+1
- break;
- case 2: //key2按下
- if(interval > 1)
- interval--; //脈沖長(zhǎng)度-1
- break;
- case 3: //key3按下
- interval=3; //脈沖長(zhǎng)度恢復(fù)預(yù)置,300us
- break;
- case 4: //key4按下
- Page_Sgin=0; //back to 主菜單
- break;
- default :
- break;
- }
- display(2); //顯示菜單2-顯示間隔長(zhǎng)度
- }
- void Menu_3() //菜單3--脈沖次數(shù)調(diào)節(jié)
- {
- switch(KEY_Scan(0))
- {
- case 1: //key1按下
- if(num < 99)
- num++; //脈沖次數(shù)+1
- break;
- case 2: //key2按下
- if(num > 1)
- num--; //脈沖次數(shù)-1
- break;
- case 3: //key3按下
- num=3; //脈沖次數(shù)恢復(fù)預(yù)置,3次
- break;
- case 4: //key4按下
- Page_Sgin=0; //back to 主菜單
- break;
- default :
- break;
- }
- display(3); //顯示菜單3-顯示脈沖次數(shù)
- }
- void Menu_4() //菜單4--電容電壓顯示
- {
- u16 ib,jb; //定義延遲用臨時(shí)變量
- v1=GetResult (7); //獲取第一節(jié)電池電壓
- v2=vcc-v1; //計(jì)算得到第二節(jié)電池電壓
-
- switch(KEY_Scan(0))
- {
- case 1: //key1按下
- for (ib = 5000; ib > 0; ib--) //外層循環(huán)1000次
- {
- for (jb = 124; jb > 0; jb--) ; //內(nèi)層循環(huán)124次,延時(shí)一定長(zhǎng)度用于顯示第一節(jié)電容電壓
- {
- display(5); //顯示第一節(jié)電容電壓
- }
- }
- break;
- case 2: //key2按下
- for (ib = 5000; ib > 0; ib--) //外層循環(huán)1000次
- {
- for (jb = 124; jb > 0; jb--) ; //內(nèi)層循環(huán)124次,延時(shí)一定長(zhǎng)度用于顯示第二節(jié)電容電壓
- {
- display(6); //顯示第二節(jié)電容電壓
- }
- }
- break;
- case 3: //key3按下,保持當(dāng)前配置于EEPROM
- IapErase(0x0400); //擦除EEPROM
- IapProgram(0x0400, pulse>> 8); //寫(xiě)入pulse高8位
- IapProgram(0x0401, pulse & 0xff); //寫(xiě)入pulse低8位
- IapProgram(0x0402, interval>> 8); //寫(xiě)入interval高8位
- IapProgram(0x0403, interval & 0xff); //寫(xiě)入interval低8位
- IapProgram(0x0404, num); //寫(xiě)入num
- break;
- case 4: //key4按下
- Page_Sgin=0; //back to 主菜單
- break;
- default :
- break;
- }
- display(4); //顯示總電壓=VCC
- }
- void lnterface() //人機(jī)界面
- {
- switch(Page_Sgin)
- {
- case 0:
- Main_Menu(); break;
- case 1:
- Menu_1(); break;
- case 2:
- Menu_2(); break;
- case 3:
- Menu_3(); break;
- case 4:
- Menu_4(); break;
- default : break;
- }
- }
- void main() //主函數(shù)//
- {
- pulse = IapRead(0x0400); //pulse讀EEPROM
- pulse <<= 8; //pulse恢復(fù)高位
- pulse |= IapRead(0x0401); //pulse或上低位
- interval = IapRead(0x0402); //interval讀EEPROM
- interval <<= 8; //interval恢復(fù)高位
- interval |= IapRead(0x0403); //interval或上低位
- num=IapRead(0x0404); //num=讀EEPROM
- out=1; //初始化輸出端口
- tst= 1; //初始化焊筆檢測(cè)端口
- Page_Sgin=0; //初始化頁(yè)面選擇
- vcc=GetVCC(); //獲取總電壓
- while(1)
- {
- lnterface();
- }
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|