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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

有大佬幫我看看,單片機代碼寫的對不對嗎?

[復制鏈接]
跳轉到指定樓層
樓主
是4T平臺上面那個單片機模擬賽二,我不知道哪錯了,那個評分里面只有led是對的。

單片機源程序如下:
  1. #include "STC15F2K60S2.H"
  2. #include "jiben.h"
  3. #include "onewire.h"
  4. #include "iic.h"
  5. #include "intrins.h"

  6. #define uint unsigned int
  7. #define uchar unsigned char
  8.         
  9. uchar ledbuf[]={0,0,0,0,0,0,0,0};

  10. uchar kdly;

  11. uint sdly;
  12. uchar spos;
  13. uchar smgbuf[]={16,16,16,16,16,16,16,16};
  14. uchar smgpoint[]={0,0,0,0,0,0,0,0};

  15. bit jiemian;
  16. bit mode;
  17. float temp=30;
  18. uchar ad;
  19. uchar da;

  20. void Delay750ms()                //@11.0592MHz
  21. {
  22.         unsigned char i, j, k;

  23.         _nop_();
  24.         _nop_();
  25.         i = 35;
  26.         j = 51;
  27.         k = 182;
  28.         do
  29.         {
  30.                 do
  31.                 {
  32.                         while (--k);
  33.                 } while (--j);
  34.         } while (--i);
  35. }


  36. void keydo()
  37. {
  38.         static kv,ko,kd,ku;
  39.         
  40.         if(kdly)
  41.                 return;
  42.         kdly=1;
  43.         
  44.         kv=keydis();
  45.         kd=(kv&(kv^ko));
  46.         ku=~(kv&(kv^ko));
  47.         ko=kv;
  48.         
  49.         if(kd==4 && jiemian==0)
  50.         {
  51.                 mode^=1;
  52.         }
  53.         if(kd==5)
  54.         {
  55.                 jiemian^=1;
  56.         }
  57. }

  58. void smgdo()
  59. {
  60.         if(sdly)
  61.                 return;
  62.         sdly=1;
  63.         
  64.         ad=readad(0x41);
  65.         temp=readtemp();
  66.         
  67.         if(mode==0)
  68.         {
  69.                 if(temp>=10 && temp<=40)
  70.                         da=(1+((temp-10.0)*2/15))*51;
  71.                 else if(temp>40)
  72.                         da=255;
  73.                 else
  74.                         da=51;
  75.         }
  76.         else
  77.         {
  78.                 if(ad>=10 && ad<=240)
  79.                         da=(1+((ad-10)*1/60))*51;
  80.                 else if(ad>240)
  81.                         da=255;
  82.                 else
  83.                         da=51;
  84.         }
  85.         
  86.         if(jiemian==0)
  87.         {
  88.                 if(mode==0)
  89.                 {
  90.                         smgbuf[0]=1;
  91.                         smgbuf[5]=(uchar)temp/10;
  92.                         smgbuf[6]=(uchar)temp%10;
  93.                         smgbuf[7]=(uint)(temp*10)%10;
  94.                         smgpoint[6]=1;
  95.                 }
  96.                 else
  97.                 {
  98.                         smgbuf[0]=2;
  99.                         smgbuf[5]=16;
  100.                         smgbuf[6]=(uint)((ad*10)/51)/10;
  101.                         smgbuf[7]=(uint)((ad*10)/51)%10;
  102.                         smgpoint[6]=0;
  103.                 }
  104.         }
  105.         else
  106.         {
  107.                 adout(da);
  108.                 smgbuf[0]=18;
  109.                 smgbuf[5]=16;
  110.                 smgbuf[6]=(uint)((da*10)/51)/10;
  111.                 smgbuf[7]=(uint)((da*10)/51)%10;
  112.                 smgpoint[6]=1;
  113.         }
  114. }

  115. void leddo()
  116. {
  117.         ledbuf[0]=(mode==0);
  118.         ledbuf[1]=(mode==1);
  119. }

  120. void Timer0Init(void)                //1??@12.000MHz
  121. {
  122.         AUXR &= 0x7F;               
  123.         TMOD &= 0xF0;               
  124.         TL0 = 0x18;               
  125.         TH0 = 0xFC;               
  126.         TF0 = 0;               
  127.         TR0 = 1;               
  128.         ET0 = 1;
  129.         EA = 1;
  130. }

  131. void timer0() interrupt 1
  132. {
  133.         if(++spos==8)
  134.                 spos=0;
  135.         if(++kdly==10)
  136.                 kdly=0;
  137.         if(++sdly==500)
  138.                 sdly=0;
  139.         
  140.         smgdis(spos,smgbuf[spos],smgpoint[spos]);
  141.         leddis(spos,ledbuf[spos]);
  142. }

  143. void main()
  144. {
  145.         Delay750ms();
  146.         Timer0Init();
  147.         init();
  148.         readtemp();
  149.         while(1)
  150.         {
  151.                 keydo();
  152.                 smgdo();
  153.                 leddo();
  154.         }
  155. }
復制代碼

15_SCM2.rar

66.33 KB, 下載次數: 1

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

使用道具 舉報

沙發
ID:1058641 發表于 2024-4-6 11:41 | 只看該作者
為啥不對呢?板子上我感覺沒啥問題啊,至少切換界面是對的吧。
回復

使用道具 舉報

板凳
ID:883242 發表于 2024-4-6 22:48 | 只看該作者
沒有題目誰知道到底對不對?
回復

使用道具 舉報

地板
ID:1058641 發表于 2024-4-7 11:03 | 只看該作者
我的我的
這是題目要求

4T15屆模擬2.png (294.13 KB, 下載次數: 69)

4T15屆模擬2.png
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精产国产伦理一二三区 | 天天操夜夜爽 | 在线a视频| 中文字幕在线第二页 | 日韩二区 | 正在播放国产精品 | 日韩中文一区二区三区 | 久久99成人 | 欧美日韩综合视频 | 国产成人精品一区二区三 | 国产偷自视频区视频 | 一级黄色毛片 | 久久专区 | 一二区视频| 国产精品久久久久不卡 | 羞羞视频网站在线观看 | 亚洲视频www | 国产一区二区欧美 | 国产精品视频一区二区三区不卡 | 欧美视频xxx| 亚洲精品一区二区三区中文字幕 | 国产在线观看一区二区 | 高清av在线| 国产女人叫床高潮大片免费 | 国产精品爱久久久久久久 | 一区二区三区四区不卡 | 免费视频二区 | 在线精品一区二区三区 | 久久亚洲91 | 一二区视频 | 一区二区精品 | 九九久久久| 久草免费在线视频 | 日韩欧美三区 | 久草日韩| 国产精品揄拍一区二区 | 中文字幕在线视频网站 | 欧美黄色小视频 | 午夜免费影视 | 亚洲精品黄色 | cao在线 |