基于51單片機電子秤設計_第1頁
基于51單片機電子秤設計_第2頁
基于51單片機電子秤設計_第3頁
基于51單片機電子秤設計_第4頁
基于51單片機電子秤設計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、摘要電子秤是日常生活中常用的稱重設備,廣泛應用于超市、大中型商場、物流配送中心。電子秤在結(jié)構(gòu)和原理上取代了以杠桿平衡為原理的傳統(tǒng)機械式稱量工具。相比傳統(tǒng)的機械式稱量工具,電子秤具有稱量精度高、裝機體積小、應用范圍廣、易于操作使用等優(yōu)點,在外形布局、工作原理、結(jié)構(gòu)和材料上都是全新的計量衡器。微電子技術的發(fā)展為電子秤提出了改進的空間。電子秤向著簡單、便宜發(fā)展,智能化、精確的電子秤成為了人們的追求。本簡易電子秤以常見的AT89C51為核心,以電阻應變片采集應變數(shù)據(jù),通過HX711放大并進行AD轉(zhuǎn)換供單片機處理,用LCD1602顯示所測量的重量,同時本電子秤系統(tǒng)還提供單價設置進行求價格的計算以及去皮功

2、能,通過一些簡單低成本的元器件就完成了一個功能齊全的電子秤的制作,將傳統(tǒng)電子秤的成本進行了縮減。關鍵詞:電阻應變片 AT89C51 HX711 電子秤第一章 方案與論證一、方案類型(一)方案一通過單片機為主控芯片,用應變片采集應變數(shù)據(jù),通過專用儀表放大器INA128對采集到的信號進行放大,在配上模數(shù)轉(zhuǎn)換芯片對放大了的模擬信號轉(zhuǎn)化為數(shù)字信號,傳入單片機中進行數(shù)據(jù)處理,找出函數(shù)關系并轉(zhuǎn)化關系。通過數(shù)字信號轉(zhuǎn)化為重量值顯示在LDC1602上,同時通過鍵盤進行數(shù)據(jù)輸入,輸入單價、去皮等功能。通過蜂鳴器和二極管實現(xiàn)超額報警功能。(二)方案二以單片機為主控芯片,應變片采集應變數(shù)據(jù),將放大和模數(shù)轉(zhuǎn)換用HX7

3、11芯片來同時進行實現(xiàn),將模擬量傳入主控芯片單片機中進行數(shù)據(jù)轉(zhuǎn)換,通過函數(shù)關系轉(zhuǎn)換為重量顯示到LED上或者LCD1602上,同時通過鍵盤按鍵進行數(shù)據(jù)輸入,輸入單價、去皮等功能,并通過蜂鳴器進行數(shù)據(jù)處理。(三)方案三運用PLC作為主控制器,PLC運用廣泛,它具有接線簡單,通用性好,編程簡單,使用方便,可連接為控制網(wǎng)絡系統(tǒng),易于安裝,便于維護等優(yōu)點。二、方案論證與選定運用51單片機作為主控芯片,AT89C51是一種高效微控制器。它為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。但方案一中,放大和AD轉(zhuǎn)換模塊為獨立模塊,它們的獨立設計費事費力且還會存在誤差較大的情況。相比于方案一,方案二一HX7

4、11作為放大和AD轉(zhuǎn)換芯片,簡化了電路結(jié)構(gòu)。HX711是一款專為高精度電子秤設計的24位AD轉(zhuǎn)換器芯片。與同類型其他芯片相比,該芯片集成了包括文雅電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優(yōu)點。精度方面很好的滿足了題目中的要求,相比于方案一,方案二根據(jù)可行性。方案三采用PLC作為主控芯片,但其價格昂貴,違背了我們制作電子秤的簡單、便捷、便宜的原則,所以我們并沒考慮選用PLC作為主控芯片。綜合考慮后,我們決定選擇方案二來進行本簡易電子秤系統(tǒng)的設計與制作。通過精度、價格、簡單程度出發(fā)考慮,方案二是最合適的。第二章 設計方案一、 設計思路圖2-1總體

