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

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

QQ登錄

只需一步,快速開始

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

單片機(jī)國(guó)旗升降系統(tǒng)程序及仿真原理圖資料

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:116078 發(fā)表于 2017-12-24 14:40 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
國(guó)旗升降系統(tǒng)原理圖如下


單片機(jī)源程序如下:
  1. //此程序只供參考//
  2. //升國(guó)旗中 還有萬(wàn)年歷顯示 現(xiàn)在沒有加進(jìn)去//
  3. //下次我把他加進(jìn)去


  4. #include<reg52.h>
  5. #define uchar unsigned char        //宏定義
  6. #define uint unsigned int
  7. #define lcdbus P1
  8. sbit RS = P3^0;
  9. sbit RW = P3^1;
  10. sbit E = P3^2;
  11. //st7920字模取模方式為逐行式 順向去摸
  12. sbit  key1=P2^4;  //升國(guó)旗
  13. sbit  key2=P2^5;  //升半旗
  14. sbit  key3=P2^6;  //降國(guó)旗
  15. sbit   zdbz1=P0^2;
  16. sbit   zdbz2=P0^1;
  17. sbit   zdbz3=P0^0;
  18. uchar flag1,flag2,flag3,flag4,aa,bb,cc;    //flag4為正反轉(zhuǎn)標(biāo)志
  19. uchar code table[]={0xf1,0xf2,0xf4,0xf8};
  20. uchar tt,tt0,tt1;//定時(shí)器時(shí)間設(shè)置標(biāo)志
  21. uchar sj,sj1,sj2,sj3,gd1,gd13,gd12,gd11,gd2,gd21,gd22,gd23;//顯示設(shè)置變量
  22. uchar xx;//電機(jī)脈沖順序變量
  23. uint xh; //升半旗時(shí)候在最高點(diǎn)停留時(shí)間
  24. /*自定義液晶字庫(kù)中沒有的字模*/
  25. uchar code zdy[][32]={     
  26. {0x00,0x00,0x07,0x20,0x3C,0x20,0x04,0x20,0x04,0x20,0x04,0x24,0x7F,0xFE,0x04,0x20,
  27. 0x04,0x20,0x04,0x20,0x08,0x20,0x08,0x20,0x10,0x20,0x20,0x20,0x40,0x20,0x00,0x00},/*"升",0*/

  28. {0x00,0x80,0x78,0xF8,0x49,0x10,0x52,0xA0,0x50,0x40,0x60,0xB0,0x53,0x4E,0x48,0x40,
  29. 0x4B,0xF8,0x68,0x40,0x52,0x40,0x43,0xFC,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40},/*"降",1*/

  30. {0x00,0x7C,0x3F,0x80,0x02,0x20,0x04,0x20,0x08,0x40,0x1F,0x80,0x03,0x20,0x0C,0x10,
  31. 0x3F,0xF8,0x10,0x8C,0x04,0xA0,0x08,0x90,0x10,0x88,0x20,0x84,0x42,0x84,0x01,0x00},/*"系",2*/

  32. {0x10,0x40,0x10,0x20,0x23,0xFE,0x20,0x40,0x44,0x40,0xF8,0x88,0x09,0x04,0x13,0xFE,
  33. 0x20,0x94,0x7C,0x90,0x00,0x90,0x00,0x90,0x1D,0x12,0xE1,0x12,0x02,0x0E,0x04,0x00},/*"統(tǒng)",3*/

  34. };
  35.     //下面代碼橫是列地址 豎是行地址   16*64  拆開16*32+16*32*/
  36. uchar code bmp1[]={
  37. 0x02,0x08,0x00,0x08,0x00,0x00,0x04,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  38. 0x00,0xD0,0x06,0x04,0x08,0x03,0x02,0x00,0x38,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
  39. 0x41,0x00,0x09,0x43,0x00,0x04,0xA1,0x80,0x41,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
  40. 0x42,0x00,0x29,0x00,0x00,0x14,0x80,0x00,0x8E,0x00,0xE7,0x00,0x00,0x00,0x00,0x00,
  41. 0x32,0x88,0x29,0x30,0x04,0x14,0x98,0x00,0x70,0x00,0x1C,0x80,0x00,0x00,0x00,0x00,
  42. 0x0C,0x00,0x16,0x48,0x00,0x0B,0x24,0x00,0x20,0x00,0x08,0x60,0x00,0x00,0x00,0x00,
  43. 0x00,0x20,0x4D,0x80,0x00,0x26,0xC0,0x00,0x40,0x00,0x08,0x10,0x00,0x00,0x00,0x00,
  44. 0x40,0x20,0x00,0x10,0x00,0x00,0x08,0x00,0x4C,0x00,0x08,0x10,0x00,0x00,0x00,0x00,
  45. 0x04,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x00,0x08,0x20,0x00,0x00,0x00,0x00,
  46. 0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x08,0x09,0xC0,0x00,0x00,0x00,0x00,
  47. 0x18,0x10,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x04,0x00,0x40,0x00,0x00,0x00,0x00,
  48. 0x25,0x3F,0xC3,0xFE,0x3F,0xE0,0x00,0x01,0x10,0x04,0x00,0x40,0x00,0x00,0x00,0x00,
  49. 0xA4,0x08,0x40,0x20,0x00,0x41,0x80,0x01,0x10,0x00,0x00,0x20,0x00,0x00,0x00,0x00,
  50. 0xA4,0xC8,0x47,0xFF,0x00,0x83,0xC0,0x01,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,
  51. 0x59,0x28,0x40,0x20,0x03,0x03,0xC0,0x02,0x00,0x40,0x00,0x20,0x00,0x00,0x00,0x00,
  52. 0x36,0x08,0x81,0xFC,0x02,0x03,0xC0,0x02,0xF0,0x40,0x10,0x20,0x00,0x00,0x00,0x00,
  53. 0x00,0x44,0x81,0x24,0x02,0x01,0x80,0x05,0x0C,0x04,0x10,0x20,0x00,0x00,0x00,0x00,
  54. 0x00,0x05,0x01,0xFC,0x02,0x01,0x80,0x05,0x42,0x00,0x14,0x40,0x00,0x00,0x00,0x00,
  55. 0x00,0x02,0x01,0x24,0x02,0x00,0x00,0x05,0x51,0x00,0x1C,0x40,0x00,0x00,0x00,0x00,
  56. 0x00,0x05,0x03,0xFE,0x02,0x01,0x80,0x04,0x91,0x03,0xC0,0x40,0x00,0x00,0x00,0x00,
  57. 0x00,0x18,0xC0,0x20,0x02,0x01,0x80,0x04,0x61,0x00,0x00,0x40,0x00,0x00,0x00,0x00,
  58. 0x02,0x60,0x37,0xFF,0x0E,0x00,0x00,0x04,0x1E,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
  59. 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
  60. 0x40,0x7F,0xF4,0x0A,0x3B,0xF3,0xFE,0x01,0x01,0xF0,0x01,0x00,0x00,0x00,0x00,0x00,
  61. 0x38,0x05,0x02,0x0A,0x2A,0x90,0x04,0x00,0xC7,0xF8,0x02,0x00,0x00,0x00,0x00,0x00,
  62. 0x04,0x3F,0xE2,0xFF,0x2A,0x90,0x08,0x00,0x70,0xF8,0x04,0x00,0x00,0x00,0x00,0x00,
  63. 0x20,0x25,0x20,0x88,0x3A,0x90,0x30,0x00,0xC7,0x00,0x08,0x00,0x00,0x00,0x00,0x00,
  64. 0x00,0x3F,0xE2,0xF9,0x2B,0xF0,0x20,0x01,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
  65. 0x00,0x04,0x02,0x89,0x2A,0x00,0x20,0x02,0x20,0x00,0x01,0x00,0x00,0x00,0x00,0x00,
  66. 0x41,0x7F,0xF4,0xFA,0x3A,0x00,0x20,0x04,0x48,0x00,0x00,0x80,0x00,0x00,0x00,0x00,
  67. 0x18,0x08,0x84,0xD4,0x2A,0x00,0x20,0x08,0x80,0x08,0x00,0x80,0x00,0x00,0x00,0x00,
  68. 0x20,0x1D,0x05,0x75,0x2A,0x10,0x20,0x09,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,
  69. 0x40,0x03,0x85,0x4B,0x4A,0x10,0x20,0x12,0x30,0x00,0x80,0x40,0x00,0x00,0x00,0x00,
  70. 0x50,0x7C,0x62,0x11,0x5B,0xF0,0xE0,0x13,0x8F,0xC0,0x80,0x20,0x00,0x00,0x00,0x00,
  71. 0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x78,0x3F,0x00,0x20,0x00,0x00,0x00,0x00,
  72. 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x03,0xC0,0x80,0x20,0x00,0x00,0x00,0x00,
  73. 0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x00,0x0F,0x80,0x20,0x00,0x00,0x00,0x00,
  74. 0x84,0x80,0x00,0x1C,0x08,0x0E,0x04,0x28,0x00,0x00,0x40,0x20,0x00,0x00,0x00,0x00,
  75. 0x04,0x1C,0x08,0x22,0x00,0x11,0x00,0x18,0x00,0x00,0x20,0x20,0x00,0x00,0x00,0x00,
  76. 0x02,0x22,0x00,0x21,0x00,0x10,0x80,0x08,0x00,0x00,0x20,0x20,0x00,0x00,0x00,0x00,
  77. 0xA1,0xA1,0x00,0x24,0xE0,0x12,0x70,0x10,0x00,0x00,0x30,0x20,0x00,0x00,0x00,0x00,
  78. 0x80,0x24,0xE0,0x18,0x10,0x0C,0x08,0x10,0x00,0x00,0x28,0x20,0x00,0x00,0x00,0x00,
  79. 0x98,0x18,0x10,0x00,0x80,0x00,0x40,0x10,0x08,0x00,0x25,0xE0,0x00,0x00,0x00,0x00,
  80. 0x24,0x00,0x81,0x00,0x00,0x80,0x00,0x1A,0x08,0x00,0x22,0x20,0x00,0x00,0x00,0x00,
  81. 0xC1,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x46,0x00,0x22,0xA0,0x00,0x00,0x00,0x00,
  82. 0x08,0x00,0x00,0x01,0x04,0x00,0x82,0x0F,0x93,0x40,0x21,0x40,0x00,0x00,0x00,0x00,
  83. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  84. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  85. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  86. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  87. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  88. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  89. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  90. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  91. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  92. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  93. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  94. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  95. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  96. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  97. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  98. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  99. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  100. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  101. };




  102. void csh();
  103. void delay(uint z)     //0.1MS 準(zhǔn)確延時(shí)     z=1
  104. {
  105.     uint x,y;
  106.     for (x=0;x<z;x++)
  107.       for(y=0;y<11;y++);

  108. }
  109. void busy()         //查忙
  110. {  RS=0;
  111.    RW=1;
  112.    E=1;
  113.    lcdbus=0xff;
  114.    while((lcdbus&0x80)==0x80);
  115.    E=0;
  116. }
  117. void write_com(uchar xiezl)         //寫指令
  118. {
  119.    busy();
  120.    RS=0;
  121.    RW=0;
  122.    E=1;
  123.    lcdbus=xiezl;
  124.    delay(5);
  125.    E=0;
  126.    delay(5);
  127. }
  128. void write_data(uchar xiesj)      //寫數(shù)據(jù)
  129. {
  130.   busy();
  131.   RS=1;
  132.   RW=0;
  133.   E=1;
  134.   lcdbus=xiesj;
  135.   delay(5);
  136.   E=0;
  137.   delay(5);
  138. }

  139. void write_tp(uchar code *p)      /*顯示圖片-*/
  140. {
  141.        uint j=0;
  142.     uchar x,y,i;
  143.        for(i=0;i<9;i+=8)
  144.        for(y=0;y<32;y++)
  145.          for(x=0;x<8;x++)
  146.          {  write_com(0x36);        //擴(kuò)充指令集
  147.             write_com(y+0x80);      //行地址
  148.             write_com(x+0x80+i);    //列地址
  149.             write_com(0x30);
  150.             write_data(p[j++]);
  151.             write_data(p[j++]);
  152.          }   
  153. }
  154.            

  155. void clrscreen()             //清液晶屏
  156. {
  157.    write_com(0x01);
  158.    delay(10);
  159.    }
  160. void clrgdram()                 //清液晶ram
  161. {      
  162.         uchar x,y;
  163.         for(y=0;y<64;y++)
  164.          for(x=0;x<16;x++)
  165.          {  write_com(0x34);
  166.             write_com(y+0x80);        //行地址
  167.             write_com(x+0x80);     //列地址
  168.             write_com(0x30);
  169.             write_data(0x00);
  170.             write_data(0x00);
  171.           }
  172.    }   
  173. void lcdcsh()              //液晶初始化
  174. {  delay(2000);
  175.    write_com(0x30);
  176.    delay(10);         
  177.    write_com(0x30);   
  178.    delay(5);
  179.    write_com(0x0c);       //開顯示(無(wú)游標(biāo)、不反白)
  180.    delay(10);
  181.    write_com(0x01);       //清除顯示,并且設(shè)定地址指針為00H
  182.    delay(500);
  183.    write_com(0x06);       //指定在資料的讀取及寫入時(shí),設(shè)定游標(biāo)的移動(dòng)方向及指定顯示的移位
  184.    delay(0);
  185. }
  186. void xianshi(uchar code *s)        //用指針顯示字符串
  187. {                                     //各種字符都用字符串顯示出來(lái)  方法簡(jiǎn)單

  188.    while(*s>0)
  189.     {  
  190.       write_data(*s);
  191.       s++;
  192.       delay(50);
  193.    }
  194. }


  195. void jin88()          //液晶上電顯示
  196. {
  197.    int i=0;
  198.    write_com(0x01);
  199.    delay(5);
  200.    write_com(0x80);
  201.    xianshi("題目:?jiǎn)纹瑱C(jī)控制");
  202.    write_com(0x90);
  203.    xianshi("國(guó)旗自動(dòng)");
  204.    write_com(0x95);
  205.    write_com(0x88);
  206.    xianshi("本項(xiàng)目由錦88獨(dú)立");
  207.    write_com(0x98);
  208.    xianshi("制作完成");
  209.   
  210. }
  211. void CGRAM()       //自定義  四個(gè)漢字字模
  212. {
  213.                    //四個(gè)漢字分別是  升降系統(tǒng)
  214.      int i,j;
  215.     int jj=0;
  216.      write_com(0x30);   
  217.      for(j=0;j<4;j++)
  218.      
  219.      {
  220.          write_com(0x40+jj);
  221.         for(i=0;i<16;i++)
  222.        {
  223.          write_data(zdy[j][i*2]);
  224.          write_data(zdy[j][i*2+1]);
  225.         }
  226.         jj=jj+0x10;
  227.         
  228.      }
  229. }      

  230. //電機(jī)部分
  231. void djyz1()  //升國(guó)旗 正轉(zhuǎn)
  232. {
  233.   clrscreen();
  234.   write_com(0x81);
  235.   xianshi("大家請(qǐng)起立");   
  236.   write_com(0x91) ;
  237.   xianshi("奏國(guó)歌    國(guó)旗");
  238.   write_com(0x95);          //調(diào)用自定義的CGRAM的代碼
  239.   write_data(0x00);
  240.   write_data(0x00);
  241.   write_com(0x89);
  242.   xianshi("請(qǐng)行注目禮");
  243.   delay(700000);
  244.      //此處再加聲音         用兩個(gè)口控制apr9600 使其放音
  245.   clrscreen();
  246.   write_com(0x80);
  247.   xianshi("國(guó)旗高度:000厘米");
  248.   write_com(0x90);
  249.   xianshi("所用時(shí)間: 00秒");

  250.    flag4=1;    //電機(jī)正轉(zhuǎn)
  251.    TR1=1;
  252.    xx=0;
  253.    TR0=1;
  254.    sj=0;
  255.    gd1=0;
  256. while(zdbz1)
  257. {
  258. /*此處再加聲音         用兩個(gè)口控制apr9600 使其放音             */
  259.    write_com(0x84);
  260.    write_data(0x7c);
  261.    write_data(0x30+gd13); //時(shí)間高度自加
  262.    write_com(0x85);
  263.    write_data(0x30+gd12);
  264.    write_data(0x30+gd11);
  265.    write_com(0x94);
  266.    write_data(0x7c);
  267.    write_data(0x30+sj3);
  268.    write_com(0x95);
  269.    write_data(0x30+sj2);
  270.    write_data(0x30+sj1);
  271. }

  272.    TR1=0;
  273.    TR0=0;
  274.   

  275.    flag1=0;
  276.    flag2=0;
  277.    flag3=1;

  278. }  
  279. void djyz2()   //升半旗       先正轉(zhuǎn) 再反轉(zhuǎn)
  280. {
  281.     clrscreen();
  282.     write_com(0x81);
  283.     xianshi("大家請(qǐng)起立");   
  284.     write_com(0x91) ;
  285.     xianshi("奏國(guó)歌    國(guó)旗");
  286.     write_com(0x95);          //調(diào)用自定義的CGRAM的代碼 顯示‘升’
  287.     write_data(0x00);
  288.     write_data(0x00);
  289.     write_com(0x89);
  290.     xianshi("請(qǐng)行注目禮");
  291.     delay(700000);
  292.      //此處再加聲音
  293.     clrscreen();
  294.     write_com(0x80);
  295.     xianshi("國(guó)旗高度:000厘米");
  296.     write_com(0x90);
  297.     xianshi("所用時(shí)間: 00秒");

  298.     xx=0;
  299.        flag4=1;    //電機(jī)正轉(zhuǎn)
  300.     TR1=1;
  301.     TR0=1;
  302.     sj=0;
  303.     gd1=0;
  304.     while(zdbz1)
  305.     {
  306.       write_com(0x84);
  307.       write_data(0x7c);
  308.       write_data(0x30+gd13);
  309.       write_com(0x85);
  310.       write_data(0x30+gd12);
  311.       write_data(0x30+gd11);
  312.       write_com(0x94);
  313.       write_data(0x7c);
  314.       write_data(0x30+sj3);
  315.       write_com(0x95);
  316.       write_data(0x30+sj2);
  317.       write_data(0x30+sj1);
  318.     }
  319.     TR1=0;
  320.     for(xh=0;xh<30000;xh++)
  321.     {
  322.       write_com(0x94);
  323.       write_data(0x7c);
  324.       write_data(0x30+sj3);
  325.        write_com(0x95);
  326.       write_data(0x30+sj2);
  327.       write_data(0x30+sj1);
  328.     }   
  329.     xx=4;
  330.     flag4=0;    //電機(jī)反轉(zhuǎn)
  331.     gd21=gd11;
  332.     gd22=gd12;
  333.     gd23=gd13;
  334.     TR1=1;
  335.     while(zdbz2)
  336.     {
  337.       write_com(0x84);
  338.       write_data(0x7c);
  339.       write_data(0x30+gd13);
  340.       write_com(0x85);
  341.       write_data(0x30+gd12);
  342.       write_data(0x30+gd11);
  343.       write_com(0x94);
  344.       write_data(0x7c);
  345.       write_data(0x30+sj3);
  346.       write_com(0x95);
  347.       write_data(0x30+sj2);
  348.       write_data(0x30+sj1);
  349.    
  350.     }
  351.     TR1=0;
  352.     TR0=0;
  353.        flag1=0;
  354.     flag2=0;
  355.     flag3=1;
  356. }
  357. void djyz3()   //降
  358. {
  359.     xx=4;
  360.     TR1=1;
  361.     flag4=0;    //電機(jī)反轉(zhuǎn)      此處沒有時(shí)間高度顯示
  362.     while(zdbz3);
  363.     TR1=0;
  364.     csh();
  365.     flag1=1;
  366.     flag2=1;
  367.     flag3=0;

  368. }
  369. void djyz()
  370. {
  371.      if    (aa==1)
  372.      {     
  373.         aa=0;
  374.         if(flag1)djyz1();
  375.      }
  376.      if(bb==1)
  377.        {
  378.          bb=0;
  379.          if(flag2)djyz2();
  380.        }
  381.      if(cc==1)
  382.        {
  383.          cc=0;
  384.          if(flag3)djyz3();
  385.        }
  386. }

  387. void jpsm()      //鍵盤掃描
  388. {     
  389.     do
  390.     {
  391.      if(((key1||key2)==1)||((key1||key3)==1)||((key3||key2)==1)    ) //防止兩鍵同時(shí)按下
  392.        {
  393.            if(key1==0)
  394.             {
  395.               delay(2);
  396.               if(key1==0)
  397.                 aa=1;
  398.             }
  399.            else if(key2==0)
  400.              {
  401.               delay(2);
  402.               if(key2==0)
  403.                 bb=1;
  404.              }
  405.             else if(key3==0)
  406.              {
  407.               delay(2);
  408.               if(key3==0)
  409.                  cc=1;
  410.              }
  411.         }
  412.         
  413.      }while((aa||bb||cc)==0) ;
  414. }
  415. void csh()
  416. {
  417.    //初始化程序
  418.    flag1=1;
  419.    flag2=1;
  420.    flag3=0;
  421.    zdbz1=1;
  422.    zdbz2=1;
  423.    zdbz3=1;//三個(gè)干簧管  低電平時(shí) 電機(jī)停轉(zhuǎn)
  424.    sj=0;   //時(shí)間高度開始值0
  425.    gd1=0;
  426.   
  427.    TMOD=0x11;
  428.    TH0=(65536-50000)/256;  //定時(shí)50ms
  429.    TL0=(65536-50000)%256;
  430.    TH1=(65536-100)/256;
  431.    TL1=(65536-100)%256;      //定時(shí)0.1ms
  432.    EA=1;
  433.    ET0=1;
  434.    ET1=1;
  435.    TR0=0;
  436.    TR1=0;
  437. }
  438. void yjcsxs()
  439. {
  440.     jin88();//液晶初始化后顯示
  441. /*因?yàn)樯迪到y(tǒng)無(wú)法直接 顯示 我就自定義了四個(gè)字的字模*/
  442.     write_com(0x94);          //調(diào)用自定義的CGRAM的代碼
  443.     write_data(0x00);
  444.     write_data(0x00);           //
  445.     delay(10);
  446.     write_com(0x95);          //調(diào)用字庫(kù)中沒有的漢字
  447.     write_data(0x00);
  448.     write_data(0x02);          //
  449.     write_com(0x96);         
  450.     write_data(0x00);
  451.     write_data(0x04);          //
  452.     delay(10);
  453.     write_com(0x97);         
  454.     write_data(0x00);
  455.     write_data(0x06);
  456.     delay(10);
  457.     /*再顯示一幅圖畫*/
  458.     clrscreen();
  459.     clrgdram();
  460.     write_tp(bmp1); //



  461. }


  462. void main()
  463. {
  464.     lcdcsh();//液晶初始化
  465.     CGRAM();//定義字庫(kù)中沒有的字符 升降系統(tǒng) 四個(gè)字
  466.        yjcsxs();


  467.     csh();  //電機(jī)初始化
  468.     while(1)
  469.     {
  470.      jpsm();//鍵盤掃描
  471.      djyz();//電機(jī)運(yùn)行
  472.      }
  473. }
  474. void time1() interrupt 3       //定時(shí)器1控制電機(jī)正反轉(zhuǎn)速度
  475. {
  476.        TH1=(65535-100)/256; //定時(shí)0.1ms
  477.       TL1=(65535-100)%256;
  478.       tt1++;
  479.       if(flag4)    //正轉(zhuǎn)
  480.       {
  481.             if(tt1==70)
  482.            {
  483.               tt1=0;
  484.               P2=table[xx++] ;      //P2口控制電機(jī)
  485.                 if(xx==4) xx=0;
  486.              }
  487.       }
  488.       else      //反轉(zhuǎn)
  489.       {
  490.          if(tt1==80)
  491.          {
  492.              tt1=0;
  493.                P2=table[--xx];
  494.                if(xx==0) xx=4;
  495.            }
  496.       }
  497. }
  498. void time0() interrupt 1        //定時(shí)器0控制時(shí)間高度
  499. {
  500.    
  501.     TH0=(65535-50000)/256;    //定時(shí)     50ms
  502.     TL0=(65535-50000)%256;
  503.       tt0++;
  504.     tt++;
  505.     if(tt0==6)
  506.         {     
  507.           tt0=0;
  508.           gd12=gd1%100/10;
  509.           gd11=gd1%10 ;
  510.           gd13=gd1/100;
  511.          
  512.           gd21=gd2%10;
  513.           gd22=gd2%100/10;
  514.           gd23=gd2/100;

  515.           gd1++;
  516.           gd2--;
  517.            }
  518.    if(tt==20)
  519.         {
  520.           tt=0;
  521.           sj1=sj%10 ;
  522.           sj2=sj%100/10;
  523.           sj3=sj/100;
  524.           sj++ ;  
  525.         }
  526.                      
  527. }
