freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于單片機的路燈穩(wěn)壓控制系統畢業(yè)論文設計-資料下載頁

2025-06-27 19:48本頁面
  

【正文】 e uchar Disp3[]=Vol is:。//函數聲明uchar keyread(void)。//讀鍵函數void keyread2(void)。//讀鍵函數2void keyread3(void)。//讀鍵函數3void reADC(void)。//AD反饋讀數函數uchar cmp(uchar Addat,uchar DAdat)。//反饋比較函數void lcdinit()。//LCD初始化函數void lcdcmd(uchar cmd)。//LCD寫控制字函數void lcddata(uchar dat)。//LCD寫數據函數void seDAC(uchar DAdata)。//DAC送數函數void delay(uchar t)。//延時函數void extint(void)。void volchange()。//輸出電壓自增自減函數/***********************光控驅動繼電器***********************/sbit JD=P2^3。sbit GM=P3^4。void delay0(uint z)。void delay(uchar t)。void init() { TMOD=0x10。 EA=1。 ET1=1。 JD=0。 GM=0。 while(1) { if(JD==1) { delay0(10000)。 JD=0。 } } } void counter1( ) interrupt 3 { if(GM==1) {JD=1。} } void delay0(uint z) { uint x,y。 for(x=110。x0。x) for(y=z。y0。y)。 }/***********************輸出電壓自增自減程序***********************/void volchange(){ uchar i,a,b,c,y,z。 if(temp==1amp。amp。(DAdat511)){ if(q) { if(z==9){DAdat+=3。z=0。}//進位 else DAdat+=2。}else DAdat+=3。z++。if(DAdat=129){x=x+1。 lcdcmd(0x01)。 for(i=0。i7。i++) lcddata(Disp3[i])。c=x/100,a=x%100/10。b=x%10。//一位小數、個位、十位的運算lcdcmd(0x01)。for(i=0。i7。i++)lcddata(Disp3[3])。//電壓顯示 lcddata(Disp[c])。lcddata(Disp[a])。 lcddata(39。.39。)。lcddata(Disp[b])。lcddata(39。V39。)。}}else if(temp==2amp。amp。(DAdat1)){ if(q){if(y==9){DAdat=3。y=0。}//借位else DAdat=2。}else DAdat=3。y++。if(DAdat127){x=x1。 c=x/100,a=x%100/10。b=x%10。//一位小數、個位、十位的運算 lcdcmd(0x01)。 for(i=0。i7。i++) lcddata(Disp3[i])。//電壓顯示 lcddata(Disp[c])。lcddata(Disp[a])。lcddata(39。.39。)。lcddata(Disp[b])。lcddata(39。V39。)。}}hh=0。}/***********************DAC送數***********************/void seDAC(uchar DAdat){ WR=1。_Nop()。_Nop()。DAT=DAdat。WR=0。_Nop()。_Nop()。WR=1。}//**********讀鍵值**********uchar keyread(){ uchar kysta=1。//按鍵標志,kysta=1無按鍵 while(kysta)//鎖定P3口低三位{ P3=0x0e。 kyreg=P3。 if(kyreg!=0x0e){ delay(20)。 kyreg=P3。 if(kyreg!=0x0e){ if(kyreg==0x0c) return 11。//第一個鍵 if(kyreg==0x0a) return 12。//第二個鍵 if(kyreg==0x06) return 13。//第三個鍵}}while(kyreg!=0x0e)//鍵復位{ P3=0x0e。 kyreg=P3。}}}void keyread2(){ if(K2==0)//KEY2鍵實現數據增加{ WR2=1。 delay(50)。 WR2=0。 if(K2==0)//第二個鍵按下 delay(50)。//P1口數值加1 P1=go。 go++。 while(!K2)。}}void keyread3(){ if(K3==0)//KEY3鍵實現數據減少{ WR2=1。 delay(50)。 WR2=0。 if(K3==0)//第三個鍵按下 delay(50)。 P1=go。 go。//P1口數值減1 while(!K3)。}}/***********************延時***********************/void delay(uchar t){ uchar i=100。 while(t) {while(i)。}}void delay1(uchar time){while(time)。}/***********************LCD驅動***********************///寫控制字函數void lcdcmd(uchar cmd){ RS=0。 RW=0。DAT=cmd。E=1。_Nop()。_Nop()。E=0。delay(2)。}//寫數據函數void lcddata(uchar dat){ RS=1。 RW=0。 DAT=dat。 _Nop()。 E=1。 _Nop()。 _Nop()。E=0。 delay(2)。}//LCD初始化函數void lcdinit()//顯示初始化{ lcdcmd(0x38)。 delay(2)。 lcdcmd(0x38)。delay(2)。lcdcmd(0x38)。delay(2)。lcdcmd(0x01)。lcdcmd(0x06)。lcdcmd(0x0c)。}/***********************ADC反饋讀數***********************/void reADC() interrupt 2 using 1{ uchar result。 bit state。 DAT=0xff。 DAdat=DAT。 _Nop()。_Nop()。 if(ADdat=DAdat)//輸出值大于顯示值 { result=ADdatDAdat。//輸出值減顯示值 state=0。}else{ result=DAdatADdat。//顯示值減輸出值 state=1。}if(result=2) { result/=2。 if(state)result=DAdatresult。 else result=DAdat+result。}else result=DAdat。_Int=1。}/***********************反饋比較***********************/uchar cmp(uchar x,uchar y){ uchar result。 bit state。 if(x=y) { result=xy。 state=0。}else{ result=yx。 state=1。}if(result=2){ result/=2。 if(state)result=yresult。 else result=y+result。} else result=y。 return(result)。}/***********************主程序***********************/void main()//主程序{ //unsigned int vol。 uchar i,j,l=0,a=0,b=0,c=0。 bit dian=0。 bit o=0,p=0。//負數標志位、確認標志位 init()。 delay(255)。 EA=1。 EX0=1。 PX0=1。 IT0=1。 //EX1=1。 //IT1=1。 pp: a=b=0。dian=0。o=p=0,x=0。 P1=0。 lcdinit()。 lcdcmd(0x80)。 for(j=0。j7。j++)//開機送0V并顯示到LCD { lcddata(Disp3[j])。 } seDAC(128)。 DAdat=128。 lcddata(39。039。)。 lcddata(39。039。)。 lcddata(39。.39。)。 lcddata(39。039。)。 lcddata(39。V39。)。 while(1) { while(!k)。 } delay(200)。 i=keyread()。 if(!m) { lcdcmd(0x1)。 for(j=0。j7。j++) lcddata(Disp3[j])。 m=1。 } else if(i==11){m=0。goto pp。}//復位 else if(i==12){temp=1。k=1。q=!q。hh=1。}//加1 else if(i==13){temp=2。k=1。q=!q。hh=1。}//減1 if(vol150) { lcdcmd(0x01)。 delay(2)。 lcdcmd(0x80)。 for(i=0。i16。i++) lcddata(Disp2[i])。 p=1。 //溢出標志,P=1溢出 } if(!fushuamp。amp。!hh) //送入DAC的數字量 { DAdat=256*vol/150+128。 if(DAdat==512) DAdat=511。hh=0。 } else if(fushuamp。amp。!hh) { DAdat=256256*vol/150。fushu=0。 hh=0。 } if((temp==0)amp。amp。(!p))seDAC(DAdat)。//函數調用 else if(temp==1){volchange()。seDAC(DAdat)。keyread2()。temp=0。} else if(temp==2){volchange()。seDAC(DAdat)。keyread3()。temp=0。} p=0。 k=0。 }附錄三 PCB圖圖2 系統PCB圖附錄四 實物圖圖3 實物圖附錄五 元器件清單表1 元器件清單序號產品名稱規(guī)格型號數量1單片機STC89C5212三端穩(wěn)壓器LM31713三端穩(wěn)壓器LM33714數模轉換器DAC083215模數轉換器ADC083216液晶顯示屏LCD160217上拉電阻A10318繼電器DEG94219發(fā)光二極管LED110運算放大器UA741411運算放大器OP07112二極管1N4007213三極管9013214開關415晶振116電位器1k26k120k1100k117電阻4001210k31k44k1100124013k260k222k118光敏電阻119電容33pF220電解電容22uF110uF2100uF11000uF2第48頁,共48頁
點擊復制文檔內容
外語相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1