5、思路圖圖2-2 具體思路二、 各部分設計(一)傳感器部分設計傳感器應題目要求選用電阻應變片,是用于測量應變的元件。它能將機械構(gòu)件上應變的變化轉(zhuǎn)換為電阻變化。為了減少測量誤差,本簡易電子秤系統(tǒng)采用全橋差動形式,全橋差動測量電路不僅沒有非線性測量誤差,且電壓靈敏度是單臂電阻應變片工作時的四倍,運用全橋差動1使得本電子秤系統(tǒng)更加穩(wěn)定和可靠。圖2-3 全橋差動電路(二)主控芯片主控芯片是電子秤的核心部分,它能接受轉(zhuǎn)換后的傳感器信號,同時也能掃描接受到鍵盤的輸入信號,計算價格后控制顯示器的輸出,能夠?qū)崿F(xiàn)去皮功能,當超過稱重量量程時還要控制報警裝置報警。本簡易電子秤選用AT89C51作為主控芯片,AT89

6、C51是一種帶4K字節(jié) FLASH存儲器的低電壓、高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃速存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。51單片機的操作簡單,功能強大,價格便宜。運用51單片機作為主控芯片可以減少成本,而

7、且制作簡便,能夠?qū)崿F(xiàn)本系統(tǒng)的所有功能,是一個不錯的選擇。(三)放大與AD轉(zhuǎn)換模塊在系統(tǒng)總體設計時,我們考慮到了將放大與AD轉(zhuǎn)換作為單獨的模塊進行設計,但是思考后發(fā)現(xiàn)這其中還有更好的選擇。HX711是一款專為高精度電子秤而設計的24位A/D轉(zhuǎn)換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優(yōu)點。同時HX711還自帶放大功能,可選增益為64和128兩種。運用HX711保證了題目要求的高精度,可實現(xiàn)精度誤差控制在01g以內(nèi),保證了我們完成題目的要求。(四)鍵盤方案針對題目要求,需要我們輸入單間進行計算,單

8、價包含0-9十個數(shù)字,數(shù)字鍵占用十個,確定和清除占用兩個,去皮占用一個,復位占用一個。去皮鍵、復位鍵、清除鍵單獨用一個IO口引出;將十個數(shù)字鍵、確定鍵、計算總價鍵十二個鍵制成3x4的矩陣鍵盤2。通過設計成矩陣鍵盤的模式而減少單片機IO口的占用,為其他功能騰出空間。圖2-4 3x4矩陣鍵盤第三章 電路設計一、單片機最小系統(tǒng)電路AT89C51是片內(nèi)有ROM/EPROM的單片機,其最小系統(tǒng)簡單、可靠,僅由時鐘電路、復位電路、電源電路構(gòu)成。(一)時鐘電路AT89C51雖然有內(nèi)部振蕩電路,但要形成時鐘,必須外部附加電路。AT89C51單片機的時鐘產(chǎn)生方法有兩種。內(nèi)部時鐘方式和外部時鐘方式。本設計采用最常

9、用的內(nèi)部時鐘方式,即用外接晶體和電容組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHZ到12MHZ之間選擇。電容取值對振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響,可在20pF到100pF之間取值。所以本設計中,振蕩晶體選擇12MHZ,電容選擇22pF。(二)復位電路AT89C51的復位電路是由外部的復位電路來實現(xiàn)的。只需給復位引腳RST加上大于2個機器周期的高電平就可使其復位。復位電路通常采用上電自動復位和按鍵復位兩種方式。本設計就是用的按鍵手動復位。其中電平復位是通過RST端經(jīng)電阻與電源Vcc接通而實現(xiàn)的。(三)電源電路AT89C51的電源腳分別為20腳Vss和40腳Vcc。這兩個腳分

10、別接地和+5V直流電源,31腳EA為內(nèi)外存儲器的控制端,接+5V允許訪問外部存儲器。圖3-1 晶振電路和復位電路二、AD轉(zhuǎn)換電路HX711是一款專為高精度稱重傳感器而設計的24位A/D轉(zhuǎn)換器芯片。與同類型其它芯片相比,該芯片集成了包括穩(wěn)壓電源、片內(nèi)時鐘振蕩器等其它同類型芯片所需要的外圍電路,具有集成度高、響應速度快、抗干擾性強等優(yōu)點、降低了電子秤的整機成本,提高了整機的性能和可靠性。該芯片與后端MCU芯片的接口和編程非常簡單,所有控制信號由管腳驅(qū)動,無需對芯片內(nèi)部的寄存器編程。輸入選擇開關可任意選取通道A或通道B,與其內(nèi)部的低噪聲可編程放大器相連。通道A的可編程增益為128或64,對應的滿額度

