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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1873|回復: 1
打印 上一主題 下一主題
收起左側

單片機信號燈課程設計,含源碼,原理圖

[復制鏈接]
跳轉到指定樓層
樓主

  1. #include "SST89x5x4.h"
  2. #include "Absacc.h"
  3. #define C8255_A     XBYTE[0xFF7C]        //8255
  4. #define C8255_B     XBYTE[0xFF7D]
  5. #define C8255_C     XBYTE[0xFF7E]
  6. #define C8255_CON   XBYTE[0xFF7F]
  7. sbit P22=P2^2;
  8. sbit P20=P2^0;
  9. sbit P17=P1^7;
  10. unsigned char a[] = {0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
  11.                                          0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
  12. unsigned char key_down;
  13. void int0_isr() interrupt 0        //ía2¿ÖD¶ÏINT0
  14. {
  15.    while(P22==0);
  16.          {
  17.          P17=0;
  18.          P1=0;
  19.          C8255_B = 0x00;
  20.          }
  21. }
  22. void delay(unsigned int time )    //Ñóê±oˉêy
  23. {
  24.    unsigned int i;
  25.    for(i=0;i<time;i++);
  26.    }
  27. void int_timer0() interrupt 1    //¶¨ê±Æ÷0ÖD¶Ï
  28. {
  29.    P1=P1^0x33;
  30.    TH0=0x88;
  31.    TL0=0x00;
  32. }
  33. void keyscan()                                     //é¨ÃèêÇ·ñóD°′¼ü
  34. {
  35.         unsigned char cc;
  36.         C8255_A = 0x00;                                
  37.         cc = C8255_C;                                
  38.         key_down = (~cc) & 0x0f;
  39. }
  40. void xinhao_1()          //×ó×a
  41. {
  42.       while(key_down==0)
  43.     {               
  44.                         P1=0x80;
  45.        delay(20000);
  46.        P1=0x87;
  47.        delay(20000);
  48.                         keyscan();
  49.       }
  50.   }
  51. void xinhao_2()            //óò×a
  52. {
  53.   while(key_down==0)
  54.             {   P1=0x80;
  55.         delay(20000);
  56.           P1=0xB8;
  57.         delay(20000);
  58.                                 keyscan();
  59.       }
  60. }
  61. void xinhao_3()              //½ô¼±
  62. {
  63.             while(key_down==0)
  64.       {
  65.         P1=0x80;
  66.         delay(20000);
  67.         P1=0xBF;
  68.         delay(20000);
  69.                                 keyscan();
  70.       }
  71. }
  72. void xinhao_4()             //é23μ
  73. {
  74.          while(key_down==0)
  75.                         {
  76.         P1=0x80;
  77.         delay(20000);
  78.         P1=0xA1;
  79.         delay(20000);
  80.                                 keyscan();
  81.       }
  82. }
  83. void xinhao_5()            //×ó×aé23μ
  84. {
  85.        while(key_down==0)
  86.       {
  87.         P1=0xA0;
  88.         delay(20000);
  89.         P1=0xA7;
  90.         delay(20000);
  91.                                 keyscan();
  92.       }
  93. }
  94. void xinhao_6()             //óò×aé23μ
  95. {
  96.         while(key_down==0)
  97.       {
  98.         P1=0x81;
  99.         delay(20000);
  100.         P1=0xB9;
  101.         delay(20000);
  102.                                 keyscan();
  103.       }
  104.   }
  105. void xinhao_7()             //é23μ½ô¼±
  106.      {
  107.       while(key_down==0)
  108.       {
  109.         P1=0xA1;
  110.         delay(20000);
  111.         P1=0xBF;
  112.         delay(20000);
  113.                                 keyscan();
  114.       }
  115.      }
  116. void xinhao_8()             //×ó×aé23μ½ô¼±
  117.      {
  118.        while(key_down==0)
  119.       {
  120.         P1=0xA0;
  121.         delay(20000);
  122.         P1=0xBF;
  123.         delay(20000);
  124.                                 keyscan();
  125.       }
  126.      }
  127. void xinhao_9()            //óò×aé23μ½ô¼±
  128.    {
  129.        while(key_down==0)
  130.       {
  131.         P1=0x81;
  132.         delay(20000);
  133.         P1=0xBF;
  134.         delay(20000);
  135.                                 keyscan();
  136.       }
  137.          }
  138. void xinhao_10()               //í£¿¿
  139. {
  140.            while(key_down==0)
  141.                  {
  142.                          keyscan();
  143.      }
  144.                       ET0=0;
  145.       }
  146. void clear()                     //êyÂë1üÇåáã
  147. {
  148.         C8255_B = 0x00;
  149. }
  150. void getkey()                                                  //2éÑˉ¼üÅìËù°′ÏÂμÄλÖÃ
  151. {
  152.         unsigned char value;
  153.         unsigned int i;
  154.                 C8255_A = 0x0e ;            //μúò»áD
  155.                 value = C8255_C;
  156.          switch(value)
  157.         {
  158.                 case (0x0e):
  159.                 {
  160.                         C8255_B=a[0];             //DÅoÅ1-×ó×a
  161.                   xinhao_1();
  162.                         break;
  163.                 }
  164.          case(0x0d):
  165.          {
  166.                  C8255_B=a[4];             //DÅoÅ5-×ó×aé23μ
  167.                 xinhao_5();
  168.                  break;
  169.          }
  170.          case(0x0b):                 //DÅoÅ9-óò×aé23μ½ô¼±
  171.          {
  172.                  C8255_B=a[8];
  173.                 xinhao_9();
  174.                  break;
  175.          }
  176.          case(0x0f):                 //μúò»áDÎT°′¼ü°′ÏÂ
  177.          {
  178.            break;}
  179.          default:
  180. { P1=0;                       //μúò»áD±¨¾ˉDÅoÅ
  181.          for(i=0;i<10;i++)
  182.          {
  183.                  P20=1;
  184.                         delay(10);
  185.                         P20=~P20;
  186.             delay(10);
  187.    }
  188. }
  189. }
  190. C8255_A = 0x0d ;             //μú¶táD
  191.                 value = C8255_C;
  192.          switch(value)
  193.         {
  194.                 case (0x0e):             //DÅoÅ2-óò×a
  195.                 {
  196.                         C8255_B=a[1];
  197.                   xinhao_2();
  198.                         break;
  199.                 }
  200.          case(0x0d):               //DÅoÅ6-óò×aé23μ
  201.          {
  202.                  C8255_B=a[5];
  203.                 xinhao_6();
  204.                  break;
  205.          }
  206.          case(0x0b):               //DÅoÅ10-í£¿¿
  207.          {
  208.                  C8255_B=a[9];
  209.                   P1=0x80;                        
  210.             TH0=0x88;
  211.       TL0=0x00;
  212.                          ET0=1;
  213.       TR0=1;
  214.                  delay(30000);
  215.                 xinhao_10();
  216.                  break;
  217.          }
  218.          case(0x0f):               //μú¶táDÎT°′¼ü°′ÏÂ
  219.          {
  220.            break;}
  221.          default:
  222. { clear();                  //μú¶táD±¨¾ˉDÅoÅ
  223.          P1=0;
  224.          for(i=0;i<10;i++)
  225.          {
  226.                  P20=1;
  227.                         delay(10);
  228.                         P20=~P20;
  229.             delay(10);
  230.    }
  231. }
  232. }
  233. C8255_A = 0x0b ;            //μúèyáD
  234.                 value = C8255_C;
  235.          switch(value)
  236.         {
  237.                 case (0x0e):            //DÅoÅ3-½ô¼±
  238.                 {
  239.                         C8255_B=a[2];
  240.                   xinhao_3();
  241.                         break;
  242.                 }
  243.          case(0x0d):              //DÅoÅ7-é23μ½ô¼±
  244.          {
  245.                  C8255_B=a[6];
  246.                 xinhao_7();
  247.                  break;
  248.          }
  249.          case(0x0b):              //DÅoÅμÆ»ØÕy
  250.          {C8255_B=a[10];
  251.                  P1=0;
  252.            break;}
  253.          case(0x0f):             //μúèyáDÎT°′¼ü°′ÏÂ
  254.          {
  255.            break;}
  256.          default:
  257. { clear();                //μúèyáD±¨¾ˉDÅoÅ
  258.          P1=0;
  259.          for(i=0;i<10;i++)
  260.          {
  261.                  P20=1;
  262.                         delay(10);
  263.                         P20=~P20;
  264.             delay(10);
  265.    }
  266. }
  267. }
  268. C8255_A = 0x07 ;          //μúËÄáD
  269.                 value = C8255_C;
  270.          switch(value)
  271.         {
  272.                 case (0x0e):           //DÅoÅ4-é23μ
  273.                 {
  274.                         C8255_B=a[3];
  275.                   xinhao_4();
  276.                         break;
  277.                 }
  278.          case(0x0d):             //DÅoÅ8-×ó×aé23μ½ô¼±
  279.          {
  280.                  C8255_B=a[7];
  281.                  xinhao_8();
  282.                  break;
  283.          }
  284.          case(0x0f):             //μúËÄáDÎT°′¼ü°′ÏÂ
  285.          {
  286.            break;}
  287.          default:
  288. { clear();                //μúËÄáD±¨¾ˉDÅoÅ
  289.          P1=0;
  290.          for(i=0;i<10;i++)
  291.          {
  292.                  P20=1;
  293.                         delay(10);
  294.                         P20=~P20;
  295.             delay(10);
  296.    }
  297. }
  298. }
  299. }
  300. void main()
  301. {
  302.         P1=0x00;
  303.         clear();
  304.          EX0=1;
  305.    IT0=0;
  306.    EA=1;
  307.          TMOD=0x11;
  308.          C8255_CON = 0x81;                //82553õê¼»ˉ
  309.                 while(P22==1)
  310.                 {
  311.                         P17=P22;        
  312.              clear();                        
  313.                  keyscan();                                
  314.                   if(key_down)                        //·à¶¶¶ˉ
  315.                  {
  316.                         delay(300);
  317.                         clear();
  318.                         keyscan();
  319.                         if(key_down)
  320.                         {
  321.                                 key_down=0;
  322.                                 getkey();
  323.         }                        
  324.                  }
  325.          }
  326. }
復制代碼

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

使用道具 舉報

沙發
ID:363661 發表于 2018-7-3 09:02 | 只看該作者
8255下面那個4行4列的那個東西怎么跳出來,是什么東西???謝謝!
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久大| 日韩中文字幕久久 | 亚洲在线久久 | 365夜爽爽欧美性午夜免费视频 | 999国产视频 | 国产高清一区二区三区 | 天天爽天天操 | 久久精品a| 亚洲欧美日韩在线不卡 | 欧美成人精品一区二区男人看 | 一区二区三区免费观看 | 久久久久黄色 | 伊人爽 | 91中文字幕在线 | 亚洲成人激情在线观看 | 婷婷综合久久 | 亚洲日本成人 | 妖精视频一区二区三区 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 免费观看a级毛片在线播放 黄网站免费入口 | 亚洲免费视频一区 | 红桃成人在线 | 国产精品综合色区在线观看 | 欧美区日韩区 | 成人二区 | а天堂中文最新一区二区三区 | 亚洲精品一区二区久 | av成人在线观看 | 欧美日韩一区二区电影 | 日韩精品久久久 | 国产精品一区三区 | av在线伊人| 秋霞性生活 | 四虎伊人| 91亚洲精选| 亚洲欧美一区二区在线观看 | 久久69精品久久久久久久电影好 | 欧美激情精品久久久久久变态 | 国产精品久久久久久久久免费丝袜 | 成人免费日韩 | 99精品视频一区二区三区 |