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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

靜態數碼管和動態數碼管用一塊單片機不能同時驅動嗎

[復制鏈接]
跳轉到指定樓層
樓主
一個非常簡單的小程序,利用外部中斷控制靜態數碼管和動態數碼管輪流顯示數字0~7,可是無論是實際下載到開發板還是用protues仿真都只有動態顯示,無法切換到靜態顯示,代碼也檢查了許多遍,剛剛開始學51,不知道是不是算法的問題,懇求大佬幫忙指點一點,下面是單片機代碼。
  1. #include <reg52.h>
  2. #define LED1 P1//靜態數碼管
  3. #define LED2 P0//動態數碼管
  4. sbit c=P2^7;
  5. sbit b=P2^6;
  6. sbit a=P2^5;
  7. sbit k1=P3^2;
  8. sbit k2=P3^3;
  9. unsigned char code num[8]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07};
  10. unsigned char M[8];
  11. unsigned char k;
  12. void displayLED1();
  13. void displayLED2();
  14. void zhong_duan_kai_qi();
  15. void delay(unsigned int time);
  16. void main()
  17. {
  18.         zhong_duan_kai_qi();//外部中斷開啟
  19.         while(1)
  20.         {        
  21.                 unsigned char i;
  22.                 if(k)
  23.                 {
  24.                         LED2=0x00;
  25.                         while(k)
  26.                         {
  27.                                 displayLED1();        
  28.                         }               
  29.                 }
  30.                 else
  31.                 {
  32.                         for(i=0;i<8;i++)
  33.                         {
  34.                                 M[i]=num[i];
  35.                         }
  36.                         LED1=0x00;               
  37.                         while(~k)
  38.                         {
  39.                                 displayLED2();
  40.                         }
  41.                 }
  42.         }        
  43. }

  44. void delay(unsigned int time)
  45. {
  46.         unsigned char i;
  47.         unsigned int j;               
  48.         for(i=0;i<time;i++)
  49.         {
  50.                 for(j=0;j<125;j++);
  51.         }
  52. }
  53. void zhong_duan_kai_qi()
  54. {
  55.         //設置INT0
  56.         IT0=1;//跳變沿出發方式(下降沿)
  57.         EX0=1;//打開INT0的中斷允許。
  58.         //設置INT1
  59.         IT1=1;
  60.         EX1=1;
  61.         //打開總中斷
  62.         EA=1;        
  63. }
  64. void displayLED1()
  65. {
  66.         unsigned char i;
  67.         for(i=0;i<8;i++)
  68.         {
  69.                 LED1=num[i];                        
  70.                 delay(500);
  71.         }
  72. }
  73. void displayLED2()
  74. {
  75.         unsigned char i;
  76.         unsigned int j;
  77.         for(i=0;i<8;i++)
  78.         {
  79.                 switch(i)
  80.                 {
  81.                         case 0:
  82.                                 c=0;b=0;a=0;break;
  83.                         case 1:
  84.                                 c=0;b=0;a=1;break;
  85.                         case 2:
  86.                                 c=0;b=1;a=0;break;
  87.                         case 3:
  88.                                 c=0;b=1;a=1;break;
  89.                         case 4:
  90.                                 c=1;b=0;a=0;break;
  91.                         case 5:
  92.                                 c=1;b=0;a=1;break;
  93.                         case 6:
  94.                                 c=1;b=1;a=0;break;
  95.                         case 7:
  96.                                 c=1;b=1;a=1;break;
  97.                 }
  98.                 LED2=M[i];
  99.                 j=500;
  100.                 while(j--);
  101.                 LED2=0x00;//消隱
  102.         }
  103. }
  104. void Int0()interrupt 0
  105. {
  106.         delay(1);//延時消抖
  107.         if(k1==0)
  108.         {
  109.                 k=0;        
  110.         }
  111. }
  112. void Int1()interrupt 2
  113. {
  114.         delay(1);
  115.         if(k2==0)
  116.         {
  117.                 k=1;        
  118.         }
  119. }
復制代碼
下面是我接的圖

