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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機8*8點陣程序的警告找不出來,麻煩各位大佬幫忙看一看

[復制鏈接]
跳轉到指定樓層
樓主
8*8點陣程序,我檢查很多次,都看不出程序的問題,可還是會有一個警告,麻煩各位大佬幫忙看一下,這到底是哪里出問題了

單片機源程序如下:
  1.         //          ***************************************************************************************/

  2. #include "reg51.h"                         //此文件中定義了單片機的一些特殊功能寄存器
  3. #include<intrins.h>

  4. typedef unsigned int u16;          //對數據類型進行聲明定義
  5. typedef unsigned char u8;

  6. sbit SRCLK=P3^6;
  7. sbit RCLK=P3^5;
  8. sbit SER=P3^4;
  9. sbit buzzer=P1^5;

  10.   unsigned char code ledduan[17][8]={
  11.                      {0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},
  12.                                         {0x00,0x00,0x24,0x7C,0x04,0x00,0x00,0x00},
  13.                                          {0x00,0x00,0x26,0x4A,0x52,0x22,0x00,0x00},
  14.                                          {0x00,0x00,0x2A,0x2A,0x2A,0x3E,0x00,0x00},
  15.                                          {0x00,0x08,0x18,0x28,0x7E,0x08,0x00,0x00},
  16.                                          {0x00,0x00,0x7A,0x4A,0x4E,0x00,0x00,0x00},
  17.                                          {0x00,0x00,0x7E,0x4A,0x4E,0x00,0x00,0x00},
  18.                                          {0x00,0x40,0x40,0x40,0x7E,0x00,0x00,0x00},
  19.                                          {0x00,0x7E,0x4A,0x4A,0x7E,0x00,0x00,0x00},
  20.                                          {0x00,0x7A,0x4A,0x4A,0x7E,0x00,0x00,0x00},
  21.                                          {0x00,0x7A,0x4A,0x4A,0x7E,0x00,0x00,0x00},
  22.                                          {0x00,0x00,0x7E,0x48,0x78,0x00,0x00,0x00},
  23.                                          {0x00,0x00,0x7E,0x48,0x48,0x00,0x00,0x00},
  24.                                          {0x40,0x40,0x7E,0x40,0x40,0x00,0x00,0x00},
  25.                                          {0x00,0x00,0x3E,0x02,0x02,0x00,0x00,0x00},
  26.                                          {0x00,0x00,0x3E,0x02,0x3E,0x00,0x00,0x00},
  27.                                          {0x00,0x30,0x48,0x24,0x24,0x48,0x30,0x00}
  28.                           } ;
  29. unsigned char code ledwei[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  30.   void delay1(u16 i)
  31.   {
  32.         while(i--);
  33.   }
  34.   void beep()
  35. {
  36. u16 i;
  37. for(i=0;i<100;i++)
  38. {
  39. delay1(100);
  40. buzzer=~buzzer;
  41. }}
  42.   void delay(unsigned int time)
  43.   {
  44.           unsigned int i,j;
  45.         for (i=0;i<time;i++)
  46.           for (j=0;j<121;j++);
  47.   
  48.   }
  49. /*******************************************************************************
  50. * 函數名         : Hc595SendByte(u8 dat)
  51. * 函數功能                   : 向74HC595發送一個字節的數據,從高位開始到低位
  52. * 輸入           : 無
  53. * 輸出                  : 無
  54. *******************************************************************************/
  55. void Hc595SendByte(u8 dat)
  56. {
  57.         u8 a;
  58.         SRCLK=0;
  59.         RCLK=0;
  60.         for(a=0;a<8;a++)
  61.         {
  62.                 SER=dat>>7;//運算時,先將dat的值復制到一個臨時單元,向右移位運算的是臨時單元的值,而不是dat,所以移位后, dat的值不變。
  63.                 dat<<=1;

  64.                 SRCLK=1;
  65.                 _nop_();
  66.                 _nop_();
  67.                 SRCLK=0;        
  68.         }

  69.         RCLK=1;
  70.         _nop_();
  71.         _nop_();
  72.         RCLK=0;
  73. }

  74. /*******************************************************************************
  75. * 函 數 名       : main
  76. * 函數功能                 : 主函數
  77. * 輸    入       : 無
  78. * 輸    出             : 無
  79. *******************************************************************************/
  80. void main()
  81. {        
  82.         unsigned char tab,j;
  83.         unsigned int i;        
  84.         while(1)
  85.         {
  86.                   
  87.                           for (i=0;i<50;i++)
  88.                     { for(tab=0;tab<8;tab++)
  89.                    {          Hc595SendByte(0x00);//消隱,去掉重影
  90.                     P0=ledwei[tab];
  91.                     Hc595SendByte(ledduan[j][tab]);
  92.                     delay(2);
  93.                     
  94.          }
  95.               }
  96.         }
  97.         j++;
  98.         beep();
  99.         if(j==17)
  100.         {
  101.         j=0;
  102.         }        
  103. }

復制代碼

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

使用道具 舉報

沙發
ID:824490 發表于 2021-6-20 16:02 | 只看該作者
你定義了一個BEEP的函數,卻沒有調用過它。。。就是這個意思,,
回復

使用道具 舉報

板凳
ID:94031 發表于 2021-6-20 16:24 | 只看該作者
main 程序有問題
回復

使用道具 舉報

地板
ID:939657 發表于 2021-6-20 19:13 | 只看該作者
名字不是重點 發表于 2021-6-20 16:02
你定義了一個BEEP的函數,卻沒有調用過它。。。就是這個意思,,

用了,主程序j++下面的程序
回復

使用道具 舉報

5#
ID:939657 發表于 2021-6-20 19:14 | 只看該作者

請問是主程序哪里有問題呢?
回復

使用道具 舉報

6#
ID:94031 發表于 2021-6-20 19:41 | 只看該作者
tyq666 發表于 2021-6-20 19:14
請問是主程序哪里有問題呢?

你發的程序,你編譯通過了嗎?
回復

使用道具 舉報

7#
ID:939657 發表于 2021-6-20 19:44 | 只看該作者
xuyaqi 發表于 2021-6-20 19:41
你發的程序,你編譯通過了嗎?

編譯過了,上面的圖片就是編譯后出現的問題,有一個警告
回復

使用道具 舉報

8#
ID:94031 發表于 2021-6-20 20:04 | 只看該作者
tyq666 發表于 2021-6-20 19:44
編譯過了,上面的圖片就是編譯后出現的問題,有一個警告

警告c294看到了嗎?


回復

使用道具 舉報

9#
ID:922355 發表于 2021-6-20 20:22 | 只看該作者
這個警告我教你怎么看。可以不用管,segment那里PR?后面那個BEEP意思是提醒你可能有聲明了BEEP函數但是你沒有用它。如果要用到它,調用它,不用他就注掉,或者你不用管那個警告不會影響編譯運行。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

10#
ID:941075 發表于 2021-6-20 21:48 | 只看該作者
謝謝樓主也謝謝51黑平臺!
回復

使用道具 舉報

11#
ID:878061 發表于 2021-6-20 22:29 | 只看該作者
你把beep()函數放在了死循環while(1)的大括號外面,永遠執行不到beep(),所以警告
回復

使用道具 舉報

12#
ID:939657 發表于 2021-6-21 22:50 | 只看該作者
Carose 發表于 2021-6-20 20:22
這個警告我教你怎么看。可以不用管,segment那里PR?后面那個BEEP意思是提醒你可能有聲明了BEEP函數但是你沒 ...

要用的,我就在j++下面加了
回復

使用道具 舉報

13#
ID:939657 發表于 2021-6-21 22:52 | 只看該作者
xuyaqi 發表于 2021-6-20 20:04
警告c294看到了嗎?

這個沒問題吧,我用keil4編譯,它只出現一個警告
回復

使用道具 舉報

14#
ID:811711 發表于 2021-6-22 08:58 | 只看該作者
說的很清楚啊 有個函數你沒有調用
回復

使用道具 舉報

15#
ID:155507 發表于 2021-6-22 10:13 | 只看該作者
給你改了,對比一下就知道哪里錯了。

  1. //  ***************************************************************************************/

  2. #include "reg51.h"                         //此文件中定義了單片機的一些特殊功能寄存器
  3. #include<intrins.h>

  4. typedef unsigned int u16;          //對數據類型進行聲明定義
  5. typedef unsigned char u8;

  6. sbit SRCLK=P3^6;
  7. sbit RCLK=P3^5;
  8. sbit SER=P3^4;
  9. sbit buzzer=P1^5;

  10. unsigned char code ledduan[17][8]={
  11.         {0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00},
  12.         {0x00,0x00,0x24,0x7C,0x04,0x00,0x00,0x00},
  13.         {0x00,0x00,0x26,0x4A,0x52,0x22,0x00,0x00},
  14.         {0x00,0x00,0x2A,0x2A,0x2A,0x3E,0x00,0x00},
  15.         {0x00,0x08,0x18,0x28,0x7E,0x08,0x00,0x00},
  16.         {0x00,0x00,0x7A,0x4A,0x4E,0x00,0x00,0x00},
  17.         {0x00,0x00,0x7E,0x4A,0x4E,0x00,0x00,0x00},
  18.         {0x00,0x40,0x40,0x40,0x7E,0x00,0x00,0x00},
  19.         {0x00,0x7E,0x4A,0x4A,0x7E,0x00,0x00,0x00},
  20.         {0x00,0x7A,0x4A,0x4A,0x7E,0x00,0x00,0x00},
  21.         {0x00,0x7A,0x4A,0x4A,0x7E,0x00,0x00,0x00},
  22.         {0x00,0x00,0x7E,0x48,0x78,0x00,0x00,0x00},
  23.         {0x00,0x00,0x7E,0x48,0x48,0x00,0x00,0x00},
  24.         {0x40,0x40,0x7E,0x40,0x40,0x00,0x00,0x00},
  25.         {0x00,0x00,0x3E,0x02,0x02,0x00,0x00,0x00},
  26.         {0x00,0x00,0x3E,0x02,0x3E,0x00,0x00,0x00},
  27.         {0x00,0x30,0x48,0x24,0x24,0x48,0x30,0x00}
  28. } ;
  29. unsigned char code ledwei[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  30. void delay1(u16 i)
  31. {
  32.         while(i--);
  33. }
  34. void beep()
  35. {
  36.         u16 i;
  37.         for(i=0;i<100;i++)
  38.         {
  39.                 delay1(100);
  40.                 buzzer=~buzzer;
  41.         }}
  42. void delay(unsigned int time)
  43. {
  44.         unsigned int i,j;
  45.         for (i=0;i<time;i++)
  46.         for (j=0;j<121;j++);

  47. }
  48. /*******************************************************************************
  49. * 函數名         : Hc595SendByte(u8 dat)
  50. * 函數功能                   : 向74HC595發送一個字節的數據,從高位開始到低位
  51. * 輸入           : 無
  52. * 輸出                  : 無
  53. *******************************************************************************/
  54. void Hc595SendByte(u8 dat)
  55. {
  56.         u8 a;
  57.         SRCLK=0;
  58.         RCLK=0;
  59.         for(a=0;a<8;a++)
  60.         {
  61.                 SER=dat>>7;//運算時,先將dat的值復制到一個臨時單元,向右移位運算的是臨時單元的值,而不是dat,所以移位后, dat的值不變。
  62.                 dat<<=1;

  63.                 SRCLK=1;
  64.                 _nop_();
  65.                 _nop_();
  66.                 SRCLK=0;        
  67.         }

  68.         RCLK=1;
  69.         _nop_();
  70.         _nop_();
  71.         RCLK=0;
  72. }

  73. /*******************************************************************************
  74. * 函 數 名       : main
  75. * 函數功能                 : 主函數
  76. * 輸    入       : 無
  77. * 輸    出             : 無
  78. *******************************************************************************/
  79. void main()
  80. {        
  81.         unsigned char tab,j;
  82.         unsigned int i;        
  83.         while(1)
  84.         {
  85.                
  86.                 for (i=0;i<50;i++)
  87.                 { for(tab=0;tab<8;tab++)
  88.                         {          Hc595SendByte(0x00);//消隱,去掉重影
  89.                                 P0=ledwei[tab];
  90.                                 Hc595SendByte(ledduan[j][tab]);
  91.                                 delay(2);
  92.                                
  93.                         }
  94.                 }
  95.             //} <-------
  96.                 j++;
  97.                 beep();
  98.                 if(j==17)
  99.                 {
  100.                         j=0;
  101.                 }        
  102.         }
  103. } //<-----


復制代碼
回復

使用道具 舉報

16#
ID:934353 發表于 2021-6-29 17:27 | 只看該作者
很簡單,就是你定義了beep函數,卻沒有調用過它,因為你把beep函數放在while(1)死循環后面了,而且你的死循環里也沒有跳出的條件,所以你跳不出死循環就執行不到beep函數,包括j++那些都執行不到的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩国产免费 | 日韩av一区在线观看 | 国产精品一区二区久久精品爱微奶 | 日本成人午夜影院 | 日韩精品免费 | 成人国产精品久久 | 中文精品视频 | 日韩中文字幕在线观看 | 中文字幕成人av | 一区二区三区精品 | 亚洲狠狠 | 一区二区三区高清 | 欧美日韩精品一区 | 中文字幕91| www.天天操 | 一级做a毛片 | 午夜精品一区二区三区在线播放 | 成人av网站在线观看 | 91在线免费观看 | 精品国产一二三区 | 久久久久国 | 粉嫩一区二区三区性色av | 久久久精品一区 | 蜜臀久久99精品久久久久野外 | 成人精品鲁一区一区二区 | 国产aa | 成人精品高清 | 一本一道久久a久久精品综合 | 午夜精品视频在线观看 | 国产成人精品999在线观看 | 国产精品一区二区福利视频 | 激情综合五月 | 可以看黄的视频 | 国产一区二区三区在线 | 国产在线观看一区二区三区 | 久久久久国产一级毛片 | 日韩福利 | 五月综合色啪 | 在线一区二区三区 | 欧美精品一区二区三区视频 | 欧美综合在线视频 |