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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

全自動繞線機(jī)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:76127 發(fā)表于 2015-4-5 00:47 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
該程序主要運(yùn)用了鍵盤掃描技術(shù)和EEROM存儲器編程,做到把鍵盤值輸入到存儲器中,不怕掉電。基于WICN單片機(jī)開發(fā)板設(shè)計(jì)。
主程序


  1. //--------------------- 半自動繞線機(jī)程序 ----------------------

  2. //-----------------芯片STC89C52RC 晶振11.0592M ----------------

  3. //---------------------計(jì)數(shù)值范圍1~22圈-----------------------

  4. #include<reg52.h>

  5. #include"24c01.c"

  6. #include"stopgo.c"

  7. #include"jishuan.c"

  8. #include"lcd1602.c"

  9. #include"startgo.c"

  10. //-------------------------------------------------------------

  11. #define uchar unsigned char

  12. #define uint  unsigned int

  13. //-------------------------------------------------------------



  14. sbit  K1=P0^0;       //數(shù)字輸入鍵個位數(shù)

  15. sbit  K2=P0^1;       //數(shù)字輸入鍵十位數(shù)

  16. sbit  K3=P0^2;       //輸入功能并以IIC存入AT24C01中保存

  17. sbit  K4=P0^3;       //確認(rèn)存入數(shù)據(jù)鍵

  18. sbit  K5=P0^4;    //停止鍵

  19. sbit  beep=P3^3;

  20. sbit    CLK=P1^2;       //光電感應(yīng)脈沖(用該開關(guān)模仿)

  21. sbit  LE_LED=P3^4;

  22. sbit  LED=P1^5;

  23. //-------------------------------------------------------------

  24. //-------------------------------------------------------------

  25. uchar tablee[2];



  26. //------按鍵延時-----------------------------------------------

  27. void delayx(uint i)

  28. {

  29.        uint w;

  30.        for(w=0;w<i;w++);

  31. }

  32. //-------------------------------------------------------------

  33. void start_ggo(uchar b)  //打線執(zhí)行程序

  34. {

  35.        uchar d=0;

  36.        uchar n=0;     

  37.        while(n<=b)

  38.     {

  39.               LCD1602(n);     //顯示

  40.               if(!CLK)

  41.               {

  42.               delayx(500);

  43.               while(CLK==0);

  44.               n++;

  45.               LED=0;

  46.               beep=0;

  47.               delayx(10000);

  48.               LED=1;

  49.               beep=1;

  50.               }

  51.        }   

  52. }

  53. //------------------------------------------------------------

  54. //-------------------------------------------------------------

  55. //------------------數(shù)據(jù)鍵盤按鍵掃描---------------------------

  56. void main()

  57. {

  58.        uchar h,f;

  59.        uchar e=30;

  60.        uchar id0=0;

  61.        uchar id1=0;

  62.        LE_LED=0;

  63.        while(1)

  64.        {

  65.               if(!K1)        //P0.0      K1=3

  66.               {

  67.                 delayx(500);

  68.                 while(K1==0);

  69.              beep=0;

  70.                 delayx(5000);

  71.                 beep=1;

  72.                 tablee[0]=3;

  73.                 if(id0==1)

  74.                 {

  75.                     tablee[1]=3;

  76.                      id0=0;

  77.                 }

  78.                  id0++;

  79.                  if(id0==2)id0=0;

  80.               }

  81.               //--------------------

  82.               if(!K2)           //P0.1    K2=5

  83.               {

  84.                 delayx(500);

  85.                 while(K1==0);

  86.              beep=0;

  87.                 delayx(5000);

  88.                 beep=1;

  89.                 tablee[1]=5;

  90.                 if(id1==1)

  91.                 {

  92.                     tablee[0]=5;

  93.                      id0=0;

  94.                 }

  95.                 id1++;

  96.                 if(id1==2)id1=0;

  97.               }

  98.               //===========================================================

  99.                if(!K3)//確認(rèn)輸入到AT24C01中

  100.                {

  101.                     delayx(500);

  102.                   while(K3==0);       //P0.2

  103.                      beep=0;

  104.                      delayx(5000);

  105.                      beep=1;

  106.                      jishuan(tablee[0],tablee[1]);

  107.                   f=jishuan_ok();

  108.                   init();                //24c01初始化

  109.                   W_AT24C01(e,f);//寫數(shù)據(jù)到AT24C01中,0x30是器件地址內(nèi)存單元

  110.                }

  111.                if(!K4)//啟動機(jī)器打線 P0.3

  112.                {

  113.                   delayx(500);

  114.                   while(K4==0);

  115.                      beep=0;

  116.                      delayx(5000);

  117.                      beep=1;

  118.                   init();               //24c01初始化

  119.                   h=R_AT24C01(e); //讀AT24C01中0x30的數(shù)據(jù)

  120.                   LCD1602(h);     //顯示

  121.                   //start_go(h);    //啟動執(zhí)行打線功能并計(jì)數(shù)

  122.                      start_ggo(h);



  123.                   if(!K5)           //如果停機(jī)鍵按下則執(zhí)行停機(jī)功能

  124.                   stop_go();

  125.                }   

  126.        }

  127. }





  128. //---IIC AT24C01存儲器讀寫操作程序-----------

  129. #include <reg52.h>

  130. #define uchar unsigned char

  131. sbit SDA=P3^6;

  132. sbit SCL=P3^7;

  133. ///------------------------------------------

  134. void delay()

  135. { ; ; }

  136. ///////////////////////

  137. void start()//起始信號

  138. {

  139.        SDA=1;

  140.        delay();

  141.        SCL=1;

  142.        delay();

  143.        SDA=0;

  144.        delay();

  145. }

  146. ///////////////////////

  147. void stop()//終止信號

  148. {

  149.        SDA=0;

  150.        delay();

  151.        SCL=1;

  152.        delay();

  153.        SDA=1;

  154.        delay();

  155. }

  156. //////////////////////////////////////////////////

  157. //////////////////////////////////////////////////

  158. void respons()//應(yīng)答信號,等待或者發(fā)送一個應(yīng)答信號

  159. {

  160.        uchar i;

  161.        SCL=1;

  162.        delay();

  163.        while((SDA==1)&&(i<250))i++;

  164.        SCL=0;

  165.        delay();

  166. }

  167. /*************************************************/

  168. void init()//初始化

  169. {

  170.        SDA=1;

  171.        SCL=1;

  172. }

  173. //////////////////////////////////////////////////

  174. void write_byte(uchar date)//寫一字節(jié)

  175. {

  176.        uchar i;

  177.        SCL=0;

  178.        for(i=0;i<8;i++)

  179.        {

  180.               date=date<<1;

  181.               SDA=CY;

  182.               SCL=1;

  183.               delay();

  184.               SCL=0;

  185.               delay();

  186.        }

  187. }

  188. //------------------------------------------------                                          

  189. uchar read_byte()//讀數(shù)據(jù)(也就是接收從器件傳來的數(shù)據(jù))

  190. {

  191.        uchar i,k;

  192.        for(i=0;i<8;i++)

  193.        {

  194.               SCL=1;

  195.               delay();

  196.               k=(k<<1)|SDA;

  197.               SCL=0;

  198.               delay();

  199.        }

  200.               return k;

  201. }

  202. //////////////////////////////////////////////////

  203. //=============AT24C01寫操作=====================//

  204. void W_AT24C01(uchar address,uchar date)//寫數(shù)據(jù)

  205. {

  206.        start();

  207.        write_byte(0xa0);  //器件地址

  208.        respons();

  209.        write_byte(address);//器件內(nèi)存地址 address

  210.     respons();

  211.        write_byte(date);//數(shù)據(jù)     date

  212.        respons();

  213.        stop();

  214. }

  215. //////////////////////////////////////////////////

  216. //==============AT24C01讀操作====================//

  217. uchar R_AT24C01(uchar address)

  218. {

  219.        uchar date;

  220.        start();

  221.        write_byte(0xa0);//寫器件地址和寫指令0XA0=10100000B最后一個零表示寫,低電平有效

  222.        respons();

  223.        write_byte(address);////器件內(nèi)存地址address

  224.        respons();

  225.        start();

  226.        write_byte(0xa1);//寫器件地址和讀指令0XA1=10100001B,最后一個1表示讀,高電平有效

  227.        respons();

  228.        date=read_byte();

  229.        stop();

  230.        return date;

  231. }







  232. //------------------LCD1602顯示程序(模塊)--------------------

  233. #include <reg52.h>

  234. #define uchar unsigned char

  235. ///////////////LCD1602/////////////

  236. sbit RS=P0^5;

  237. sbit RW=P0^6;

  238. sbit YE=P0^7;

  239. /////////////////////////////////////////////////////////////

  240. uchar code table[]={0xc0,0xf9,0xa4,0xb0,//0,1,2,3

  241.                                    0x99,0x92,0x82,0xf8,//4,5,6,7

  242.                                    0x80,0x90,0xfe};//8,9,.,段碼表

  243. /////////////////////////////////////////////////////////////

  244. uchar code table1[] ={"0123456789. -"};

  245. uchar code table2[] ={"Temperature"};

  246. uchar code table3[] ={"  123333  "};

  247. /////////////////////////////////////////////////////////////

  248. void delayy(unsigned int us)

  249. {

  250.        while(us--);

  251. }

  252. ////////////////////////////////////////////

  253. void delay2()

  254.               {

  255.                      RS=0;

  256.                      RW=0;

  257.                      YE=0;

  258.                      delayy(5);

  259.                      YE=1;

  260.               }

  261. /******************************LCD1602液晶顯示****************************/

  262. void LCD1602(uchar dd)//dd是整數(shù)

  263. {

  264.                      uchar e,f,i,nem;

  265.                      e=dd/10;

  266.                      f=dd%10;

  267. //////////////////////////////////////LCD屏初始化

  268.                      P2=0x01;       //清屏

  269.                      delay2();

  270.                      P2=0x38;       //顯示設(shè)定兩行

  271.                      delay2();

  272.                      P2=0x0f;  //打開顯示和光標(biāo)

  273.                      delay2();

  274.                      P2=0x06;  //光標(biāo)右移

  275.                      delay2();

  276.                      P2=0x80;  //光標(biāo)回到第一行的開頭

  277.                      delay2();

  278. //////////////////////////////////////////

  279.        for(nem=0;nem<11;nem++)////////////溫度英文字顯示

  280.          {

  281.                      P2=table2[nem];

  282.                      RS=1;

  283.                      RW=0;

  284.                      YE=0;

  285.                    delay2();

  286.             }

  287. ////////////////////////

  288.                      P2=table1[e];

  289.                      RS=1;

  290.                      RW=0;

  291.                      YE=0;

  292.                      P2=0x06;  //光標(biāo)右移顯示整數(shù)十位

  293.                      delay2();

  294. ////////////////////////

  295.                      P2=table1[f];

  296.                      RS=1;

  297.                      RW=0;

  298.                      YE=0;

  299.                      P2=0x06;  //光標(biāo)右移顯示整數(shù)個位

  300.                      delay2();

  301. /////////////////////////////////////////////////

  302.                      P2=0xc0;//換行顯示

  303.                      delay2();

  304.               for(i=0;i<16;i++)

  305.           {        

  306.                      P2=0xc0;

  307.                      delay2();

  308.                      P2=table3[i];

  309.                      RS=1;

  310.                      RW=0;

  311.                      YE=0;

  312.              }

  313. }







  314. //-----------數(shù)據(jù)計(jì)算程序--------------

  315. #define uchar unsigned char

  316. static uchar j=0;

  317. ///----------------------------------------------------

  318. void jishuan(uchar i,uchar e) //i為十位,e為個位

  319. {

  320.   j=((i*10)+e);

  321. }

  322. ///-----------------------------------------------------

  323. uchar jishuan_ok()

  324. {

  325.   return (j);

  326. }
