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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C51通過串口實現功能切換的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:273660 發表于 2018-1-11 15:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請大家幫忙看一下這個問題,不知道怎么解決。我在main中寫了break了,但是用卻沒辦法切換,應該是前一個功能開始了但是停不下來,不知道怎么解決,求大神幫幫忙!
  1. #include "liushuideng.h"
  2. #include "0832.h"
  3. #include "12864.h"
  4. #include "1302.h"
  5. #include "lcd12864.h"
  6. #include "DS1302.h"

  7. #define uchar unsigned char
  8. #define uint unsigned int

  9. uchar zhi;

  10. void zhongduan()
  11. {
  12.         SCON=0x50;
  13.         TMOD=0x20;
  14.         TH1=0xfd;
  15.         TL1=0xfd;
  16.         IE=0x90;
  17.         TR1=1;
  18. }

  19. void liushuiinit()
  20. {
  21.         COM = 0x90;
  22.         PA = 0xff;
  23.         PB = 0xff;
  24.         PC = 0xff;
  25. }

  26. void main()
  27. {
  28.         zhongduan();
  29.         while(1)
  30.         {
  31.                 if(zhi==1)
  32.                 {
  33.                         Init_LCD1602();
  34.                         while(1)
  35.                         {
  36.                                 jisuanqi();
  37.                                 if(zhi!=1)
  38.                                 {
  39.                                         break;
  40.                                 }       
  41.                         }       
  42.                 }
  43.                 else if(zhi==2)
  44.                 {
  45.                         liushuiinit();
  46.                         while(1)
  47.                         {
  48.                                 liushuideng();
  49.                                 if(zhi!=2)
  50.                                 {
  51.                                         PB=0XFF;
  52.                                         break;
  53.                                 }       
  54.                         }
  55.                 }
  56.                 else if(zhi==3)
  57.                 {
  58.                         while(1)
  59.                         {
  60.                                 m_12864();
  61.                                 if(zhi!=3)
  62.                                 {
  63.                                         break;
  64.                                 }
  65.                         }
  66.                 }               
  67.         }
  68. }
  69.          

  70.         //Init_LCD1602();
  71.         //jisuanqi();
  72.         //DS18B20();
  73.         //liushuideng();
  74.         //m_0832();
  75.         //m_12864();
  76.         //m_1302();

  77. void intser() interrupt 4
  78. {
  79.         RI=0;
  80.         zhi=SBUF;
  81. }
復制代碼


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

使用道具 舉報

沙發
ID:274922 發表于 2018-1-11 18:33 | 只看該作者
你要確定的串口數據是否正常接收到,中斷是否能進入。也可能是你的串口通信就不行。還要看看硬件。
回復

使用道具 舉報

板凳
ID:164602 發表于 2018-1-12 09:06 | 只看該作者
其實很簡單:
第一:只能有一個while(1),你好多這個死循環啊。
第二:除了主循環用while(1)外,其它的while,都用控制位,如:while(i),i=0,就不循環,i=1就循環。
第三:判斷語句就去根據條件設置如上所說的變量i,根本不需要break。
第四:break只能跳出循環,不能跳出if,所以,你的程序就死在這里了。
回復

使用道具 舉報

地板
ID:266627 發表于 2018-1-12 15:52 | 只看該作者
寫一個串口程序吧,把變量zhi打印出來吧。
zhi的判斷在程序中只有三種可能,1 2 3
如果等于4,就什么也不做。

可能是這個問題,但還是打印出來吧,一個個找原因
回復

使用道具 舉報

5#
ID:266627 發表于 2018-1-12 15:55 | 只看該作者
HC6800-ES-V2.0 發表于 2018-1-12 09:06
其實很簡單:
第一:只能有一個while(1),你好多這個死循環啊。
第二:除了主循環用while(1)外,其它的wh ...

第四:break只能跳出循環,不能跳出if,所以,你的程序就死在這里了。

if里有個WHILE循環,只要跳出WHILE,就會順序執行,自然會走出IF的語句段落
回復

使用道具 舉報

6#
ID:164602 發表于 2018-1-13 19:02 | 只看該作者
sirf3 發表于 2018-1-12 15:55
第四:break只能跳出循環,不能跳出if,所以,你的程序就死在這里了。

if里有個WHILE循環,只要跳出W ...

你知道單片機跳出循環到if用了多少時間?你能及時放開按鍵嗎?這樣想來,可能加個消抖也許就可以了
回復

使用道具 舉報

7#
ID:275955 發表于 2018-1-14 21:45 | 只看該作者
還是打印出來吧,一個個找原因
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视频久久 | 九九热在线视频 | 久久国产视频一区 | 精品国产成人 | 亚洲一区二区三区免费 | 亚洲精品乱码久久久久久久久久 | 日本亚洲欧美 | 伊人久久综合 | 一区二区三区中文字幕 | 这里精品 | 黄色在线免费观看 | 中文无吗 | 日韩av一区二区在线观看 | 国产精品乱码一区二区三区 | 成人在线中文字幕 | 久久久久久一区 | 日本三级全黄三级a | 中文在线www | 成人欧美日韩一区二区三区 | 99久久婷婷| 精品一二 | 亚洲欧美中文日韩在线v日本 | 狠狠操狠狠干 | www.av在线 | 一区二区三区观看视频 | 99久久国产综合精品麻豆 | 国内精品视频 | 麻豆国产精品777777在线 | 成人午夜毛片 | 天天躁人人躁人人躁狂躁 | 91看片免费 | 欧美极品在线视频 | 亚洲免费在线 | 婷婷久久一区 | 古装人性做爰av网站 | 毛片一级网站 | 久久精品成人 | 亚洲国产精品一区二区久久 | 日日操网站 | 久久久免费在线观看 | 久久久久国产精品人 |