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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這段單片機代碼如何修改才能編譯通過?求幫助

[復制鏈接]
回帖獎勵 200 黑幣 回復本帖可獲得 50 黑幣獎勵! 每人限 1 次
跳轉到指定樓層
樓主


單片機源程序如下:
  1. #include"AD.h"

  2. extern BIT flag_1 = 1;
  3. void AD(INT * level)
  4. {
  5.         INT a = 0;
  6.         INT i = 0;
  7.         cs = 0;
  8.         wr = 1;
  9.         rd = 1;
  10.         IT0 = 0;
  11.         EX0 = 1;
  12.         P1 = 0xff;
  13.         for(i = 0; i < 1; ++i)
  14.         {
  15.                 flag_1 = 1;
  16.                 wr = 1;
  17.                 _nop_();
  18.                 _nop_();
  19.                 wr = 0;
  20.                 _nop_();
  21.                 //_nop_();

  22.                 P1 = 0xff;
  23.                 while(flag_1);

  24.                 rd = 1;
  25.                 _nop_();
  26.                 rd = 0;
  27.                 _nop_();
  28.                 AD_Latch = 1;
  29. //                for(j = 0; j < 10; j++)
  30. //                {
  31. //                        delay(20);
  32. //                }
  33.                 delay(100);
  34.                 AD_Latch = 0;
  35.                 rd = 1;
  36.                 a = P1;
  37. //                delay(100);                                                                                                                                                                                                         
  38.                 P1 = 0xff;
  39.                 //P1[i] = P1;
  40.                 //sum = sum + P1;
  41.         }
  42.         //a = (DOUBLE)(sum) / (i + 1);
  43.         if(a < 32)
  44.         {
  45.                 (*level) = 0;
  46.         }
  47.         else if(a < 64)
  48.         {
  49.                 (*level) = 1;
  50.         }
  51.         else if(a < 96)
  52.         {
  53.                 (*level) = 2;
  54.         }
  55.         else if(a < 128)
  56.         {
  57.                 (*level) = 3;
  58.         }
  59.         else if(a < 160)
  60.         {
  61.                 (*level) = 4;
  62.         }
  63.         else if(a < 192)
  64.         {
  65.                 (*level) = 5;
  66.         }
  67.         else if(a < 224)
  68.         {
  69.                 (*level) = 6;
  70.         }
  71.         else if(a < 255)
  72.         {
  73.                 (*level) = 7;
  74.         }
  75. }

  76. void into() interrupt 0
  77. {
  78.         EX0 = 0;
  79.         flag_1 = 0;
  80.         EX0 = 1;
  81. }

  82. //******************延時函數*********************

  83. #include"delay.h"

  84. void delay(USHORT a)
  85. {
  86.         USHORT j;
  87.         for(; a > 0; --a)
  88.         {
  89.                 for(j = 110; j > 0; --j)
  90.                 {
  91.                         ;
  92.                 }
  93.         }
  94. }


  95. #include"keyboard.h"
  96. extern BIT flag;
  97. INT keyboard(INT  * level)
  98. {
  99.         DWORD i = 0;
  100.         if(key == 0)
  101.         {
  102.                 delay(50);
  103.                 if(key == 0)
  104.                 {
  105.                         flag = !flag;
  106.                         while(key == 0)
  107.                         {
  108.                                 ;
  109.                         }
  110.                         //i = 0;
  111.                 }
  112.         }
  113.         //level = level;
  114.         if(key_up == 0 && flag == 0)
  115.         {
  116.                 delay(50);
  117.                 if(key_up == 0 && flag == 0)
  118.                 {
  119.                         if((*level) < 7)
  120.                         {
  121.                                 (*level) = (*level) + 1;        
  122.                         }
  123.                         
  124.                         while(key_up == 0)
  125.                         {
  126.                                 ;
  127.                         }
  128.                         //i = 0;
  129.                 }
  130.         }

  131.         if(key_down == 0 && flag == 0)
  132.         {
  133.                 delay(50);
  134.                 if(key_down == 0 && flag == 0)
  135.                 {
  136.                         if((*level) > 0)
  137.                         {
  138.                                 (*level) = (*level) - 1;
  139.                         }
  140.                         while(key_down == 0)
  141.                         {
  142.                             ;
  143.                         }
  144.                         //i = 0;
  145.                 }
  146.         }
  147.         return 0;
  148. }

  149. #include"segdisplay.h"

  150. void segdisplay(INT level)
  151. {
  152.         switch(level)
  153.         {
  154.                 case(0):
  155.                 SEG1 = 0;
  156.                 SEG2 = 0;
  157.                 SEG3 = 0;
  158.                 break;

  159.                 case(1):
  160.                 SEG1 = 1;
  161.                 SEG2 = 0;
  162.                 SEG3 = 0;
  163.                 break;

  164.                 case(2):
  165.                 SEG1 = 0;
  166.                 SEG2 = 1;
  167.                 SEG3 = 0;
  168.                 break;

  169.                 case(3):
  170.                 SEG1 = 1;
  171.                 SEG2 = 1;
  172.                 SEG3 = 0;
  173.                 break;

  174.                 case(4):
  175.                 SEG1 = 0;
  176.                 SEG2 = 0;
  177.                 SEG3 = 1;
  178.                 break;

  179.                 case(5):
  180.                 SEG1 = 1;
  181.                 SEG2 = 0;
  182.                 SEG3 = 1;
  183.                 break;

  184.                 case(6):
  185.                 SEG1 = 0;
  186.                 SEG2 = 1;
  187.                 SEG3 = 1;
  188.                 break;

  189.                 case(7):
  190.                 SEG1 = 1;
  191.                 SEG2 = 1;
  192.                 SEG3 = 1;
  193.                 break;

  194.                 default:
  195.                 ;
  196.                 //
  197.         }
  198.         SEG_Latch = 1;
  199.         delay(100);
  200.         SEG_Latch = 0;
  201. }

  202. #include<reg51.h>
  203. #include"typedef.h"
  204. #include"delay.h"
  205. #include"keyboard.h"
  206. #include"segdisplay.h"
  207. #include"AD.h"
  208. extern DWORD num = 0;
  209. extern BIT flag = 0;
  210. INT level = 4;
  211. INT * plevel = &level;
  212. void main()
  213. {
  214. //        //打開外部中斷0
  215. //        IT0 = 1;
  216. //        EX0 = 1;
  217. //
  218. //        //設置外部中斷1,不打開
  219. //        IT1 = 1;
  220. //        EX1 = 0;
  221.         open = 0;
  222.         delay(100);
  223.         while(1)
  224.         {        
  225.                 if(open != 0)
  226.                 {
  227.                         break;
  228.                 }
  229.         }                                          
  230.         TMOD = 0x11;
  231.         //打開定時器
  232.         TH0 = (65535 - 40) / 256;
  233.         TL0 = (65535 - 40) % 256;
  234.         TH1 = (65535 - 1000) / 256;
  235.         TL1 = (65535 - 1000) % 256;
  236.         
  237.         //打開總中斷
  238.     EA = 1;
  239.         ET0 = 1;
  240.         ET1 = 1;
  241.         TR0 = 1;


  242.         while(1)
  243.         {
  244.                 //檢測鍵盤
  245.                 //TR0 = 0;
  246.                 keyboard(plevel);
  247.                 segdisplay(level);
  248.                 //TR0 = 1;
  249.                 if(flag == 1)
  250.                 {        
  251.                         AD(plevel);
  252.                     //TR0 = 0;
  253.                         //TR1 = 1;
  254.                         //TR0 = 1;
  255.                 }
  256.                 else
  257.                 {
  258.                         TR1 = 0;
  259.                 }
  260.         }
  261. }

  262. void T0_time() interrupt 1
  263. {
  264.         TR0 = 0;
  265.         TH0 = (65535 - 40) / 256;
  266.         TL0 = (65535 - 40) % 256;
  267.         num++;
  268.         if(num > 7)
  269.         {
  270.                 num = 0;
  271.         }
  272.         if(num >= level)
  273.         {
  274.                 PWM = 1;
  275.         }                                                                                                                          
  276.         else
  277.         {
  278.                 PWM = 0;
  279.         }
  280.         TR0 = 1;
  281. }

  282. void T1_time() interrupt 3
  283. {
  284.         TR1 = 0;
  285.         AD(plevel);
  286.         TH1 = (65535 - 1000) / 256;
  287.         TL1 = (65535 - 1000) % 256;
  288.         TR1 = 1;
  289. }

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

