仿真文件和c源碼
自動(dòng)售貨機(jī).zip
(38.73 KB, 售價(jià): 1 E幣)
215407onz62cqoxcq66x6w.png (38.19 KB)
下載附件
2020-2-2 11:27 上傳
部分源碼
- #include<reg52.h>
- sbit key1=P1^0;
- sbit key2=P1^1;
- sbit key3=P1^2;
- sbit key4=P1^3;
- sbit key5=P1^4;
- sbit key6=P1^5;
- sbit key7=P1^6;
- sbit key8=P1^7;
- sbit led1=P3^0;
- sbit led2=P3^1;
- sbit led3=P3^2;
- int step=1;
- int price=0;
- int num=1;
- int table1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F}; //數(shù)碼管顯示0-9
- unsigned char dispbuf[8]={0,0,0,0,0,0,0,};
- int table2[]={0xe0,0xc0,0xa0,0x80,0x20};//控制退幣
- int total_money=0;//所選商品總價(jià)格
- int back_money=0; //應(yīng)退金額
- int in_money=0;
- /*
- 延時(shí)功能
- */
- void delay(int z)
- {
- int x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- //?調(diào)用時(shí)重新初始化??復(fù)位函數(shù)
- void reset()
- {
- step=1;
- price=0;
- num=1;
- total_money=0;
- back_money=0;
- in_money=0;
- }
- /*
- 選擇商品函數(shù)?每個(gè)按鍵對(duì)應(yīng)不同的物品價(jià)格及數(shù)量
- */
- void choose()
- {
- if(key1==0)
- {
- delay(80);
- if(key1==0)
- {
- num=1;
- price=4;
- }
- }
- else if(key2==0)
- {
- delay(80);
- if(key2==0)
- {
- price=6;
- num=1;
- }
- }
- else if(key3==0)
- {
- delay(80);
- if( key3==0)
- {
- price=10;
- num=1;
- }
- }
- }
- /*
- 確定及取消
- 確定則執(zhí)行?step加一?取消則執(zhí)行step減一
- */
- void apply()
- {
- if(key7==0)
- {
- delay(80);
- if(key7==0)
- {
- step++;
- }
- }
- else if(key8==0)
- {
- delay(80);
- if(key8==0)
- {
- step--;
- }
- }
- }
- /*
- 計(jì)算所選商品所需金額
- */
- void totalmoney()
- {
- total_money=price*num;
- }
- /*
- //累加投入幣值
- */
- void inmoney()
- {
- if(key4==0)
- {
- delay(80);
- if(key4==0)
- in_money+=1;
- }
- else if(key5==0)
- {
- delay(80);
- if(key5==0)
- in_money+=5;
- }
- else if(key6==0)
- {
- delay(80);
- if(key6==0)
- in_money+=10;
- }
- }
- /*
- 計(jì)算所需退還幣值
- */
- void backmoney()
- {
- back_money=in_money -total_money;
- }
- /*
- 顯示函數(shù)?每一步顯示不同的內(nèi)容
- */
- void display ()
- {
- if(step==1)
- {
- P2=0x04;
- totalmoney();
- P0 =table1[total_money%10];
- delay(80);
- P2 = 0x08;
- P0 = table1[total_money/10];
- delay(80);
- }
- else if(step==2)
- {
- P2=0x04;
- inmoney();
- P0=table1[in_money%10];
- delay(80);
- P2=0x08;
- P0=table1[in_money/10];
- delay(80);
- }
- else if(step==3)
- {
- P2=0xf0;
- backmoney();
- if(back_money<0)
- {
- step--;
- P0=table1[in_money];
- }
- if(back_money>=0)
- {
- P2=0x04;
- backmoney();
- P0=table1[back_money%10];
- delay(80);
- P2=0x08;
- P0=table1[back_money/10];
- delay(80);
- reset();
- }
- else
- P0=table1[1];
- }
- }
- /*
- //主函數(shù)
- */
- void main()
- {
- while(1)
- {
- choose();
- apply();
- display();
- }
- /*?if(back_money>=10)
- {int?s=back_money/10;
- for(s;s>0;s--?)
- {led2=0;
- delay(1000);
- led2=1;
- back_money-=10;
- }
- }
- if(back_money<10&&back_money>0?)
- {
- led3=0;
- delay(1000);
- led3=1;
- }
- delay(1000);
- {
- led1=0;
- delay(1000);
- led1=1;
- delay(1000);
- led1=0;
- delay(1000);
- led1=1;
- delay(1000);
- led1=0;
- delay(1000);
- led1=1;
- delay(1000);
- }*/
- }
復(fù)制代碼
【必讀】版權(quán)免責(zé)聲明
1、本主題所有言論和內(nèi)容純屬會(huì)員個(gè)人意見(jiàn),與本論壇立場(chǎng)無(wú)關(guān)。2、本站對(duì)所發(fā)內(nèi)容真實(shí)性、客觀(guān)性、可用性不做任何保證也不負(fù)任何責(zé)任,網(wǎng)友之間僅出于學(xué)習(xí)目的進(jìn)行交流。3、對(duì)提供的數(shù)字內(nèi)容不擁有任何權(quán)利,其版權(quán)歸原著者擁有。請(qǐng)勿將該數(shù)字內(nèi)容進(jìn)行商業(yè)交易、轉(zhuǎn)載等行為,該內(nèi)容只為學(xué)習(xí)所提供,使用后發(fā)生的一切問(wèn)題與本站無(wú)關(guān)。 4、本網(wǎng)站不保證本站提供的下載資源的準(zhǔn)確性、安全性和完整性;同時(shí)本網(wǎng)站也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的損失或傷害。 5、本網(wǎng)站所有軟件和資料均為網(wǎng)友推薦收集整理而來(lái),僅供學(xué)習(xí)用途使用,請(qǐng)務(wù)必下載后兩小時(shí)內(nèi)刪除,禁止商用。6、如有侵犯你版權(quán)的,請(qǐng)及時(shí)聯(lián)系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|