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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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;


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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