11、差分輸入信號幅值分別為±20mV或±40mV。通道B則為固定的64增益,用于系統(tǒng)參數(shù)檢測。芯片內(nèi)提供的穩(wěn)壓電源可以直接向外部傳感器和芯片內(nèi)的A/D轉(zhuǎn)換器提供電源,系統(tǒng)板上無需另外的模擬電源。芯片內(nèi)的時鐘振蕩器不需要任何外接部件。上電自動復位功能簡化了開機的初始化過程。圖3-2 HX711模塊電路三、LCD1602顯示電路本設計采用的是LCD1602顯示,LCD1602液晶也叫1602字符型液晶它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊它有若干個5×7或者5×11等點陣字符位組成,每個點陣字符位都可以顯示一個字符。每位之間有一個點距的間隔每行之

12、間也有間隔起到了字符間距和行間距的作用,正因為如此所以他不能顯示圖形。1602LCD是指顯示的內(nèi)容為16×2,即可以顯示兩行,每行16個字符液晶模塊。圖3-3 LCD1602電路四、總設計電路圖3-4 系統(tǒng)總電路第四章 測試方法與測試結(jié)果一、測試方法由于本系統(tǒng)是一個簡易電子秤系統(tǒng),所以最好的測量方法就是通過測量標準砝碼的質(zhì)量來比對本電子秤系統(tǒng)的測量顯示值。以測量結(jié)果顯示值減去砝碼質(zhì)量再除以砝碼質(zhì)量得出誤差百分比,同時也得出精確程度。(一)鍵盤測量與LCD1602測量鍵盤與LCD1602的測量我們放在一起進行,編寫按鍵與LCD1602顯示函數(shù),將對應按鍵編碼成0-9,按下按鍵通過LCD

13、1602來進行顯示所按下鍵盤的數(shù)值,通過這種方法我們同時測量了鍵盤與LCD1602的功能,保證了電路焊接的正確性。(二)模數(shù)轉(zhuǎn)換對應數(shù)值測量將HX711連接到電路中,通過LCD1602來顯示轉(zhuǎn)換后的數(shù)值信號,依次將10g、20g、30g、40g到500g的砝碼放到秤盤上,依次獨處LCD1602的顯示數(shù)值,將這五十組數(shù)據(jù)放入到Excel表格中,通過Excel繪制線性圖形。通過線性圖形擬合出線性函數(shù)關系。(三)測量質(zhì)量檢測分別用10g、20g、50g、100g、200g、500g的砝碼放到本簡易電子系統(tǒng)的秤盤上,比對測量顯示值,求出誤差百分比和測量精度。除此之外,我們還用一個10克、兩個2克砝碼組

14、成一個五十克砝碼;一個10克砝碼、兩個20克砝碼和一個50克砝碼組成一個100克方法等組合放在秤盤中心進行測量,以此來確定本簡易電子秤系統(tǒng)的精確度。二、測量結(jié)果(一)AD轉(zhuǎn)換后數(shù)值信號值與砝碼質(zhì)量的對應關系表4-1 AD值與砝碼質(zhì)量(g)的對應關系AD值9174908890038919883387498663857784948408重量0102030405060708090AD值8326823981538069798378987814772576417553重量100110120130140150160170180190AD值7470738573007218713070466961687467

15、926702重量200210220230240250260270280290AD值6626654164556370629462086123603659545873重量300310320330340350360370380390AD值5780569556155535545553715290521251335049重量400410420430440450460470480490通過表中的數(shù)據(jù),通過Excel折線圖進行擬合,擬合出的結(jié)果為數(shù)據(jù)呈現(xiàn)線性關系,這滿足應變片的性質(zhì),得出的轉(zhuǎn)換函數(shù)為:y=0.1185x+1085.8145。圖4-1 折線圖(二)簡易電子秤測量結(jié)果與標準砝碼比對關系在確定了函

