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

正文內(nèi)容

基于單片機電子秤的設(shè)計(文件)

2024-12-06 14:58 上一頁面

下一頁面
 

【正文】 片機的復(fù)位是由RESET引腳來控制的,此引腳與高電平相接超過24個振蕩周期后,51單片機即進入芯片內(nèi)部復(fù)位狀態(tài),而且一直在此狀態(tài)下等待,直到RESET引腳轉(zhuǎn)為低電平后,才檢查EA引腳是高電平或低電平,若為高電平則執(zhí)行芯片內(nèi)部的程序代碼,若為低電平便會執(zhí)行外部程序。 ADC0809通道選擇表ADDCADDBADDC選擇的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN78為A/D轉(zhuǎn)換器是逐次逼近式,由控制與時序電路、主次逼近寄存器、樹狀開關(guān)以及256R電阻階梯網(wǎng)絡(luò)等組成。為使用于不同的驅(qū)動電路,有共陽極和共陰極兩種結(jié)構(gòu)。4 基于單片機電子秤的軟件設(shè)計軟件設(shè)計一般按下列步驟進行:即先分析系統(tǒng)對軟件的要求;然后在此基礎(chǔ)上進行軟件總體設(shè)計,包括程序整體結(jié)構(gòu)設(shè)計和對程序進行模塊化設(shè)計,模塊化設(shè)計即將程序劃分為若干個相對獨立的模塊;接著畫出每一個專用模塊的詳細流程圖,并選擇合適的語言編寫程序;最后按照軟件總體設(shè)計時給出的結(jié)構(gòu)框圖,將各模塊連接成一個完整的程序。模塊之間的相互獨立也有助于研制任務(wù)的分解和設(shè)計人員之間的分工合作,這樣可提高工作效率和儀表的研制速度。在分模塊設(shè)計程序時應(yīng)該先確定主程序的流程, 總程序流程圖 數(shù)據(jù)采集子程序設(shè)計數(shù)據(jù)采集用ADC0809芯片來完成,主要分為啟動、讀取數(shù)據(jù)、延時等待轉(zhuǎn)換結(jié)束、讀出轉(zhuǎn)換結(jié)果、存入指定內(nèi)存單元、繼續(xù)轉(zhuǎn)換(退出)幾個步驟。在顯示過程中一定要調(diào)用延時子程序,其任務(wù)是將測量結(jié)果送顯示器顯示。 量程設(shè)置程序流程圖5 基于單片機電子秤的整體調(diào)試調(diào)試包括硬件調(diào)試、軟件調(diào)試和整體聯(lián)調(diào)。由于該軟件功能有限,所以使用電壓表及滑動變阻器代替壓力傳感器及放大電路。導(dǎo)致不能滿足設(shè)定的放大倍數(shù)的原因,可能是放大器選擇不合適,因為放大器只能對一定范圍內(nèi)的信號線性放大,導(dǎo)致不能滿足設(shè)定的放大倍數(shù)。解決方法:修改程序中的轉(zhuǎn)換子程序部分,在進制轉(zhuǎn)換時計算出轉(zhuǎn)換系數(shù)值。四、硬件電路板上的3位LED顯示的都是不規(guī)則亂碼。原因分析:送顯示后延時時間不夠。智能儀器的核心部件是單片機,因其極高的性價比得到廣泛的應(yīng)用與發(fā)展,從而加快了智能儀器的發(fā)展。因此,只有充分了解有關(guān)智能儀器、單片機、傳感器以及各部分之間的關(guān)系才能達到要求。其次是數(shù)據(jù)采集處理階段,此階段是對傳感器發(fā)出的信號進行量化、采集,主要分為信號放大、采集,然后進行A/D轉(zhuǎn)換。雖然在設(shè)計過程中遇到了很多問題,但是最終完成了本次畢業(yè)設(shè)計,基本上實現(xiàn)了所有要求,但是在量程選擇上還是有不完善的地方,使用按鍵代替了鍵盤控制,實現(xiàn)了量程選擇的。我的設(shè)計較為復(fù)雜煩瑣,但是胡立夫老師仍然細心地糾正圖紙中的錯誤。最后還要感謝大學四年來所有的老師,為我們打下專業(yè)知識的基礎(chǔ);同時還要感謝所有的同學們,正是因為有了你們的支持和鼓勵。sbit EOC=P3^2。sbit Nixie0=P2^7。 //定義按鍵輸入口sbit Key2=P2^0。//數(shù)碼管段碼unsigned char SetFlag。unsigned char DisplayEnable[4]={0,0,0,0}。//Count1 加1 if(Count1=2000)//如果Count1=2000 { Count1=2000。//第一個使能數(shù)碼管使能寄存器 為1 DisplayEnable[1]=1。//第二個使能數(shù)碼管使能寄存器 為0 DisplayEnable[2]=0。//第二個使能數(shù)碼管使能寄存器 為1 DisplayEnable[2]=1。count++)//count從0開始自加1,加到count為number為止,number是你在調(diào)用DelayMS時輸入的數(shù) { _nop_()。 _nop_()。 _nop_()。 for(count_0=0。 Key2=1。 if(Key2==0) { Key2AsisstFlag=0xff。 Key1Flag=0xff。 } } } // if(Key1AsisstFlag) { Key1LongDownCount++。 } } else { Key1LongDownCount=0。 Key2LongDownFlag=0xff。 }}void ProcessDISData(unsigned int DisplayData)//處理顯示數(shù)據(jù){ DisplayNUM[0]=DisplayData%1000%100%10。 else DISDataBus=0xff。 if(DisplayEnable[1]) DISDataBus=DisplayCode[DisplayNUM[1]]。 Nixie1=1。 Nixie2=1。 STR=1。 while(EOC==0) {} OE=1。 Weight=ADDataBus。}void main(void)//主函數(shù),程序在此函數(shù)里順序執(zhí)行{ TMOD=0x01。//允許T0中斷 EA=1。 DisplayEnable[2]=1。//判斷按鍵 if(Key1Flag)//如果按下的是增加鍵 { Key1Flag=0x00。 SetWeight++。 SetFlag=0xff。//重量變?yōu)? } } if(Key1LongDownFlag)//應(yīng)該是長時間按下增加鍵 { Key1LongDownFlag=0x00。 SetWeight++。 Count1=0。 } } GetWeight()。//出來要顯示的數(shù)據(jù),Weight為要處理的數(shù)據(jù)。//P2^4這個口的數(shù)據(jù)為0,出現(xiàn)報警聲 Led=0。 } } }附錄Ⅲ 元器件清單序號器件型號數(shù)量1按鍵3個2報警器蜂鳴器1個3晶震12Mhz1個4A/D轉(zhuǎn)換ADC08091個5單片機89S521個6三極管C90123個7顯示3位LED1個8電容30PF/3V2個9電容22μ/52V1個10電容1000μ/50V1個11電容100μ/50V1個12電阻300Ω/4W10個13電阻10KΩ/4W4個14電阻1KΩ/4W1個15電阻470Ω/4W1個16導(dǎo)線若干。 { Beep=1。//顯示量程,重量。//出來要顯示的數(shù)據(jù),SetWeight為要處理的數(shù)據(jù)。 SetWeight。 } } if(Key2LongDownFlag) { Key2LongDownFlag=0x00。 Count1=0。//重量減1 if(SetWeight,<0)//如果重量超過1000。//報警值重量為510 } } if(Key2Flag)//如果按下的是減少鍵 { Key2Flag=0x00。 SetFlag=0xff。 SetWeight=300。//啟動T0 DisplayEnable[0]=1。 TL0=0x17。 EOC=0。 ADDataBus=0xff。 DelayMS(5)。 DelayMS(10)。 Nixie2=0。 Nixie1=0。 DelayMS(100)。 DisplayNUM[2]=DisplayData%1000/100。 } } else { Key2LongDownCount=0。 } if(Key2AsisstFlag) { Key2LongDownCount++。 // Key1LongDownFlag=0xff。 if(Key2==1) { Key2AsisstFlag=0。 if(Key1AsisstFlag) { if(Key1==1)//檢測按鍵按下后是否被松開 { Delay0()。//延時 if(Key1==0) { Key1AsisstFlag=0xff。count_0++)//count_0 自加1,加到250后跳出循環(huán),達到延時的目的。 }}void Delay0(void)//延時函數(shù){ unsigned char count_0=0,count_1=0。 _nop_()。 _nop_()。//聲明一個變量 for(count=0。//Count2為0 } } else//如果如果SetFlag為0 { DisplayEnable[0]=1。//第三個使能數(shù)碼管使能寄存器 為1 } else//如果Count2=50 { DisplayEnable[0]=0。 } if(SetFlag)//如果SetFlag不為0 { Count2++。 TL0=0x17。unsigned int SetWeight,Weight。//定義按鍵工作寄存器unsigned int Key1LongDownCount,Key2LongDownCount。sbit Nixie2=P2^5。sbit Beep=P2^4。附錄Ⅰ 基于單片機電子秤的硬件原理圖附錄Ⅱ 程序清單include include define DISDataBus P0 //定義顯示轉(zhuǎn)數(shù)據(jù)總線define ADDataBus P1 //定義AD數(shù)據(jù)線sbit ALE=P3^0。 感謝王金華同學在焊接硬件時對我的指導(dǎo)幫助,使我少走了很多彎路。 在這里要感謝我的導(dǎo)師胡立夫老師。最好是預(yù)先計算好應(yīng)放大的倍數(shù),以便選取。畢設(shè)時由于傳感器發(fā)出的信號不是很穩(wěn)定,所以稱重時誤差很大。傳感器好比人體“五官”的工程模擬物,它是一種能將特定的被測量信息(物理量、化學量、生物量等)按一定規(guī)律轉(zhuǎn)換成某種可用信號輸出的器件或裝置。 聯(lián)調(diào)結(jié)果經(jīng)過以上調(diào)試檢查,雖然外觀并不特別美觀,但功能上比較符合任務(wù)書的要求。解決方法:檢測了電路之后發(fā)現(xiàn)電路的焊接沒問題,重新檢查之后才發(fā)現(xiàn)是由于沒有脈沖的輸入,接入脈沖之后一切顯示正常。原因分析:檢查電路之后發(fā)現(xiàn)ADC0809十分燙手,不屬于正常的情況。 二、傳感器顯示電壓的示數(shù)范圍與要求的3位LED顯示的質(zhì)量示數(shù)范圍不符,即上限
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1