欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2790|回復: 6
收起左側

這個在這個單片機程序怎么不閃爍,使用中斷和定時器使這兩數碼管閃爍

[復制鏈接]
ID:568017 發表于 2019-6-20 16:09 | 顯示全部樓層 |閱讀模式
圖片1.png



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

  2. typedef unsigned int u16;         
  3. typedef unsigned char u8;

  4. sbit LSA1 = P1^0;
  5. sbit LSA2 = P1^1;

  6. u8 n=0;
  7. u8 cnt=0;

  8. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};


  9. void delay(u16 i)
  10. {
  11.         while(i--);      
  12. }


  13. void DigDisplay()
  14. {
  15.         u8 i;
  16.         if(n==1)
  17.         {
  18.                 for(i=0;i<2;i++)
  19.                 {
  20.                         switch(i)
  21.                         {               
  22.                                 case 0:
  23.                                 LSA1=0;LSA2=1; P2=~(smgduan[1]);break;
  24.                                 case 1:      
  25.                                 LSA1=1;LSA2=0; P2=~(smgduan[4]);break;
  26.                         }
  27.                         delay(10);
  28.                         P2=0xff;
  29.                 }
  30.         }
  31.         if(n==0)
  32.         {
  33.                 LSA1=1;LSA2=1;
  34.                 P2=~(smgduan[8]);
  35.                 delay(10);
  36.         }
  37. }



  38. void exint0() interrupt 0           
  39. {
  40.         n = !n;
  41. }

  42. void main()
  43. {
  44.         TMOD = 0x01;
  45.         TH0 = 0xB8;
  46.         TL0 = 0x00;
  47.         TR0 = 1;
  48.       
  49.   IT0 = 1;                        
  50.   EX0 = 1;                        
  51.   EA = 1;                        

  52.     while(1)
  53.         {      
  54.                 u8 i=0;
  55.                 DigDisplay();  
  56.                 if(TF0 == 1)
  57.                 {
  58.                         TF0 = 0;
  59.                         TH0 = 0xB8;
  60.                         TL0 = 0x00;
  61.                         cnt++;
  62.                         if(cnt >= 50)
  63.                         {
  64.                                 cnt = 0;
  65. //                                LSA1=1;LSA2=
  66.                     P2=0xff;
  67.                                 delay(500);
  68.                               
  69.                         }
  70.                 }
  71.         }
  72.                        
  73. }
復制代碼


回復

使用道具 舉報

ID:435708 發表于 2019-6-20 22:23 | 顯示全部樓層
沒接上拉電阻?
回復

使用道具 舉報

ID:207421 發表于 2019-6-20 22:51 | 顯示全部樓層
把 n = !n; 放到 78行不就可以了么
回復

使用道具 舉報

ID:568017 發表于 2019-6-20 22:59 | 顯示全部樓層
lwh999995 發表于 2019-6-20 22:51
把 n = !n; 放到 78行不就可以了么

我想的是在顯示14時,數碼管閃爍,而88不顯示
回復

使用道具 舉報

ID:568017 發表于 2019-6-28 10:28 | 顯示全部樓層

可以不用上拉電阻,單片機可以驅動
回復

使用道具 舉報

ID:207421 發表于 2019-6-28 13:34 | 顯示全部樓層
寒山寺小生 發表于 2019-6-20 22:59
我想的是在顯示14時,數碼管閃爍,而88不顯示

你的標題實在看不懂,不是14,88輪流顯示?
顯示14時,數碼管閃爍?
顯示88時,數碼管不閃爍?
回復

使用道具 舉報

ID:568017 發表于 2019-6-28 16:23 | 顯示全部樓層
lwh999995 發表于 2019-6-28 13:34
你的標題實在看不懂,不是14,88輪流顯示?
顯示14時,數碼管閃爍?
顯示88時,數碼管不閃爍?

對原先的解決了,我把LSA1=1和LSA2=1改成了都等于0

if(cnt >= 50)
                        {
                                cnt = 0;
//                                LSA1=1;LSA2=
                    P2=0xff;
                                delay(500);
                              
                        }
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表