久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 5462|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)自動(dòng)售貨機(jī)程序+Proteus仿真

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:572991 發(fā)表于 2019-11-23 09:39 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
自動(dòng)售貨機(jī)仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. sbit key1=P1^0;
  3. sbit key2=P1^1;
  4. sbit key3=P1^2;
  5. sbit key4=P1^3;
  6. sbit key5=P1^4;
  7. sbit key6=P1^5;
  8. sbit key7=P1^6;
  9. sbit key8=P1^7;
  10. sbit led1=P3^0;
  11. sbit led2=P3^1;
  12. sbit led3=P3^2;
  13. int step=1;
  14. int price=0;
  15. int num=1;
  16. int table1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F}; //數(shù)碼管顯示0-9
  17. unsigned char dispbuf[8]={0,0,0,0,0,0,0,};
  18. int table2[]={0xe0,0xc0,0xa0,0x80,0x20};//控制退幣
  19. int total_money=0;//所選商品總價(jià)格
  20. int back_money=0; //應(yīng)退金額
  21. int in_money=0;
  22. /*
  23. 延時(shí)功能
  24. */
  25. void delay(int z)
  26. {
  27. int x,y;
  28. for(x=z;x>0;x--)
  29. for(y=110;y>0;y--);
  30. }
  31. //?調(diào)用時(shí)重新初始化??復(fù)位函數(shù)
  32. void reset()
  33. {
  34. step=1;
  35. price=0;
  36. num=1;
  37. total_money=0;
  38. back_money=0;
  39. in_money=0;
  40. }
  41. /*
  42. 選擇商品函數(shù)?每個(gè)按鍵對(duì)應(yīng)不同的物品價(jià)格及數(shù)量
  43. */
  44. void choose()
  45. {
  46. if(key1==0)
  47. {
  48. delay(80);
  49. if(key1==0)
  50. {
  51. num=1;
  52. price=4;
  53. }
  54. }
  55. else if(key2==0)
  56. {
  57. delay(80);
  58. if(key2==0)
  59. {
  60. price=6;
  61. num=1;
  62. }
  63. }
  64. else if(key3==0)
  65. {
  66. delay(80);
  67. if( key3==0)
  68. {
  69. price=10;
  70. num=1;
  71. }
  72. }
  73. }
  74. /*
  75. 確定及取消
  76. 確定則執(zhí)行?step加一?取消則執(zhí)行step減一
  77. */
  78. void apply()
  79. {
  80. if(key7==0)
  81. {
  82. delay(80);
  83. if(key7==0)
  84. {
  85. step++;
  86. }
  87. }
  88. else if(key8==0)
  89. {
  90. delay(80);
  91. if(key8==0)
  92. {
  93. step--;
  94. }
  95. }
  96. }
  97. /*
  98. 計(jì)算所選商品所需金額
  99. */
  100. void totalmoney()
  101. {
  102. total_money=price*num;
  103. }
  104. /*
  105. //累加投入幣值
  106. */
  107. void inmoney()
  108. {
  109. if(key4==0)
  110. {
  111. delay(80);
  112. if(key4==0)
  113. in_money+=1;
  114. }
  115. else if(key5==0)
  116. {
  117. delay(80);
  118. if(key5==0)
  119. in_money+=5;
  120. }
  121. else if(key6==0)
  122. {
  123. delay(80);
  124. if(key6==0)
  125. in_money+=10;
  126. }
  127. }
  128. /*
  129. 計(jì)算所需退還幣值
  130. */
  131. void backmoney()
  132. {
  133. back_money=in_money -total_money;
  134. }
  135. /*
  136. 顯示函數(shù)?每一步顯示不同的內(nèi)容
  137. */
  138. void display ()
  139. {
  140. if(step==1)
  141. {
  142. P2=0x04;
  143. totalmoney();
  144. P0 =table1[total_money%10];
  145. delay(80);
  146. P2 = 0x08;
  147. P0 = table1[total_money/10];
  148. delay(80);
  149. }
  150. else if(step==2)
  151. {
  152. P2=0x04;
  153. inmoney();
  154. P0=table1[in_money%10];
  155. delay(80);
  156. P2=0x08;
  157. P0=table1[in_money/10];
  158. delay(80);
  159. }
  160. else if(step==3)
  161. {
  162. P2=0xf0;
  163. backmoney();
  164. if(back_money<0)
  165. {
  166. step--;
  167. P0=table1[in_money];
  168. }
  169. if(back_money>=0)
  170. {
  171. P2=0x04;
  172. backmoney();
  173. P0=table1[back_money%10];
  174. delay(80);
  175. P2=0x08;
  176. P0=table1[back_money/10];
  177. delay(80);
  178. reset();
  179. }
  180. else
  181. P0=table1[1];
  182. }
  183. }
  184. /*
  185. //主函數(shù)
  186. */
  187. void main()
  188. {
  189. while(1)
  190. {
  191. choose();
  192. apply();
  193. display();
  194. }
  195. /*?if(back_money>=10)
  196. {int?s=back_money/10;
  197. for(s;s>0;s--?)
  198. {led2=0;
  199. delay(1000);
  200. led2=1;
  201. back_money-=10;
  202. }
  203. }
  204. if(back_money<10&&back_money>0?)
  205. {
  206. led3=0;
  207. delay(1000);
  208. led3=1;
  209. }
  210. delay(1000);
  211. {
  212. led1=0;
  213. delay(1000);
  214. led1=1;
  215. delay(1000);
  216. led1=0;
  217. delay(1000);
  218. led1=1;
  219. delay(1000);
  220. led1=0;
  221. delay(1000);
  222. led1=1;
  223. delay(1000);
  224. }*/
  225. }
