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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這個(gè)單片機(jī)程序怎樣跳出第三個(gè)while循環(huán)?幫忙看一下

[復(fù)制鏈接]
ID:425296 發(fā)表于 2018-12-3 00:58 | 顯示全部樓層 |閱讀模式
  1. #include <reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit SHCP=P3^6;//595的移位信號         
  5. sbit STCP=P3^5;//是595的鎖存信號              
  6. sbit SDA=P3^4;//紅數(shù)據(jù)  

  7. sbit IA=P1^0;//行控制線A                 
  8. sbit IB=P1^1;//行控制線B
  9. sbit IC=P1^2;//行控制線C


  10. /********************************************************************/


  11. #define  scan0    {IA=0;IB=0;IC=0;}
  12. #define  scan1    {IA=1;IB=0;IC=0;}
  13. #define  scan2    {IA=0;IB=1;IC=0;}
  14. #define  scan3    {IA=1;IB=1;IC=0;}
  15. #define  scan4    {IA=0;IB=0;IC=1;}
  16. #define  scan5    {IA=1;IB=0;IC=1;}
  17. #define  scan6    {IA=0;IB=1;IC=1;}
  18. #define  scan7    {IA=1;IB=1;IC=1;}
  19. #define light 3
  20. extern uint uiAllData;                       //定義亮度
  21. uchar code hanzi[];        //漢字字模
  22. uchar Move,Speed,line,tome_count;  //(移位 速度 行 ) 定義
  23. uint zimuo;                                   //字模計(jì)數(shù)器
  24. uint uiAllData;
  25. uchar BUFF[10];                                   //緩存
  26. void   DelayMs(void);              // 延時(shí)
  27. void   in_data();                                   // 調(diào)整移動(dòng)數(shù)據(jù)
  28. void   rxd_data();                                   // 發(fā)送移動(dòng)數(shù)據(jù)
  29. uchar time_count=0; //計(jì)數(shù)
  30. void   rxd_data1();                                   // 發(fā)送移動(dòng)數(shù)據(jù)
  31. /******************************************************/
  32. /*****不影響其他端口的掃描*************************/
  33. void scan(unsigned char Value)
  34. {switch(Value)
  35.         { case  0: scan0;break;
  36.                   case  1: scan1;break;
  37.                   case  2: scan2;break;
  38.                   case  3: scan3;break;
  39.           case  4: scan4;break;
  40.                   case  5: scan5;break;
  41.                   case  6: scan6;break;
  42.                   case  7: scan7;break;
  43.               default:break;
  44.         }
  45. }
  46. /**************************延時(shí)***********************/

  47. void DelayMs(void)
  48. {
  49.   uchar TempCyc;
  50.   for(TempCyc=250;TempCyc>1;TempCyc--)
  51.      {;}
  52. }
  53. /********************************************/


  54. /*主函數(shù)*/
  55. void main()
  56. {  
  57.    Move=0;
  58.    zimuo=0;
  59.    while(1)  
  60.    {
  61.            //利用sizeof()語句 運(yùn)算字幕有效數(shù)據(jù)的總數(shù);
  62.    while(zimuo<1024)//2048)//定義顯示字幕數(shù)據(jù)的長度 2048/32=64 即顯示完64個(gè)16*16大小的字符后 重新循環(huán)
  63.     {
  64.          while(Move<16)        //數(shù)據(jù)移位。
  65.        {
  66.              for(Speed=0;Speed<3;Speed++) //移動(dòng)速度控制
  67.               {        
  68.                     for(line=0;line<8;line++)
  69.                           {
  70.                                 in_data();        //調(diào)整移動(dòng)數(shù)據(jù)
  71.                                 rxd_data(); //裝載移動(dòng)數(shù)據(jù)
  72.                                 scan(line); //輸出行掃描      
  73.                                                                                    
  74.                                 STCP=1;//鎖存
  75.                                 STCP=0;
  76.                                 
  77.                                 DelayMs();         //延時(shí),等待一段時(shí)間,讓這列顯示的內(nèi)容在人眼內(nèi)產(chǎn)生“視覺暫留”現(xiàn)象。
  78.                                 DelayMs();
  79.                                  
  80.                   }
  81.                  }
  82.        Move++;                                                 //移動(dòng)一步
  83.              }
  84.      Move=0;
  85.          zimuo=zimuo+64; //換下一個(gè)字         這里不在移動(dòng)地址 就實(shí)現(xiàn)了靜態(tài)顯示
  86.     }
  87.               
  88.   TMOD=0x01; //定時(shí)器0 16位定時(shí)定時(shí)器1方式2
  89.   TH0=0x4c;  //50ms
  90.   TL0=0x00;  
  91.   TR0=1; //開定時(shí)器計(jì)數(shù)
  92.   ET0=1; //開定時(shí)器中斷
  93.   EA=1;         //開中斷
  94.    while(tome_count<9)    //怎么樣跳出這個(gè)循環(huán)????????
  95.    {
  96.         }                     
  97.         
  98.    zimuo=0;
  99.    }
  100. }
  101.          
  102. /**********************************************************/

  103. void in_data(void)                                       //調(diào)整數(shù)據(jù)一個(gè)屏2個(gè)字的數(shù)據(jù)
  104. {
  105. char s;
  106.         for(s=2;s>=0;s--)                                            //一個(gè)屏能顯示4個(gè)字 取最前面的字發(fā)送給595的最前面
  107.         {   //zimuo 是個(gè)計(jì)算顯示到哪個(gè)字的計(jì)數(shù)器 s是取4個(gè)字的循環(huán) line是顯示到哪一行 根據(jù)這幾個(gè)參數(shù)計(jì)算出一個(gè)屏中現(xiàn)在需要顯示的數(shù)據(jù) 放入BUFF 內(nèi)存中 等待發(fā)送給595
  108.                  BUFF[2*s]=hanzi[zimuo+32*s+2*line];        //要知道為什么這么算就需要知道取模的方向和原理  一行有8個(gè)字節(jié) (一個(gè)中文16*16的字 一行有2個(gè)字節(jié))
  109.                  BUFF[2*s+1]=hanzi[zimuo+1+32*s+2*line];//把一個(gè)字的首字節(jié)放入BUFF[0]中 后面一個(gè)字節(jié)放入BUFF[1] 以此類推剩下的3個(gè)字            
  110.         }
  111. }

  112. /***********************發(fā)送移動(dòng)的數(shù)據(jù)****************************/
  113. void rxd_data(void)                            //串行發(fā)送數(shù)據(jù)
  114. {
  115.   uchar s;
  116.   uchar temp,k;   
  117.   for(s=0;s<4;s++)                   //發(fā)送4字節(jié)數(shù)據(jù)
  118.         {
  119.          temp=BUFF[s];
  120.          temp=255-temp;
  121.                  SDA=0;
  122.              for(k=0;k<8;k++)//一個(gè)字節(jié)8位 發(fā)送給595
  123.                {
  124.                        SHCP=0; //上升沿移位595                           
  125.                            SDA=(bit)(temp&0x01);//通過IO口送一個(gè)位給 595         0x01
  126.                        temp=temp>>1;  //字節(jié)移位 準(zhǔn)備送下一位                           
  127.                    SHCP=1;
  128.                }

  129.    }

  130. }

  131. void Timer0Interrupt(void) interrupt 1 //定時(shí)器中斷
  132. {
  133.      TH0 = 0x04C;//定時(shí)50MS        這里的晶振是18.432M 測試無需理會晶振大小
  134.      TL0 = 0x000;
  135.          
  136.    time_count++;
  137.    if(time_count>8)//發(fā)送一次數(shù)據(jù)
  138.    {      
  139.        time_count=0;
  140.            line++; //下一行
  141.           if(line>8) //共16行
  142.            {
  143.                     line=0; //重新移動(dòng)        
  144.            }
  145.             rxd_data1();//發(fā)送數(shù)據(jù)
  146.         scan(line); //打開行掃描                                                                                             
  147.                 STCP=1;//鎖存
  148.             STCP=0;

  149.    }
  150.         
  151. }
  152. void rxd_data1(void)                            //串行發(fā)送數(shù)據(jù)
  153. {
  154.   uchar s;
  155.   uchar k;

  156.   for(s=0;s<4;s++)//發(fā)送4字節(jié)數(shù)據(jù) 一行4個(gè)字節(jié)
  157.         {
  158.      for(k=0;k<8;k++) //一個(gè)字節(jié)8位
  159.        {
  160.                SHCP=0; //上降沿移位595
  161.           SDA=1;

  162.           SHCP=1;
  163.        }
  164.    }
  165. }

  166. const uchar code hanzi[]={


  167. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"未命名文件",0*/
  168. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"未命名文件",0*/
  169. 0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,
  170. 0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,0x7F,/*"未命名文件",0*/
  171. 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,
  172. 0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,0x3F,/*"未命名文件",0*/
  173. 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,
  174. 0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,0x1F,/*"未命名文件",0*/
  175. 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
  176. 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,/*"未命名文件",0*/
  177. 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
  178. 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,/*"未命名文件",0*/
  179. 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
  180. 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,/*"未命名文件",0*/
  181. 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
  182. 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,/*"未命名文件",0*/
  183. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"未命名文件",0*/
  184. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"未命名文件",0*/
  185. 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,/*"未命名文件",0*/
  186. 0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,/*"未命名文件",0*/
  187. 0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"未命名文件",0*/
  188. 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*"未命名文件",0*/




  189. };

