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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

這個單片機程序為什么每一次定時器會讓LED增加?

[復制鏈接]
跳轉到指定樓層
樓主
ID:665608 發表于 2020-2-23 11:26 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define led P2

  4. sbit k1=P3^2;
  5. sbit lsa=P2^2;
  6. sbit lsb=P2^3;
  7. sbit lsc=P2^4;
  8. sbit beep=P1^5;

  9. typedef unsigned int u16;
  10. typedef unsigned char u8;

  11. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,                  
  12.                                         0x08,0x37,0x08,0x37};

  13. void delay(u16 i)
  14. {
  15.         while(i-- );
  16. }

  17. void Int0Init()
  18. {
  19.         IT0=1;
  20.         EA=1;
  21.         EX0=1;
  22. }

  23. void Timer0Init()
  24. {
  25.         TMOD|=0X01;
  26.         TH0=0XFA;
  27.         TL0=0X00;
  28.         ET0=1;
  29.         EA=1;
  30.         TR0=1;
  31. }

  32. void yu()
  33. {
  34.         u8 i;
  35.         led=0xfe;
  36.         while(1)
  37.         {
  38.                 for(i=0;i<7;i++)
  39.                 {
  40.                         led=_crol_(led,1);
  41.                         delay(50000);
  42.                 }
  43.                 for(i=0;i<7;i++)
  44.                 {
  45.                         led=_cror_(led,1);
  46.                         delay(50000);
  47.                 }
  48.         }
  49. }

  50. void main()
  51. {
  52.         while(1)
  53.         {        
  54.                 Int0Init();
  55.                 Timer0Init();
  56.                 yu();
  57.         }        
  58. }

  59. void Int0() interrupt 0
  60. {
  61.         delay(1000);
  62.         if(k1==0)
  63.         {
  64.                  u8 p;
  65.                 for(p=0;p<10;p++)
  66.                 {
  67.                         lsa=1;lsb=1;lsc=1;
  68.                         P0=smgduan[p];
  69.                         delay(10000);
  70.                         P0=0x00;
  71.                 }
  72.         }
  73. }

  74. void Timer0() interrupt 1
  75. {
  76.         static u16 i;
  77.         TH0=0XFA;
  78.         TL0=0X00;
  79.         i++;
  80.         if(i==1000)
  81.         {
  82.                 i=0;
  83.                 for(i=0;i<10;i++)
  84.                 {
  85.                         lsa=1;lsb=1;lsc=0;
  86.                         P0=smgduan[i];
  87.                         delay(10000);
  88.                         P0=0x00;
  89.                 }
  90.         }
  91. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:94031 發表于 2020-2-23 13:15 | 只看該作者
這一段程序使數碼管從0顯示到9:
for(i=0;i<10;i++)
                {
                        lsa=1;lsb=1;lsc=0;
                        P0=smgduan[i];
                        delay(10000);
                        P0=0x00;
                }
回復

使用道具 舉報

板凳
ID:665608 發表于 2020-2-23 14:23 | 只看該作者
xuyaqi 發表于 2020-2-23 13:15
這一段程序使數碼管從0顯示到9:
for(i=0;i

但是他執行后,有一顆LED自動進入主函數了,
回復

使用道具 舉報

地板
ID:94031 發表于 2020-2-23 14:41 | 只看該作者
中斷執行完后肯定重新返回主程序。“有一顆LED自動進入主函數了”這句我不明白。
回復

使用道具 舉報

5#
ID:665608 發表于 2020-2-23 15:47 | 只看該作者
xuyaqi 發表于 2020-2-23 14:41
中斷執行完后肯定重新返回主程序。“有一顆LED自動進入主函數了”這句我不明白。

就是回到主函數后,他會由原來的只亮一顆LED燈,增加至倆顆
回復

使用道具 舉報

6#
ID:213173 發表于 2020-2-24 09:53 | 只看該作者
樓主把P2的3個端口作數碼管位驅動在中斷里運行,又把P2的8個端口作流水燈在主程序中運行,又沒有按端口復用來編程,不亂套才怪呢?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文天堂在线观看 | www久久99 | 涩涩视频网站在线观看 | 91超碰在线| 久久精品黄色 | 欧美一区二区三区视频在线播放 | 99久久精品免费看国产小宝寻花 | 黄色毛片免费看 | 午夜精品网站 | 亚洲欧美综合精品久久成人 | 亚洲精品视频一区 | 久草视频观看 | 亚洲一区中文字幕在线观看 | 国产免费视频在线 | 成人在线免费视频观看 | 97免费在线视频 | 一级黄色生活视频 | 国产成人精品999在线观看 | 丝袜 亚洲 另类 欧美 综合 | 亚洲成人av在线播放 | 国产精品久久久久久吹潮 | 国产日韩欧美在线观看 | 免费一区 | 国产精品毛片一区二区三区 | www.887色视频免费 | 亚洲网在线 | 日韩午夜精品 | 在线看h| 久久久久久久av | 啪视频在线 | 国产精品精品久久久 | 国产精品久久久久免费 | 欧美日本在线观看 | 午夜二区 | 欧美一级二级三级视频 | 日韩中文一区二区三区 | 精品久久不卡 | 91久久久久久久久久久 | 91av视频在线免费观看 | 九九热视频这里只有精品 | 婷婷桃色网 |