使用道具 舉報

沙發
ID:52944 發表于 2019-5-27 08:31 | 只看該作者
把include那些放在代碼的最頂上
回復

使用道具 舉報

板凳
ID:94031 發表于 2019-5-27 08:57 | 只看該作者
缺很多頭文件,資料不全。
回復

使用道具 舉報

地板
ID:548112 發表于 2019-5-27 09:36 | 只看該作者
第三行的extern聲明的變量不能在聲明的時候賦值,其他的缺太多頭文件,需要確認頭文件完整性
回復

使用道具 舉報

5#
ID:330198 發表于 2019-5-27 11:05 | 只看該作者
頭文件有沒有包含進工程中?
回復

使用道具 舉報

6#
ID:487821 發表于 2019-5-27 23:55 | 只看該作者
這樣的代碼是自己寫的嗎,習貫很不好,估計沒幾個人愿意認真給你看完,包含了這么多.h頭文件,.h的代碼呢
回復

使用道具 舉報

7#
ID:522450 發表于 2019-5-28 10:27 | 只看該作者
先把所有頭文件放在同一個工程文件里再編譯試試吧,這個是最基礎的問題,其它問題再議。
回復

使用道具 舉報

8#
ID:549213 發表于 2019-5-28 13:23 | 只看該作者
  把include那些放在代碼的最頂上,頭文件有沒有包含進工程中,第三行的extern聲明的變量不能在聲明的時候賦值,其他的缺太多頭文件,需要確認頭文件完整性