復(fù)制代碼

評(píng)分

參與人數(shù) 3黑幣 +58 收起 理由
倫敦之殤 + 3 回帖助人的獎(jiǎng)勵(lì)!
lxfenfen + 5 很給力!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:293060 發(fā)表于 2018-3-17 10:44 | 只看該作者
很給力!
回復(fù)

使用道具 舉報(bào)

板凳
ID:247623 發(fā)表于 2018-9-14 14:47 | 只看該作者
連仿真文件都沒有,就一張圖,一段程序
回復(fù)

使用道具 舉報(bào)

地板
ID:922296 發(fā)表于 2021-5-16 19:04 | 只看該作者
十分感謝,但是可以講講流程不?
回復(fù)

使用道具 舉報(bào)

5#
ID:922296 發(fā)表于 2021-5-16 19:35 | 只看該作者
倫敦之殤 發(fā)表于 2018-3-17 10:44
**** 作者被禁止或刪除 內(nèi)容自動(dòng)屏蔽 ****

不完整的嗎
回復(fù)

使用道具 舉報(bào)

6#
ID:922296 發(fā)表于 2021-5-17 20:41 | 只看該作者
請(qǐng)問(wèn)為啥電機(jī)不轉(zhuǎn)?
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产亚洲欧美在线 | 亚洲一区二区三区四区五区午夜 | 国产精品久久久久久久久久久免费看 | 久久久久一区二区三区 | 久久99精品久久久久久国产越南 | 久久久久久亚洲欧洲 | 欧美国产精品 | 久久国产精品久久久久 | 国产精品福利在线 | 欧美精品一区二区在线观看 | 国产精品久久久久永久免费观看 | 福利网址 | 综合精品久久久 | 欧美久久久久久久久 | 一区二区免费在线 | 夜夜爽99久久国产综合精品女不卡 | 亚洲欧美日韩一区二区 | 欧美在线a | 成人福利网 | www国产亚洲精品久久网站 | 日韩欧美在线免费观看视频 | 色欧美片视频在线观看 | 久久久123 | 中文字幕高清av | 九九热在线免费视频 | 亚洲国产高清免费 | 91pron在线| av毛片| 操久久 | 国产精品一区二区三区在线播放 | 二区在线观看 | 国产午夜视频 | 91免费看片神器 | 中文字幕在线观看视频网站 | 91婷婷韩国欧美一区二区 | 日本不卡高字幕在线2019 | 9191在线观看 | 色综久久 | 欧美精品一区二区在线观看 | 国产精品日韩一区二区 | 伊人精品久久久久77777 |