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

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

QQ登錄

只需一步,快速開始

搜索
查看: 3691|回復(fù): 1
收起左側(cè)

12864液晶屏顯示各種傳感器

[復(fù)制鏈接]
ID:71259 發(fā)表于 2014-12-29 20:40 | 顯示全部樓層 |閱讀模式
本帖最后由 daming 于 2014-12-29 20:41 編輯
  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. #define jian P1
  5. sbit bf=P0^7;
  6. sbit lcd_rs=P2^6;
  7. sbit lcd_rw=P2^5;
  8. sbit lcd_e=P2^4;
  9. sbit lcd_reset=P2^7;
  10. sbit lihe=P2^0;
  11. sbit shache=P2^1;
  12. sbit ge=P3^2;
  13. sbit sj_p33=P3^3;
  14. sbit zhengfan=P3^4;
  15. bit aj_1,zd_1,jin_1,song_1,ti_1,tj_1;
  16. uint gaodu_0,gaodu_1,shiji_0,cishu;
  17. uchar shiling,ms,sj_s,sj_j;
  18. uchar code  hz_bj1[]={"計(jì)數(shù)傳感器無(wú)信號(hào)"};
  19. uchar code  hz_bj2[]={"方向傳感信號(hào)無(wú)  "};
  20. uchar code  hz_bj3[]={"檢測(cè)到反轉(zhuǎn)超限  "};
  21. uchar code  hz_bj4[]={"檢測(cè)到正轉(zhuǎn)超限  "};
  22. uchar code  hz_bj5[]={"過(guò)緊或傳感器失靈"};
  23. uchar code hz_kong[]={"                "};
  24. uchar code    zzzk[]={"歡迎使用職專智控"};
  25. uchar code     csh[]={"正在初始化。。。"};
  26. uchar code     qqh[]={"qq:000000"};
  27. uchar code    hz_t[]={"態(tài):"};
  28. uchar code   hz_gs[]={"過(guò)松"};
  29. uchar code   hz_gj[]={"過(guò)緊"};
  30. uchar code   hz_tz[]={"停"};
  31. uchar code    hz_z[]={"智"};
  32. uchar code hz_jing[]={"警"};
  33. uchar code   hz_tg[]={"提高"};
  34. uchar code   hz_lh[]={"離合"};
  35. uchar code    tb_1[]={"●"};
  36. uchar code    tb_2[]={"○  "};
  37. uchar code hz_sheng[]={"升"};
  38. uchar code hz_jiang[]={"降"};
  39. uchar code hz_sc[]={"剎車"};
  40. uchar        rem[]={0,0,1,0};
  41. uchar     rem_cs[]={0,0,0,0};
  42. uchar      rem_1[]={0,0};
  43. uchar     rem_sj[]={0,0};
  44. uchar    rem_gd1[]={0,0,0,0};
  45. uchar   code bcd[]={"0123456789"};
  46. /////////////
  47. yanshi(uint t)
  48. {
  49. uint i,j;
  50. for(i=0;i<t;i++)
  51.    {
  52.     for(j=0;j<110;j++);
  53.     }
  54. }
  55. //////////////////////
  56. yanshi1(uint t)
  57. {
  58. while(t--);
  59. }
  60. ///////////////////////////
  61. fuwei()
  62. {yanshi(5);
  63. lcd_reset=0;
  64. yanshi(5);
  65. lcd_reset=1;
  66. }
  67. ///////////////////////////
  68. xie_lcd(bit ly,uchar shuju_lcd)
  69. {
  70. lcd_rs=ly;
  71. lcd_rw=0;
  72. lcd_e=0;
  73. P0=shuju_lcd;
  74. yanshi(5);
  75. lcd_e=1;
  76. yanshi(5);
  77. lcd_e=0;
  78. }
  79. /////////////////////////////
  80. /////////////////////////////
  81. lcd_zuobiao(uchar x,uchar y)
  82. {
  83. uchar temp;
  84. if(x==0)
  85.    {x=0x80;}
  86. if(x==1)
  87.    {x=0x90;}
  88. if(x==2)
  89.    {x=0x88;}
  90. if(x==3)
  91.    {x=0x98;}
  92. temp=x+y;
  93. xie_lcd(0,temp);
  94. }
  95. ///////////////////////////
  96. xiehz(uchar xx,uchar yy,uchar code *chn)
  97. {
  98.     uchar i;
  99. lcd_zuobiao(xx,yy);
  100. i=0;
  101. while(chn[i]!='\0')
  102.      {
  103.       xie_lcd(1,chn[i]);
  104.       i++;
  105.      }
  106. }
  107. ///////////////////////////
  108. xiesz(uchar xx,uchar yy,uchar wei,uchar *chn)
  109. {
  110.     uchar i;
  111. lcd_zuobiao(xx,yy);
  112. for(i=0;i<wei;i++)
  113.      {
  114.       xie_lcd(1,bcd[chn[i]]);
  115.      }
  116. }
  117. ///////////////////////////
  118. ///////////////////////////
  119. xieping_1()
  120. {
  121. xiehz(0,0,hz_t);
  122. xiehz(0,4,hz_tg);
  123. xiehz(1,0,hz_lh);
  124. xiehz(2,0,hz_sc);
  125. }
  126. ///////////////////////////
  127. chushihua_p()
  128. {
  129. xie_lcd(0,0x30);
  130. xie_lcd(0,0x0c);
  131. xie_lcd(0,0x01);
  132.   xiehz(0,0,zzzk);
  133.   //xiehz(2,0,csh);
  134.   xiehz(3,2,qqh);
  135. yanshi(2000);
  136. xie_lcd(0,0x01);
  137. xieping_1();
  138. xiehz(0,2,hz_tz);
  139. xiesz(0,6,4,rem);
  140. }
  141. ///////////////////////////
  142. ////////////////////停機(jī),離合器離開,同時(shí)剎車剎住
  143. ting()
  144. {
  145. fuwei();
  146. chushihua_p();
  147. lihe=1;
  148. EA=0;
  149. TR1=0;
  150. EX0=0;EX1=0;
  151. zd_1=0;
  152. ms=0;
  153. xiehz(0,2,hz_tz);
  154. xiehz(1,2,tb_2);
  155. xiehz(2,2,tb_2);
  156. //shache=0;//xiesz(3,0,4,rem_gd1);shiling=0;
  157. }
  158. ///////////////////
  159. sd_lh()
  160. {
  161. if(~zd_1)
  162. {
  163. while(jian==0xf7)lihe=0;
  164. lihe=1;
  165. }
  166. }
  167. ///////////////
  168. sd_sc()
  169. {
  170. if(~zd_1)
  171. {
  172. while(jian==0xfb)shache=0;
  173. shache=1;
  174. }
  175. }
  176. /////////////////////
  177. shujuchuli_0()
  178. {
  179. uint shuju;
  180. shuju=gaodu_0-200;
  181. rem[1]=shuju%1000/100;
  182. rem[2]=shuju%100/10;
  183. rem[3]=shuju%10;
  184. xiesz(0,6,4,rem);
  185. //if(gaodu_1>=200)
  186. //{
  187.       shuju=gaodu_1;//-200;
  188. rem_gd1[1]=shuju%1000/100;
  189. rem_gd1[2]=shuju%100/10;
  190. rem_gd1[3]=shuju%10;
  191. xiesz(3,0,4,rem_gd1);
  192. // }
  193.     shuju=cishu;
  194. rem_cs[1]=shuju%1000/100;
  195. rem_cs[2]=shuju%100/10;
  196. rem_cs[3]=shuju%10;
  197. xiesz(3,6,4,rem_cs);
  198. }
  199. /////////////////////
  200. /////////////提低//////////////////////////////////
  201. tidi()
  202. {
  203. if(gaodu_0>210)gaodu_0--;
  204. }
  205. //////提高
  206. tigao()
  207. {
  208. gaodu_0++;
  209. }
  210. ///////////////
  211. ///////////////////
  212. ///////////////////自動(dòng)
  213. zidong()
  214. {
  215. if(ms==0)if(zd_1==0)
  216.         {
  217.         ms=1;
  218.         xiehz(0,2,hz_z);
  219.   shiling=0;
  220.   gaodu_1=200;
  221.         TMOD=0x10;
  222.         ET1=1;
  223.         TH1=0;TL1=0;TR1=1;
  224.         zd_1=1;
  225.         shache=1;
  226.         lihe=0;
  227.         ti_1=1; //  //提升標(biāo)志致一                        
  228.   IT0=1;//負(fù)跳變有效
  229.   EX0=1;//開外int0中斷
  230.         IT1=1;//負(fù)跳變有效
  231.   //EX1=1;//開外int1中斷
  232.         EA=1;
  233.         }
  234. }
  235. ///////////////////鍵盤
  236. jianpan()
  237. {
  238. uchar jianma;
  239. jian=0xff;
  240. if(jian==0xff)aj_1=1;
  241. else{
  242.      yanshi1(50);
  243.      if(jian==0xff)return;
  244.      if(aj_1)
  245.         {
  246.           jianma=jian&0xff;
  247.           aj_1=0;
  248.           switch(jianma)
  249.               {
  250.                case 0x7f:
  251.                           {
  252.                            zd_1=0;
  253.                            if(ms==2)ting();
  254.                           }
  255.                         break;
  256.                case 0xbf:zidong();break;
  257.                case 0xdf:tidi();break;
  258.                case 0xef:tigao();break;
  259.                case 0xf7:sd_lh();break;
  260.                case 0xfb:sd_sc();break;
  261.                case 0xfd:jin_1=1;break;
  262.                case 0xfe:song_1=1;break;
  263.                }
  264.          }
  265.       
  266.     }
  267. }
  268. ///////////////////////////
  269. chushihua_jiqi()
  270. {
  271. lihe=1;
  272. shache=1;
  273. gaodu_0=230;
  274. gaodu_1=200;
  275. shiji_0=203;
  276. cishu=0;
  277. PX0=1;
  278. shujuchuli_0();
  279. }
  280. ///////////////////////////////////
  281. jing()
  282. {
  283.            ms=2;
  284.            shiling=0;
  285.            gaodu_1=200;
  286.            xiehz(0,2,hz_jing);
  287.            xiehz(1,2,tb_2);
  288.   while(ms==2)
  289.    {
  290.    EX0=0;
  291.    lihe=1;
  292.    jianpan();
  293.    }
  294.            xieping_1();
  295.            ting();
  296.            xiehz(3,0,hz_kong);
  297. }
  298. ///////////////////////////////////
  299. guole()
  300. {
  301. EA=0;TR1=0;EX0=0;EX1=0;lihe=1;zd_1=0;
  302. jing();
  303. }
  304. ////////////////////////////////
  305. baoxian() interrupt 3
  306. {
  307. TH1=0;
  308. TL1=0;
  309.   shiling++;
  310.      if(shiling>200)
  311.           {
  312.            EA=0;TR1=0;EX0=0;EX1=0;lihe=1;zd_1=0;
  313.            xiehz(3,0,hz_bj1);
  314.            jing();
  315.            }
  316. }
  317. //////////////////////////
  318. ///////////////////////////
  319. void main(void)
  320. {
  321. lihe=1;shache=1;                  //
  322. fuwei();                          //屏幕復(fù)位
  323. chushihua_p();                    //初始化屏
  324. chushihua_jiqi();                 ///初始化機(jī)器
  325. while(1)                              
  326.   {                        
  327.          if(~zd_1)lihe=1;                                  //不是自動(dòng)模式離合松
  328.          shujuchuli_0();                                   //數(shù)據(jù)處理
  329. jianpan();                                                
  330.          if(lihe){xiehz(1,2,tb_2);xiehz(1,4,hz_jiang);}    //松開時(shí)寫實(shí)心球?qū)懡底?br />
  331.          else {xiehz(1,2,tb_1);xiehz(1,4,hz_sheng);}       //結(jié)合時(shí)寫升
  332. jianpan();                        
  333.          if(shache)xiehz(2,2,tb_2);                        //                    
  334.          else xiehz(2,2,tb_1);                             //
  335. jianpan();
  336.   if(jin_1)xiehz(2,4,hz_gs);                         //
  337.   else xiehz(2,4,hz_gj);                              //
  338. if(sj_s>20){EX0=0;xiehz(3,0,hz_bj5);guole();sj_s=0;}        //
  339.   }
  340. }
  341. ///////////////////查磁片程序/////////////
  342. jishu1()  interrupt 0   
  343. {
  344. EX0=0;
  345. yanshi1(20);                                          ///消除線路干擾,消抖
  346.   if(~ge)                                                ///消抖
  347.     {
  348.           shiling=0;                                      ///防止計(jì)數(shù)傳感器失靈,或機(jī)器不轉(zhuǎn)
  349.           if(zhengfan)
  350.             {              if(~ti_1)lihe=1;                //提起標(biāo)志為零時(shí)離合器松開
  351.                            else
  352.                                 {                           //提起標(biāo)志1時(shí)
  353.                                 while((zhengfan)&&(~ge));   //等待方向傳感器被觸發(fā),
  354.                                 if(ge)                     
  355.                                    {                        //方向傳感器沒(méi)有被觸發(fā)時(shí)
  356.                                     EA=0;EX0=0;             //總中斷為零不再計(jì)數(shù)
  357.                                     lihe=1;zd_1=0;          //離合松,自動(dòng)標(biāo)志為0
  358.                                     xiehz(3,0,hz_bj2);      //寫方向傳感器失靈漢字
  359.                                     jing();                 //進(jìn)入警狀態(tài)
  360.                                     }
  361.                                 }
  362.                                 if(tj_1)                    //調(diào)節(jié)標(biāo)志為一時(shí)進(jìn)行調(diào)節(jié)
  363.                                    {
  364.                                    tj_1=0;                  ///置零調(diào)節(jié)標(biāo)志,只進(jìn)行一次調(diào)節(jié)
  365.                                    EX1=0;                    //關(guān)閉過(guò)松觸發(fā)中斷
  366.                                    song_1=1;                  //松標(biāo)志置一,
  367.                                    }
  368.             gaodu_1++;                         //提升高度計(jì)數(shù)加加
  369.                           
  370.          ////////////////////////////////////////////////////////////////
  371.            if(zd_1)
  372.                     {                                          // 是自動(dòng)模式判斷高度
  373.            if(gaodu_1>=gaodu_0)///                    ///高度到否判斷
  374.                {                                   //到了
  375.                              if(~jin_1)                     
  376.                                    {                           //緊標(biāo)志零時(shí)
  377.                  ti_1=0;                     //提升標(biāo)志置零
  378.                                    lihe=1;                     //離合斷開
  379.                           yanshi1(40);                 //延時(shí)防干擾
  380.                                    }
  381.                              else
  382.                                 {                                //進(jìn)標(biāo)志一時(shí)
  383.                                 jin_1=0;                         // 置零,只緊一次
  384.                                 song_1=0;                        //松標(biāo)志為零,不松了
  385.                                 gaodu_1--;                       //高度計(jì)數(shù)器減減,讓提升數(shù)值不變。
  386.                                 sj_j++;                          //緊的次數(shù)加加
  387.                                 if(sj_j>4)gaodu_1--;             //連續(xù)緊超過(guò)4次了,多緊一個(gè)磁片
  388.                                 }  
  389.                            }
  390.                     }
  391.                 else   {
  392.                         lihe=1;ti_1=0;                          //落錘停車
  393.                         yanshi1(40);  
  394.         }   
  395.              }            
  396. ///////////////////////////////////////////////////////////////////////////////////
  397.   else
  398.               {   
  399.             gaodu_1--;                                //落錘時(shí)高度減減
  400.                if(gaodu_1<=shiji_0)
  401.                    {                                     //落到底了
  402.                      if(zd_1)                             ///
  403.                     {
  404.                                  if(~song_1)                  
  405.                                      {                           //松標(biāo)志為零時(shí)提升
  406.                                       if(~ti_1)cishu++;          //打夯次數(shù)加一
  407.            ti_1=1;                    //提升標(biāo)志
  408.                                       tj_1=1;                    //調(diào)節(jié)標(biāo)志
  409.                                       lihe=0;                   ///結(jié)合離合顯示上橫
  410.               EX1=1;                     //開外中斷1,檢查是否松,
  411.                                       yanshi1(40);               //延時(shí)
  412.                                      }
  413.                                  else
  414.                                       {
  415.                                        song_1=0;                //松標(biāo)志置零
  416.                                        gaodu_1++;               //松一個(gè)磁片
  417.                                        sj_j=0;                  //緊次數(shù)置零
  418.                                        sj_s++;                  // 松的次數(shù)加加
  419.                                        if(sj_s>4)gaodu_1++;     //連續(xù)松了超4次了,多松一個(gè)
  420.                                       }
  421.                     }
  422.                      else ting();                          //停車
  423.                     }
  424.         }
  425.     }
  426. EX0=1;
  427. }
  428. ////////////////////////////////////////
  429. songle()  interrupt 2
  430. {yanshi(30);
  431. if(~sj_p33)
  432.           {
  433.            jin_1=1;
  434.            sj_s=0;  //碰到鋼絲繩時(shí)松計(jì)數(shù)置零,防止過(guò)松。
  435.            EX1=0;
  436.            }
  437. }