16、數(shù)轉(zhuǎn)換關系之后,電子秤的制作基本快要完成,將函數(shù)關系編寫到程序中就實現(xiàn)電子秤的制作。將10g-500g依次增長10g的砝碼放入到秤盤中,比對標準砝碼值與測量顯示值之間的關系發(fā)現(xiàn)誤差基本控制在1g之內(nèi),0-50g期間大致控制在了0.5g的范圍內(nèi),基本完成了題目所給要求。三、測量結(jié)論本簡易電子秤系統(tǒng)達到了題目要求,擁有輸入單價求價格的功能,同時還能滿足價格的疊加在單片機芯片中計算而不用,輸入一個記錄一個值那么麻煩。同時本電子稱系統(tǒng)也完成了去皮功能,清除,復位功能,甚至還設置了超上限報警裝置報警值上限為550g。參考文獻1胡向東,李銳,耿道渠等M.傳感器與檢測技術第2版.北京.機械工業(yè)出版社.201

17、3.37-382郭天祥.51單片機C語言教程M.北京.電子工業(yè)出版社.2009.86附錄一、HX711代碼#include "lcd1602.h"#include<intrins.h>#include "hx711.h"#include<reg52.h>sbit ADDO = P24;sbit ADSK = P23;/* extern unsigned long ReadAD(void);.unsigned long data;data=ReadAD();.-*/ulong ReadCount(void)ulong Count;u

18、char i;ADSK=0; /使能AD(PD_SCK 置低)Count=0;while(ADDO); /AD轉(zhuǎn)換未結(jié)束則等待,否則開始讀取for (i=0;i<24;i+)ADSK=1; /PD_SCK 置高(發(fā)送脈沖)Count=Count<<1; /下降沿來時變量Count左移一位,右側(cè)補零ADSK=0; /PD_SCK 置低if(ADDO) Count+;ADSK=1;Count=Count0x800000; /第25個脈沖下降沿來時,轉(zhuǎn)換數(shù)據(jù)ADSK=0;return(Count);二、鍵盤代碼#include<reg52.h>#include &quo

19、t;lcd1602.h"#include "key.h"uchar num,s = 5;uchar price = 0;uchar code table1 = "0123456789"str2 = "Price: "uchar code str3 = "Total: "void display_cost(uchar price) /顯示單項稱量價格uchar w5,i = 5;w0 = price/10000;w1 = price%10000/1000;w2 = price%1000/100;w3 = p

20、rice%100/10;w4 = price%10;while(i != 10)DisplayOneChar(i,1,wi-5);i+;/*鍵盤掃描子程序*/void temer1() interrupt 3void keyscan(void)uchar temp;P1 = 0XFE;temp = P1;temp = temp&0xf0;if(temp != 0xf0)delay(5);temp = P1;temp = temp&0xf0;while(temp != 0xf0)temp = P1;switch(temp)case 0xbe:num=1;s+;break;case

21、 0xde:num=2;s+;break;case 0xee:num=3;s+;break; /case 0x7e:num=4;k='/'s+;break;while(temp!=0xf0)temp=P1;temp=temp&0xf0;price = price*10+num;DisplayOneChar(s,1,table1num);P1 = 0XFd;temp = P1;temp = temp&0xf0;if(temp != 0xf0)delay(5);temp = P1;temp = temp&0xf0;while(temp != 0xf0)tem

22、p = P1;switch(temp) case 0xbd:num=4;s+;break;case 0xdd:num=5;s+;break;case 0xed:num=6;s+;break; /case 0x7d:num=8;k='*'s+;break;while(temp!=0xf0)temp=P1;temp=temp&0xf0;price = price*10+num;DisplayOneChar(s,1,table1num);P1 = 0XFb;temp = P1;temp = temp&0xf0;if(temp != 0xf0)delay(5);temp

23、 = P1;temp = temp&0xf0;while(temp != 0xf0)temp = P1;switch(temp)case 0xbb:num=7;s+;break;case 0xdb:num=8;s+;break;case 0xeb:num=9;s+;break; /case 0x7b:num=12;k='-'s+;break;while(temp!=0xf0)temp=P1;temp=temp&0xf0;DisplayOneChar(s,1,table1num);P1 = 0XF7;temp = P1;temp = temp&0xf0;i