復(fù)制代碼

所有資料51hei提供下載:
自動(dòng)售貨機(jī).rar (22.78 KB, 下載次數(shù): 126)
自動(dòng)售貨機(jī)控制系統(tǒng)設(shè)計(jì).doc (511.95 KB, 下載次數(shù): 94)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:651497 發(fā)表于 2019-11-28 15:42 | 只看該作者
可以,完成度很高
回復(fù)

使用道具 舉報(bào)

板凳
ID:489394 發(fā)表于 2019-12-10 10:58 | 只看該作者
可以 參考一下~感覺不錯(cuò)
回復(fù)

使用道具 舉報(bào)

地板
ID:659263 發(fā)表于 2019-12-12 17:50 | 只看該作者
led 為啥不亮
回復(fù)

使用道具 舉報(bào)

5#
ID:625113 發(fā)表于 2019-12-16 09:06 來自手機(jī) | 只看該作者
不錯(cuò)不錯(cuò),剛好需要,謝謝分享
回復(fù)

使用道具 舉報(bào)

6#
ID:572991 發(fā)表于 2019-12-26 22:42 來自手機(jī) | 只看該作者
sz的波妞 發(fā)表于 2019-12-12 17:50
led 為啥不亮

不會(huì)吧。我調(diào)試的是好的啊
回復(fù)

使用道具 舉報(bào)

7#
ID:787555 發(fā)表于 2020-6-25 13:32 來自手機(jī) | 只看該作者
右上角那一部分電路是什么意思呀
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区在线观看 | 欧美一区二区成人 | 亚洲自拍偷拍免费视频 | 午夜免费视频 | 一区二区三区四区在线视频 | 亚洲一区二区电影在线观看 | 国产精品久久久久久中文字 | 日韩免费高清视频 | 午夜在线 | 亚洲成人中文字幕 | 91在线视频免费观看 | 一级欧美 | 福利视频一区二区三区 | 日一日操一操 | 免费久久精品视频 | 精品国产一区二区三区日日嗨 | 亚洲色图插插插 | 亚洲大片在线观看 | av大全在线观看 | 亚洲一级二级三级 | 国产一区影院 | 欧美一区二区三区在线观看视频 | 精品国产亚洲一区二区三区大结局 | 国产精品久久久久久久久免费丝袜 | 国产欧美日韩视频 | 久久国产一区 | 久久精品性视频 | 色婷婷婷婷色 | 超碰免费观看 | 免费视频久久 | 色吊丝2 | 日本福利在线 | 精品久久久久久亚洲国产800 | 久久久久久天堂 | 久久久久91| 久久大陆| 久久久人成影片免费观看 | 中文在线а√在线8 | 国产精品国产精品国产专区不卡 | 五月激情综合 | yeyeav|