復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:425296 發(fā)表于 2018-12-3 11:18 | 顯示全部樓層
是第四個(gè)while循環(huán)出不來
回復(fù)

使用道具 舉報(bào)

ID:434807 發(fā)表于 2018-12-3 08:39 | 顯示全部樓層
當(dāng)while()中的語句為真時(shí),執(zhí)行一遍{}里的內(nèi)容,直到()內(nèi)不為真,退出該循環(huán),執(zhí)行下一步指令
回復(fù)

使用道具 舉報(bào)

ID:396960 發(fā)表于 2018-12-3 09:45 | 顯示全部樓層
第3個(gè)while里Move++,加到=16跳出來,又被你Move=0了,那就被你摁在第2和第3個(gè)while了。。
回復(fù)

使用道具 舉報(bào)

ID:308437 發(fā)表于 2018-12-3 09:53 | 顯示全部樓層
Move++;                                                 //移動(dòng)一步
這里一直加,到最后,肯定就跳出循環(huán)了
回復(fù)

使用道具 舉報(bào)

ID:94031 發(fā)表于 2018-12-3 09:59 | 顯示全部樓層
這是循環(huán)成立的條件:while(Move<16)
每循環(huán)一次 Move++;
循環(huán)16次,就不滿足循環(huán)條件,跳出循環(huán)。
回復(fù)

