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

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

QQ登錄

只需一步,快速開始

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

基于15單片機(jī)的自動(dòng)售水機(jī)裝置設(shè)計(jì)程序 藍(lán)橋杯CT107資料

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:269248 發(fā)表于 2017-12-30 17:13 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
(分享設(shè)計(jì))有意參加藍(lán)橋杯的童鞋可借鑒參考。
  軟件環(huán)境: Keil uVision 4.10
  硬件環(huán)境: CT107單片機(jī)綜合實(shí)訓(xùn)平臺(tái)(12MHz)
所有資料51hei提供下載:
自動(dòng)售水機(jī).rar (36.09 KB, 下載次數(shù): 22)

單片機(jī)源程序如下:
  1. #include "iic.h"
  2. #define temp P3
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit d6=P4^2;
  6. sbit d7=P4^4;
  7. uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
  8. uchar code led[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  9. uchar dispuff[8]={0xc0,0x12,0xc0,0xc0,0xc0,0x40,0xc0,0xc0};
  10. uchar v0,v1,v2,v3,p0,p1,p2,p3,m0,m1,m2,m3;
  11. uint p,v;
  12. uchar buzz,rel,count,light_value;
  13. uchar start_flag;
  14. void choose(uchar t)
  15. {
  16. switch(t)
  17. {
  18.   case 4:P2=((P2&=0x1f)|0x80);break;
  19.   case 5:P2=((P2&=0x1f)|0xa0);break;
  20.   case 6:P2=((P2&=0x1f)|0xc0);break;
  21.   case 7:P2=((P2&=0x1f)|0xe0);break;
  22.   case 0:P2&=0x1f;break;
  23. }
  24. // _nop_();
  25. //  _nop_();
  26. //  P2=0x00;

  27. }
  28. void delay(uint ms)
  29. {
  30.   uchar i,j;
  31.   while(ms--)
  32.   {
  33.    _nop_();
  34.    _nop_();
  35.    _nop_();
  36.    i=11;
  37.    j=190;
  38.    do
  39.    {
  40.            while(--j);
  41.    } while(--i);
  42.   }
  43. }
  44. void display(uchar loc,uchar duan)
  45. {
  46. P0=led[loc];choose(6);choose(0);
  47. P0=duan;   choose(7);choose(0);
  48. }
  49. void buzzer(uchar t)
  50. {
  51. if(t==0)
  52. {
  53.   P0&=0xbf;choose(5);choose(0);
  54. }
  55. if(t==1)
  56. {
  57.   P0|=0x40;choose(5);choose(0);
  58. }
  59. }
  60. void relay(uchar t)
  61. {
  62. if(t==0)
  63. {
  64.   P0&=0xef;choose(5);choose(0);
  65. }
  66. if(t==1)
  67. {
  68.   P0|=0x10;choose(5);choose(0);
  69. }
  70. }
  71. uchar key_scan(void)
  72. {
  73. uchar key_value=16;
  74. temp=0x0f;d6=0;d7=0;
  75. if(temp!=0x0f)
  76. {
  77.   delay(20);
  78.   if(temp!=0x0f)
  79.   {
  80.    switch(temp)
  81.    {
  82.            case 0x0e:key_value=0;break;
  83.            case 0x0d:key_value=4;break;
  84.         case 0x0b:key_value=8;break;
  85.         case 0x07:key_value=12;break;
  86.    }
  87.    temp=0xf0;d6=1;d7=1;
  88.    if(d7==0)key_value+=0;while(d7==0);
  89.    if(d6==0)key_value+=1;while(d6==0);
  90.    if(temp==0xd0)key_value+=2;while(temp==0xd0);
  91.    if(temp==0xe0)key_value+=3;while(temp==0xe0);
  92.   }
  93. }
  94. return key_value;
  95. }
  96. void show(uchar t)
  97. {
  98. if(t==0)
  99. {
  100.   dispuff[1]=tab[0]+0x80;
  101.   dispuff[2]=tab[5];
  102.   dispuff[3]=tab[0];
  103.   dispuff[4]=tab[v3];
  104.   dispuff[5]=tab[v2]+0x80;
  105.   dispuff[6]=tab[v1];
  106.   dispuff[7]=tab[v0];
  107. }
  108. if(t==1)
  109. {
  110.   dispuff[1]=tab[0]+0x80;
  111.   dispuff[2]=tab[5];
  112.   dispuff[3]=tab[0];
  113.   dispuff[4]=tab[p3];
  114.   dispuff[5]=tab[p2]+0x80;
  115.   dispuff[6]=tab[p1];
  116.   dispuff[7]=tab[p0];
  117. }
  118. }
  119. uchar ad_get(uchar addr)
  120. {
  121. uchar dat;
  122. IIC_Start();
  123. IIC_SendByte(0x90);IIC_WaitAck();
  124. IIC_SendByte(addr);IIC_WaitAck();
  125. IIC_Start();
  126. IIC_SendByte(0x91);IIC_WaitAck();
  127. dat=IIC_RecByte();IIC_Ack(0);
  128. IIC_Stop();
  129. return dat;
  130. }
  131. void Timer1Init(void)                //2毫秒@11.0592MHz
  132. {
  133.         AUXR |= 0x40;                //定時(shí)器時(shí)鐘1T模式
  134.         TMOD &= 0x0F;                //設(shè)置定時(shí)器模式
  135.         TL1 = 0x9A;                //設(shè)置定時(shí)初值
  136.         TH1 = 0xA9;                //設(shè)置定時(shí)初值
  137.         EA=1;
  138.         ET1=1;
  139.         TF1 = 0;                //清除TF1標(biāo)志
  140.         TR1 = 1;                //定時(shí)器1開始計(jì)時(shí)
  141. }
  142. void Timer0Init(void)                //2毫秒@11.0592MHz
  143. {
  144.         AUXR |= 0x80;                //定時(shí)器時(shí)鐘1T模式
  145.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  146.         TL1 = 0x9A;                //設(shè)置定時(shí)初值
  147.         TH1 = 0xA9;                //設(shè)置定時(shí)初值
  148.         EA=1;
  149.         ET0=1;
  150.         TF0 = 0;                //清除TF0標(biāo)志
  151.         TR0 = 1;                //定時(shí)器0開始計(jì)時(shí)
  152. }

  153. void main()
  154. {
  155. uchar value;//s;
  156. Timer1Init();
  157. Timer0Init();
  158. while(1)
  159. {
  160.    value=key_scan();
  161. //    s=ad_get(0x43);
  162. //   dispuff[0]=tab[s%1000/100];
  163. //   dispuff[1]=tab[s%100/10];
  164. //   dispuff[2]=tab[s%10];
  165.    if(value==0)
  166.    {
  167.     rel=1;start_flag=1;
  168.    }
  169.    if(start_flag==1)show(0);
  170.    if(value==4)
  171.    {rel=0;start_flag=2;         
  172.         }
  173.         if(start_flag==2)
  174.         {show(1);        
  175.         v0=0;v1=0;v2=0;v3=0;}
  176. }
  177. }
  178. void timer1(void) interrupt 3
  179. {
  180. static uchar m=0;
  181. buzzer(buzz);
  182. relay(rel);
  183. display(m,dispuff[m]);
  184. m++;
  185. if(m==8)m=0;
  186. }
  187. void timer0(void) interrupt 1
  188. {
  189. count++;
  190.    light_value=ad_get(0x41);
  191.    if(light_value<64)
  192.    {P0|=0xff;choose(4);P0&=0xfe;choose(0);}
  193.    if(light_value>64)
  194.    {P0=0xff;choose(4);choose(0);}
  195. ……………………

  196. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

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

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品亚洲一区 | 毛色毛片免费看 | 色综合一区二区三区 | 二区欧美| 三级免费网 | 日韩视频精品在线 | 精品国产一区二区三区性色av | 中文字幕亚洲精品在线观看 | 国产精品揄拍一区二区久久国内亚洲精 | 国产精品久久视频 | 岛国av一区二区三区 | 嫩草一区二区三区 | 国产成人精品午夜视频免费 | 国产清纯白嫩初高生视频在线观看 | 国产精品亚洲第一区在线暖暖韩国 | 精品免费视频 | 国产三级一区二区三区 | 中文字幕欧美一区 | 中文字幕日韩欧美一区二区三区 | 性色视频在线观看 | 成人午夜高清 | 东京久久 | 亚洲精品乱码久久久久久按摩观 | 一级黄色淫片 | av片毛片 | 中文字幕 欧美 日韩 | 一级网站| 国产高清一区二区三区 | 在线免费看黄 | 国产精品99久久久久久久久久久久 | 久久久人成影片免费观看 | 国产区在线看 | 99精品一区二区三区 | 成年免费大片黄在线观看岛国 | av男人的天堂在线 | 欧美一级免费观看 | 国产福利二区 | 一区二区免费视频 | 国产第一页在线观看 | 久久综合一区二区三区 | 国产免费xxx|