回復

使用道具 舉報

9#
ID:549213 發表于 2019-5-28 13:23 | 只看該作者
頭文件有沒有包含進工程中,先把所有頭文件放在同一個工程文件里再編譯試試吧,這個是最基礎的問題,其它問題再議。
回復

使用道具 舉報

10#
ID:510365 發表于 2019-5-28 14:20 | 只看該作者
缺頭文件
回復

使用道具 舉報

11#
ID:549320 發表于 2019-5-28 15:41 | 只看該作者
extern BIT flag_1 = 1;這句只聲明不要賦值;其他的是缺少相應的頭文件引用
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品一区二区 | 男女羞羞视频在线免费观看 | 久久久无码精品亚洲日韩按摩 | 国产日韩精品视频 | 久久777| 亚洲国产精品一区 | 久久久视频在线 | 久在线 | 成人av网站在线观看 | 亚洲精品成人网 | 妞干网福利视频 | 最新国产视频 | 高清视频一区 | 亚洲精品二区 | 欧美黄色网络 | 欧美激情综合五月色丁香小说 | 午夜网| 久久久久久久久久久国产 | 日韩精品 电影一区 亚洲 | 久久高清| 成人在线中文字幕 | 日韩在线欧美 | 91精品国产综合久久精品图片 | 欧美国产日韩在线 | 午夜性视频 | 成人性生交大片免费看r链接 | 久久99精品久久久久久 | 亚洲一区二区免费视频 | 国产电影一区二区三区爱妃记 | 国产.com| 亚洲九色 | 国产一区二区免费在线 | 成人午夜免费视频 | 亚洲 欧美 另类 综合 偷拍 | 99资源 | 国产精品一区二区久久精品爱微奶 | 亚洲精品66| 亚洲欧美日韩网站 | 国产精品视频免费观看 | 精品久久久久久亚洲综合网站 | 成人免费激情视频 |