欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機自動售貨機程序+Proteus仿真
[打印本頁]
作者:
cgg547100632
時間:
2019-11-23 09:39
標題:
單片機自動售貨機程序+Proteus仿真
自動售貨機仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png
(25.51 KB, 下載次數: 89)
下載附件
2019-11-23 17:34 上傳
單片機源程序如下:
#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}; //數碼管顯示0-9
unsigned char dispbuf[8]={0,0,0,0,0,0,0,};
int table2[]={0xe0,0xc0,0xa0,0x80,0x20};//控制退幣
int total_money=0;//所選商品總價格
int back_money=0; //應退金額
int in_money=0;
/*
延時功能
*/
void delay(int z)
{
int x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//?調用時重新初始化??復位函數
void reset()
{
step=1;
price=0;
num=1;
total_money=0;
back_money=0;
in_money=0;
}
/*
選擇商品函數?每個按鍵對應不同的物品價格及數量
*/
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;
}
}
}
/*
確定及取消
確定則執行?step加一?取消則執行step減一
*/
void apply()
{
if(key7==0)
{
delay(80);
if(key7==0)
{
step++;
}
}
else if(key8==0)
{
delay(80);
if(key8==0)
{
step--;
}
}
}
/*
計算所選商品所需金額
*/
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;
}
}
/*
計算所需退還幣值
*/
void backmoney()
{
back_money=in_money -total_money;
}
/*
顯示函數?每一步顯示不同的內容
*/
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];
}
}
/*
//主函數
*/
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);
}*/
}
復制代碼
所有資料51hei提供下載:
自動售貨機.rar
(22.78 KB, 下載次數: 126)
2019-11-23 09:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
自動售貨機控制系統設計.doc
(511.95 KB, 下載次數: 94)
2019-11-23 09:39 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
黃劉哲
時間:
2019-11-28 15:42
可以,完成度很高
作者:
gchq521
時間:
2019-12-10 10:58
可以 參考一下~感覺不錯
作者:
sz的波妞
時間:
2019-12-12 17:50
led 為啥不亮
作者:
luozhao
時間:
2019-12-16 09:06
不錯不錯,剛好需要,謝謝分享
作者:
cgg547100632
時間:
2019-12-26 22:42
sz的波妞 發表于 2019-12-12 17:50
led 為啥不亮
不會吧。我調試的是好的啊
作者:
求學之路。
時間:
2020-6-25 13:32
右上角那一部分電路是什么意思呀
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1