【正文】
} // ADC 轉(zhuǎn)換后于輸入數(shù)字量比較運(yùn)算程序 display(weishu)。volt[0]=9。 } } else { volt[0]。volt[0]=9。volt[0]=10。 if(volt[0]==10){volt[1]++。 if(volt[1]==10) { volt[2]++。volt[1]=10。} // 如果是一位數(shù)的話,將這個(gè)數(shù)放到第二個(gè)數(shù)碼管,同時(shí)將小數(shù)點(diǎn)輸出,第一位變?yōu)?0,位數(shù)加一 if(weishu==2){volt[0]++。 //調(diào)用顯示函數(shù) } else if(keynum==12) //判斷按鍵,如果是加鍵 { temp1=temp1+2。 break。 } i=0。 //在第二個(gè)數(shù)碼管 輸出顯示小數(shù)點(diǎn) } else if(keynum==11) //判斷按鍵,如果是確認(rèn)鍵 { weishu=i。 flag++。 // 將數(shù)值在第一個(gè)數(shù)碼管中顯示 if(flag==0) voltage=voltage*10+keynum。 for(weishu=0。 //p0 口置 0,復(fù)位 while(1) { keynum=keyscan()。 weishu=1。 i=0。 // 將 P0口數(shù)據(jù)送 LED 顯示 delay(6)。 P2=0xFE。x) for(y=110。 uchar volt[4]={0,0,0,0}。 } } else break。break。break。 P1=P1amp。 temp=P1。 temp=P1。break。break。 while(P1!=0xf0)。0xf0。0xf0。 } } else break。break。break。 P1=P1amp。 temp=P1。 temp=P1。break。break。 while(P1!=0xf0)。0xf0。0xf0。 num=17。 init bank mechanism to code bank 0 LJMP C_START END 鍵盤掃描程序 include define uchar unsigned char define uint unsigned int sbit key1=P1^0。 Standard SFR Symbols ACC DATA 0E0H B DATA 0F0H SP DATA 81H DPL DATA 82H DPH DATA 83H NAME C_STARTUP C_C51STARTUP SEGMENT CODE STACK SEGMENT IDATA RSEG STACK DS 1 EXTRN CODE (?C_START) PUBLIC C_STARTUP CSEG AT 0 ?C_STARTUP: LJMP STARTUP1 RSEG C_C51STARTUP STARTUP1: IF IDATALEN 0 MOV R0,IDATALEN 1 CLR A IDATALOOP: MOV R0,A DJNZ R0,IDATALOOP ENDIF IF XDATALEN 0 MOV DPTR,XDATASTART MOV R7,LOW (XDATALEN) IF (LOW (XDATALEN)) 0 MOV R6,(HIGH (XDATALEN)) +1 ELSE MOV R6,HIGH (XDATALEN) ENDIF CLR A XDATALOOP: MOVX DPTR,A INC DPTR DJNZ R7,XDATALOOP DJNZ R6,XDATALOOP ENDIF IF PPAGEENABLE 0 MOV PPAGE_SFR,PPAGE ENDIF IF PDATALEN 0 MOV R0,LOW (PDATASTART) MOV R7,LOW (PDATALEN) CLR A PDATALOOP: MOVX R0,A INC R0 DJNZ R7,PDATALOOP ENDIF IF IBPSTACK 0 EXTRN DATA (?C_IBP) MOV C_IBP,LOW IBPSTACKTOP ENDIF IF XBPSTACK 0 EXTRN DATA (?C_XBP) MOV C_XBP,HIGH XBPSTACKTOP MOV C_XBP+1,LOW XBPSTACKTOP ENDIF IF PBPSTACK 0 EXTRN DATA (C_PBP) MOV C_PBP,LOW PBPSTACKTOP ENDIF MOV SP,STACK1 。 SFR that supplies uppermost address byte 。 set to 1 if pdata object are used. 。 The following EQU statements define the xdata page used for pdata 。 。 Stack Space for reentrant functions in the COMPACT model. PBPSTACK EQU 0 。 Stack Space for reentrant functions in the LARGE model. XBPSTACK EQU 0 。 Stack Space for reentrant functions in the SMALL model. IBPSTACK EQU 0 。 。 runtime routines must be set to zero. 。 the length of PDATA memory in bytes. 。 the absolute startaddress of XDATA memory XDATA 存儲(chǔ)的實(shí)際起始地址 XDATALEN EQU 0H 。 。 。 。 To link the modified file to your application use the following 。 To translate this file use A51 with the following invocation: 。 This file is part of the C51 Compiler package //這個(gè)文件是 c51 鏈接的數(shù)據(jù) 。經(jīng)過本次畢業(yè)設(shè)計(jì)把我大學(xué) 三 年來所學(xué)的理論知識(shí)轉(zhuǎn)化為實(shí)際應(yīng)用,既鍛煉了我們的實(shí)際操作能力,又使理論知識(shí)得以加強(qiáng)和升華,激發(fā)了創(chuàng)新意識(shí)。本設(shè)計(jì)輸出的電壓穩(wěn)壓精度高,可以用在對(duì)直流電壓要求較高的設(shè)備上,或在科研實(shí)驗(yàn)室中當(dāng)作實(shí)驗(yàn)電源使用?!辨I? 否 取消鍵? 是 2 2 否 3 數(shù)字鍵? 否 取消鍵? 是 否 3 判斷按鍵 顯示 〈 PLEASE SET 〉 VOLTAGE V 是 4 確認(rèn)鍵? 否 取消鍵?