24、f(temp != 0xf0)delay(5);temp = P1;temp = temp&0xf0;while(temp != 0xf0)temp = P1;switch(temp)case 0xb7:num='-'s+;break;case 0xd7:num=0;s+;break;case 0xe7:num='='s+;break; /case 0x77:num=16;k='+'s+;break;while(temp!=0xf0)temp=P1;temp=temp&0xf0;if(num = 0)price = price*1

25、0+num;DisplayOneChar(s,1,table1num);else if(num = '-')s = 5;price = 0;DisplayListChar(0, 1, 16,str2);elseDisplayListChar(0, 1, 16,str3);display_cost(price);三、LCD1602#include<reg51.h>#include<intrins.h>#include "lcd1602.h"sbit rs = P20;sbit LCM_RW = P21;sbit lcden = P22;

26、/*延時程序K*1ms,12000mhz*/void delay(uint k)uint i,j;for(i = 0; i < k; i+) for(j = 0; j < 100; j+);/*寫指令到LCM子函數(shù)*/void WriteCommandLCM(uchar com)P0=com;rs=0;lcden=0;delay(1);lcden=1;delay(1);lcden=0;/*寫數(shù)據(jù)到LCM子函數(shù)*/void WriteDataLCM(uchar date)P0=date;rs=1;lcden=0;delay(1);lcden=1;delay(1);lcden=0;/*

27、LCM初始化子函數(shù)*/void initLCM()WriteCommandLCM(0x38);delay(10);WriteCommandLCM(0x0f);delay(10);WriteCommandLCM(0x06);delay(10);WriteCommandLCM(0x01);delay(10);/*顯示指定坐標的一個字符子函數(shù)*/void DisplayOneChar(uchar X, uchar Y, uchar DData)Y &= 0x01;X &= 0x0f;if(Y)X |= 0x40; /若y為1(顯示第二行),地址碼加0x40X |= 0x80; /指令

28、碼為地址碼+0x80WriteCommandLCM(X);WriteDataLCM(DData);/*顯示指定坐標的一串字符子函數(shù)*/void DisplayListChar(uchar X, uchar Y, uchar length,uchar code *DData)uchar ListLength = 0;Y &= 0x01;X &= 0x0f;while(X < length)DisplayOneChar(X,Y,DDataListLength);ListLength+;X+;四、主函數(shù)#include<reg51.h>#include<int

29、rins.h>#include<absacc.h>#include<math.h>#include "lcd1602.h"#include "hx711.h"sbit speaker = P27;sbit qupi = P37;sbit qingling = P36;int weight;uchar num,s = 5;ulong ad_data = 0;ulong cost = 0,total = 0;ulong price = 0;uchar flag_ok = 0; /ok鍵的按鍵次數(shù)uchar pi = 0;ucha

30、r flag_dian = 0,dian = 1; /小數(shù)點的位數(shù),和小數(shù)點標志uchar flag_dian_all = 0;uchar dian_max = 1; /最大的點的位數(shù)uchar flag_jian = 0;uchar cha=0,flag_jia=0,flag_jian;uchar code str0 = "Weight: g "uchar code str1 = "cost: "uchar code str2 = "Price: "uchar code str3 = "Total: "uchar

31、 code table1 = "0123456789"void alarm(void);void keyscan(void); /鍵盤掃描函數(shù)void display_cost(ulong price) /顯示單項稱量價格uchar w5,i,j,wei;w0 = price/10000;w1 = price%10000/1000;w2 = price%1000/100;w3 = price%100/10;w4 = price%10;if(flag_ok = 1)wei = 5; i = 5;/if(flag_dian = 1)/j = 11;/else/j = 10;wh

32、ile(wei != 11)/if(flag_dian=1&&wei = 10-dian)if(wei = 10-dian)DisplayOneChar(wei,1,'.');else DisplayOneChar(wei,1,table1wi-5);i+;wei+;elsewei = 6; i = 6;/if(flag_dian_all=1)/j = 12;/else/j = 11;while(wei != 12)/if(flag_dian_all=1&&wei = 11-dian_max)if(wei = 11-dian_max)Displa