使用道具 舉報(bào)

ID:358930 發(fā)表于 2018-12-3 10:34 | 顯示全部樓層
while(tome_count<9)    //怎么樣跳出這個(gè)循環(huán)????????
   {
        }                     
        
   zimuo=0;
   }
}這個(gè)不是定義嗎,while(tome_count<9),就是計(jì)數(shù)大于9后為假,跳出。
回復(fù)

使用道具 舉報(bào)

ID:438194 發(fā)表于 2018-12-3 12:20 來自手機(jī) | 顯示全部樓層
這是循環(huán)成立的條件:while(Move<16) 每循環(huán)一次 Move++;  循環(huán)16次,就不滿足循環(huán)條件,就是讓循環(huán)的條件不滿足循環(huán)
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: h片在线观看免费 | 午夜一区 | av在线免费播放 | 国产精品久久久久久婷婷天堂 | 久久综合香蕉 | 三级视频在线观看 | 免费在线观看成年人视频 | 午夜精品一区二区三区免费视频 | 伊人久久综合 | 欧美综合视频 | 色视频在线免费观看 | 日韩欧美一级精品久久 | 精品美女| 国产一级成人 | 成人h动漫精品一区二区器材 | 逼逼网| 一区二区三区在线电影 | 伊人久操 | 一区二区三区欧美 | 999视频 | 国产精品呻吟久久av凹凸 | 日韩欧美在线一区 | 精品一区二区三区四区五区 | 精品视频在线播放 | 中文字幕国产在线 | 日本午夜视频 | 亚洲成人精品一区 | 黄色片免费看 | 日韩在线免费视频 | 日韩欧美亚洲 | 日本中文字幕一区 | 男女视频在线观看免费 | 天天干夜夜拍 | 亚洲永久| 九九精品在线 | av影音在线| 午夜网站视频 | 免费看一区二区三区 | 国产亚洲精品久久yy50 | 欧美寡妇偷汉性猛交 | 国产成人久久精品 |