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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機數碼管顯示程序 帶消影

[復制鏈接]
跳轉到指定樓層
樓主
ID:444076 發表于 2018-12-11 14:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include "reg51.h"
#define uchar unsigned char
#define uint unsingned int
#define LED P0
uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數碼管碼表
uchar num,t,shi,ge;
//------------------------------------
void init();//定時器初始化
void timer0();//
void display();//顯示
void delay(uchar);
sbit KEY1 = P3^6;//開始
sbit KEY2 = P3^7;//復位
void main()//主函數入口
{
init();//初始化
while(1)
{
  timer0();//查詢時間
  display();//顯示
         if(KEY1 == 0)//開始
         {
                 if(TR0 == 0)//定時器沒有打開的時候
                 {
                        t = 0;
                  num = 0;
      TR0=1;   
                 }
   }
         else  if(KEY2 == 0)//復位
         {
          TR0 = 0;    //關閉定時器
                  TF0 = 0;//清楚時間溢出標志   
                  t = 0;
                  num = 0;
                  TR0=1;
   }
                 
}
}
void init()//定時器初始化部分
{
num=t=0;         //清楚數據
TMOD=0x01;        //定時器初始化
TH0=(65536-15536)/256;//定時器賦初值 定時50ms
TL0=(65536-15536)%256;
EA=1;
ET0=1;
}
void timer0()
{
if(TF0==1)    //查詢溢出的時間
{
TF0=0;        //清楚溢出標志
t++;
   if(t==20) //累計時間到1S
   {
    t=0;
    num++;
   }
}
}
void display()        //顯示
{
if(num >= 99)
{
  //num = 0;  // 數據顯示限制  最大為99
  if(TR0)
  TR0 = 0;
}
shi=num/10;   //顯示拆分  
ge=num%10;
P2=0X00;          //顯示消影
P0=0XFF;
P2=0x01;     //顯示第一位
LED=tab[shi];
delay(5);//延時
P2=0X00; //顯示消影
P0=0XFF;
P2=0x02;   //顯示第二位
LED=tab[ge];
delay(5);//延時
}
void delay(uchar x)          //延時子程序
{
   int i,j;
   for(i=x;i>0l;i--)
    for(j=255;j>0;j--);
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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