XHYIKXM~I1Q1AKJ6CJ{$PE7.png (70.85 KB, 下載次數: 42)

XHYIKXM~I1Q1AKJ6CJ{$PE7.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:390416 發表于 2021-2-9 16:36 | 只看該作者
多位數碼管 都是動態的
回復

使用道具 舉報

板凳
ID:739545 發表于 2021-2-9 16:42 | 只看該作者
無圖無真相,怎么連接也看不到,另就一個數碼管顯示,代碼寫的亂糟糟的,
回復

使用道具 舉報

地板
ID:824490 發表于 2021-2-9 18:42 | 只看該作者
靜態與動態的電路不一樣的。你把電路上傳,讓大家幫你看看
回復

使用道具 舉報

5#
ID:332444 發表于 2021-2-9 22:14 | 只看該作者
本帖最后由 xianfajushi 于 2021-2-10 07:20 編輯

看看下面連接內容
回復

使用道具 舉報

6#
ID:332444 發表于 2021-2-9 22:15 | 只看該作者
回復

使用道具 舉報

7#
ID:213173 發表于 2021-2-9 22:34 | 只看該作者
改為靜態數碼管和動態數碼管同時顯示





  1. #include <reg52.h>
  2. #define LED1 P1//靜態數碼管
  3. #define LED2 P0//動態數碼管
  4. sbit c=P2^7;
  5. sbit b=P2^6;
  6. sbit a=P2^5;
  7. sbit k1=P3^2;
  8. sbit k2=P3^3;

  9. unsigned char code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  10. unsigned char i,j,k;
  11. bit t;
  12. void delay(unsigned int time)
  13. {
  14.         unsigned int i,j;
  15.         for(i=0;i<time;i++)
  16.                 for(j=0;j<125;j++);
  17. }

  18. void main()
  19. {
  20.         while(1)
  21.         {        
  22.                 if(!k1||!k2)
  23.                 {
  24.                         if(++k>=10 && t==0)//消抖10ms
  25.                         {
  26.                                 t=1;
  27.                                 if(!k1 && j<9)
  28.                                         j++;
  29.                                 if(!k2 && j>0)
  30.                                         j--;
  31.                         }
  32.                 }
  33.                 else//松手
  34.                 {
  35.                         k=0;
  36.                         t=0;
  37.                 }
  38.                 LED1=num[j];//1位靜態顯示
  39.                 //8位動態顯示
  40.                 LED2=0x00;        //消隱
  41.                 P2&=0x1f;        //位清0
  42.                 P2|=(i<<5);        //送位碼
  43.                 LED2=num[i];//送段碼
  44.                 i=++i%8;                //位計數
  45.                 delay(1);        //延時
  46.         }        
  47. }
復制代碼



回復

使用道具 舉報

8#
ID:869650 發表于 2021-2-10 21:00 | 只看該作者
人人學會單片機 發表于 2021-2-9 16:36
多位數碼管 都是動態的

是的            
回復

使用道具 舉報

9#
ID:869650 發表于 2021-2-10 21:04 | 只看該作者
lovezjf234 發表于 2021-2-9 16:42
無圖無真相,怎么連接也看不到,另就一個數碼管顯示,代碼寫的亂糟糟的,

圖片現在上傳了
回復

使用道具 舉報

10#
ID:869650 發表于 2021-2-10 21:05 | 只看該作者
wulin 發表于 2021-2-9 22:34
改為靜態數碼管和動態數碼管同時顯示

嗯嗯,我去試了一下,可以,謝謝
回復

使用道具 舉報

11#
ID:869650 發表于 2021-2-10 21:05 | 只看該作者
名字不是重點 發表于 2021-2-9 18:42
靜態與動態的電路不一樣的。你把電路上傳,讓大家幫你看看

圖片現在上傳了
回復

使用道具 舉報

12#
ID:824490 發表于 2021-2-14 11:46 | 只看該作者

動態顯示:
1、消隱(可選)
2、送第一個數碼管位段碼
3、送第一個數碼管位選碼
4、延時、消隱
5、送送第二個數碼管位段碼
6.7.8.9直到8個數碼管全選完
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 羞羞视频网 | 亚洲成人一区二区 | 日韩在线看片 | 国产农村妇女毛片精品久久麻豆 | 亚洲精品一级 | 伊人免费在线观看 | 国产特级毛片aaaaaa喷潮 | 久久久久国产精品人 | 夜夜艹 | 国产精品女人久久久 | 欧美日本久久 | 日操操夜操操 | 亚洲综合色丁香婷婷六月图片 | 91亚洲精品在线观看 | 亚洲黄色在线 | 久草成人网 | 国产高清精品一区 | 欧美成人一区二区三区 | 夜夜骑首页 | 逼逼网 | 亚洲国产欧美日韩 | 黄色精品 | 国产玖玖 | 天天av天天好逼 | 欧美精品一二三 | 国产一区二区三区久久久久久久久 | 色播视频在线观看 | 天天操夜夜操 | 国产999精品久久久 精品三级在线观看 | 一级黄片一级毛片 | 欧产日产国产精品v | 欧美激情一区 | 亚洲国产精品久久久 | 久久男女视频 | 久久精品伊人 | 久久国产精品亚洲 | 亚洲精品国产一区 | 97久久久| 伊人99| 日本免费黄色一级片 | 国产清纯白嫩初高生视频在线观看 |