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

標題: 單片機流水燈實驗三 按鍵控制流水燈方向速度 不用等待放手立即響應 [打印本頁]

作者: cangyuan    時間: 2021-7-17 16:46
標題: 單片機流水燈實驗三 按鍵控制流水燈方向速度 不用等待放手立即響應
本次是流水燈最后一個實驗,主要目的是為了讓大家初步認識和掌握中斷的運用,當進行中斷時,我們就可以不用管是否放手,程序會立即響應而不是像之前一樣要將程序進行完才進入下一階段。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include "reg52.h"
  2. #define u8 unsigned char
  3. u8 code tab[15]={1,2,4,8,16,32,64,128,64,32,16,8,4,2,1};
  4. u8 m=0,fang=0,n;


  5. void delay(long k){while(k--);}
  6. void loop1(u8 a,u8 b)//        //流水燈的起始位置
  7. {
  8.         u8 i,j;
  9.         j=fang;
  10.         n=m;
  11.         for(i=a;i<b;i++)
  12.         {
  13.         if(j==fang && n==m)
  14.                 {P1=~tab[i];
  15.                 delay(3000);}
  16.                 else break;
  17.         }//建議添加判斷方向是否改變的代碼,實現按下立即break循環
  18. }

  19. void loop2(u8 a,u8 b)//        //流水燈的起始位置
  20. {
  21.         u8 i,j;
  22.         j=fang;
  23.         n=m;
  24.         for(i=a;i<b;i++)
  25.         {
  26.                 if(j==fang && n==m)
  27.                 {P1=~tab[i];
  28.                 delay(60000);}
  29.                 else break;
  30.         }//建議添加判斷方向是否改變的代碼,實現按下立即break循環
  31. }

  32. void loop3(u8 a,u8 b)//        //流水燈的起始位置
  33. {
  34.         u8 i,j;
  35.         j=fang;
  36.         n=m;
  37.         for(i=a;i<b;i++)
  38.         {
  39.         if(j==fang && n==m)
  40.                 {P1=~tab[i];
  41.                 delay(2000);}
  42.                 else break;
  43.         }//建議添加判斷方向是否改變的代碼,實現按下立即break循環
  44. }
  45. void main()
  46. {
  47.         EA=1;IT0=1;EX0=1;//總中斷允許=1,下降沿觸發=1,P32允許啟動=1
  48.         IT1=1;EX1=1;
  49. while(1)
  50.         {
  51.         if(m==0)
  52.         {
  53.                 switch(fang)
  54.                 {case 0: loop1(0,15);break;
  55.                  case 1: loop1(7,15);break;
  56.                  case 2: loop1(0,8);break;
  57.                  default: P1=0xff;break; }
  58.         }
  59. if(m==1)
  60.         {
  61.                 switch(fang)
  62.                 {case 0: loop2(0,15);break;
  63.                  case 1: loop2(7,15);break;
  64.                  case 2: loop2(0,8);break;
  65.                 default: P1=0xff;break; }
  66.         }
  67. if(m==2)
  68.         {
  69.                 switch(fang)
  70.                 {case 0: loop3(0,15);break;
  71.                  case 1: loop3(7,15);break;
  72.                  case 2: loop3(0,8);break;
  73.                  default: P1=0xff;break; }
  74.         }
  75.         }
  76. }
  77. void bao() interrupt 0
  78. {
  79.         if(fang>=3) fang=0;
  80.         else fang++;
  81. }//出現中斷,例如按下按鍵了,就改變方向
  82. void bbo() interrupt 2
  83. {
  84.         if(m>=2) m=0;
  85.         else m++;
  86. }
復制代碼

所有資料51hei提供下載:
摁鍵控制流水燈方向速度 不用等待放手立即響應.rar (72.52 KB, 下載次數: 15)







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久午夜视频 | 久久久成人免费视频 | 狠狠操av | 国产免费自拍 | 日韩国产精品一区二区三区 | 欧美成人手机在线 | 亚洲高清在线 | 一级在线免费观看 | 99久视频 | 又黄又爽的网站 | 午夜日韩 | 亚洲精品九九 | 亚洲二区视频 | 国产日韩电影 | 国产欧美日韩在线一区 | 欧美一区二区三区久久精品 | 黄色精品 | 99re视频这里只有精品 | 麻豆av在线| 欧美日韩中文字幕在线播放 | 欧美啪啪网站 | 国产日批 | 午夜在线电影网 | 少妇性l交大片免费一 | 四季久久免费一区二区三区四区 | 精品久久久久久 | 九九热免费看 | 亚洲网址| 久久久久久国产精品三区 | 久久久久国产一级毛片高清网站 | 日本精品视频在线 | 免费国产视频 | 五月天激情电影 | 亚洲精品精品 | 天天草视频 | www.日韩 | 一级高清 | 中文字幕 国产精品 | 国产在线网站 | 亚洲综合免费 | 国产亚洲精品久久久久动 |