33、yOneChar(wei,1,'.');else DisplayOneChar(wei,1,table1wi-6);i+;wei+;void ad_change(ulong price)uchar w5,i;uchar ge,bai,shi,qian;int aver = 0;double z = 0;w0 = price/10000000;w1 = price%10000000/1000000;w2 = price%1000000/100000;w3 = price%100000/10000;w4 = price%10000/1000;/DisplayOneChar(0,1,

34、table1w0);/DisplayOneChar(1,1,table1w1);/DisplayOneChar(2,1,table1w2);/DisplayOneChar(3,1,table1w3);/DisplayOneChar(4,1,table1w4);for(i = 0; i < 5; i+)z = z*10+wi;/weight = (1093.8-0.1196*z)*10.0; /初始/aver += weight;weight = (1085.8-0.1185*z)*10.0; /第二次aver += weight;weight = (1082.6-0.1182*z)*10

35、.0; /第三次aver += weight;/*第三次,分段*/if(z > 8700)weight = (1079.6-0.1177*z)*10.0;else if(z > 8290)weight = (1087.5-0.1186*z)*10.0; else if(z > 7850)weight = (1077-0.1174*z)*10.0; else if(z > 7410)weight = (1068.3-0.1163*z)*10.0; else if(z > 7000)weight = (1080.8-0.1179*z)*10.0;else if(z &

36、gt; 6590)weight = (1086.1-0.1187*z)*10.0; else if(z > 6170)weight = (1100.4-0.1209*z)*10.0; else if(z > 5730)weight = (1080.8-0.1177*z)*10.0;else if(z > 5330)weight = (1114.9-0.1238*z)*10.0;elseweight = (1114-0.1236*z)*10.0; aver += weight;weight = aver/3;/if(weight < 0)/cha = -weight;/f

37、lag_jia = 1;/flag_jian = 0;/weight = 0;/else if(weight < 20)/cha = weight;/flag_jian = 1;/flag_jia = 0;/weight = 0;/else/if(flag_jia = 1)/weight = weight+cha;/if(flag_jian = 1)/weight -= cha;/qian = weight/1000;bai = weight%1000/100;shi = weight%100/10;ge = weight%10; DisplayOneChar(7,0,table1qia

38、n);DisplayOneChar(8,0,table1bai);DisplayOneChar(9,0,table1shi);DisplayOneChar(10,0,'.');DisplayOneChar(11,0,table1ge);DisplayOneChar(12,0,'g');/*主程序*/void main()delay(500); /系統(tǒng)延時500ms啟動initLCM();WriteCommandLCM(0x01); /清屏顯示DisplayListChar(0,0,16,str0);DisplayListChar(0,1,16,str2);whi

39、le(1)ad_data = ReadCount();ad_change(ad_data);keyscan();alarm();/*報警值函數(shù)*/void alarm(void)if(weight>5500)speaker = 0; /則啟動報警elsespeaker = 1;/*鍵盤掃描子程序*/void temer1() interrupt 3void keyscan(void)uchar temp;P1 = 0XFE;temp = P1;temp = temp&0xf0;if(temp != 0xf0)delay(5);temp = P1;temp = temp&0

40、xf0;while(temp != 0xf0)temp = P1;switch(temp)case 0xbe:num=1;s+;break;case 0xde:num=2;s+;break;case 0xee:num=3;s+;break; /case 0x7e:num=4;k='/'s+;break;while(temp!=0xf0)temp=P1;temp=temp&0xf0;if(flag_jian = 0)if(flag_dian = 1)dian+;price = price*10+num;DisplayOneChar(s,1,table1num);P1 =

41、0XFd;temp = P1;temp = temp&0xf0;if(temp != 0xf0)delay(5);temp = P1;temp = temp&0xf0;while(temp != 0xf0)temp = P1;switch(temp) case 0xbd:num=4;s+;break;case 0xdd:num=5;s+;break;case 0xed:num=6;s+;break; /case 0x7d:num=8;k='*'s+;break;while(temp!=0xf0)temp=P1;temp=temp&0xf0;if(flag_jian = 0)if(flag_dian = 1)dian+;price = price*10+num;DisplayOneChar(s,1,table1num);P1 = 0XFb;temp = P1;temp = temp&0xf0;if(temp != 0xf0)delay(5);temp = P1;temp = temp&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論