復(fù)制代碼


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

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产高清一区二区三区 | 国产一级片在线观看视频 | 日韩在线视频一区二区三区 | 2019天天操| 国产乱码精品1区2区3区 | 久久久久一区二区三区 | 国产黄色麻豆视频 | 黄色av网站在线观看 | 一级二级三级黄色 | av中文字幕在线播放 | 日韩av资源站 | 精品日韩在线观看 | 色播av| 天天操夜夜爽 | 欧美精品中文字幕久久二区 | 免费国产视频在线观看 | 日韩免费| 成人高清在线视频 | 97av视频在线观看 | 免费三级av | 国产激情精品视频 | 中文亚洲视频 | 久久久久国产精品一区 | 国产欧美一区二区三区久久人妖 | 青娱乐自拍 | 羞羞羞视频 | 91伊人| 国产99热在线 | 日韩视频精品在线 | 日韩欧美综合 | 欧美成年网站 | 毛片一区二区 | 亚洲免费观看视频 | 在线中文视频 | 一区二区日韩精品 | 国产精品欧美一区二区三区不卡 | 犬夜叉在线观看 | 大乳boobs巨大吃奶挤奶 | 日韩电影免费在线观看中文字幕 | 精品欧美一区二区久久久伦 | 成人影院一区二区三区 |