復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

ID:195884 發(fā)表于 2017-7-20 16:12 | 顯示全部樓層
這個(gè)程序是何用途?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人性视频在线播放 | 九九在线视频 | 亚洲成人在线视频播放 | 97人澡人人添人人爽欧美 | 国产毛片av | 黄色网址在线免费观看 | 成人一区av偷拍 | 国产精品久久久久久久久久久久午夜片 | 久久尤物免费一区二区三区 | 精品精品视频 | 视频一区二区在线观看 | 在线观看中文字幕 | 亚洲精品粉嫩美女一区 | 国产一区二区影院 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 毛片视频观看 | 久久久精品一区二区三区 | 亚洲成人精品一区二区 | 日韩精品免费 | 色综合久久久久 | 毛片免费在线 | 免费在线观看一区二区 | 国产精品亚洲第一区在线暖暖韩国 | 国产区在线免费观看 | 亚洲毛片在线观看 | 久久久久国产 | 91在线免费视频 | 99热在这里只有精品 | 在线视频91| 91精品久久久久久久久久小网站 | 免费在线黄色av | 荷兰欧美一级毛片 | 日日夜夜草 | 欧美成人性生活 | 最新一级毛片 | 在线婷婷 | 国产一级精品毛片 | 精品视频久久久 | 精品中文视频 | 中文成人在线 | 一级做受毛片免费大片 |