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

標題: 51單片機中斷法的LED顯示 [打印本頁]

作者: liaorenhai    時間: 2017-12-25 20:30
標題: 51單片機中斷法的LED顯示

使用Protues畫原理圖并寫程序:

用定時器1的方式1實現n個發光管200ms間隔閃爍,用定時器0的方式1實現數碼管前兩位59s循環計時,后兩位顯示學號(最后兩位)。

學號除6取余數,余數加2.結果是這個led燈的數目n

數碼管顯示前兩位循環計時,加上顯示學號后兩位。總共顯示四位。
中斷LED顯示.rar (1.94 MB, 下載次數: 4)
部分源程序如下:

#include<reg52.h>             //52系列單片機頭文件

#define ucharunsigned char     //宏定義

#define uintunsigned int

sbitdula=P2^6;               //申明U1鎖存器的鎖存端

sbitwela=P2^7;               //申明U2鎖存器的鎖存端

sbitled1=P1^0;               //LED燈說明

sbit led2=P1^1;

uchar codetable[]={           //數碼管顯示編碼

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

voiddelayms(uint);

voiddisplay(uchar,uchar);

ucharnum,num1,num2,shi,ge;

void main()                    //主函數

{

  TMOD=0x11;                //設置定時器01為工作方式1(0001 0001)

  TH0=(65536-458720)/256;     //裝初值

  TL0=(65536-458720)%256;

  TH1=(65536-458720)/256;     //裝初值

  TL1=(65536-458720)%256;      

  EA=1;                       //開總中斷

  ET0=1;                      //開定時器0中斷

  ET1=1;                      //開定時器1中斷

  TR0=1;                      //啟動定時器0

  TR1=1;                      //啟動定時器1

  while(1)                     //程序在這里不停的對數碼管動態掃描同時等待中斷發生

  {

     display(shi,ge);

  }

}


voiddisplay(uchar shi,uchar ge)    //顯示子函數

{

      wela=1;

      P0=0xfe;                   //送入位選信號

      wela=0;

      dula=1;

      P0=table[shi];               //送入段選信號

      dula=0;

      P0=0xff;                    //消影

      delayms(5);                 //延時5毫秒

      

      wela=1;

      P0=0xfd;

      wela=0;

      dula=1;







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1