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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

[求助]數碼管自加計數

[復制鏈接]
跳轉到指定樓層
樓主
ID:37875 發表于 2012-4-14 15:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit wei =P2^7;
sbit duan=P2^6;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint z);
uint temp,n,bai,shi,ge;
void delay();

void display (uchar bai,uchar shi,uchar ge); //顯示子函數


void main()
{ wei=0;temp=0;
 duan=0;
 TMOD=0x01;   //選擇定時器及其工作方式
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 EA=1;   //開總中斷
 ET0=1; //開定式終端
 TR0=1;  //啟動定時

while(1)
{

  wei=1;
  P0=0xfb;
  wei=0;
  duan=1;
  P0=table[ge];
  duan=0;

delay();
  wei=1;
  P0=0xfd;
  wei=0;
  duan=1;
  P0=table[shi];
  duan=0;
delay();
  wei=1;
  P0=0xfe;
  wei=0;
  duan=1;
  P0=table[bai];
  duan=0;
delay();  
  
}
}


void jishuqi () interrupt 1
{
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 n++;
 if(n==20)
    { n=0;
  temp++;
 }
 bai=temp/100;
 shi=temp%100/10;
 ge =temp%100%10;
}


void delay()
{    uint x,y;
 for(x=5;x>0;x--)
  for(y=110;y>0;y--);
}

這位是我學郭天祥編寫的數碼管自家計數器可是為何有的數字不顯示


 

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

使用道具 舉報

沙發
ID:30546 發表于 2012-4-15 21:46 | 只看該作者

這是我看他的視頻寫的。你參考下

#include<reg52.h>//導入頭文件
#define uchar unsigned char//宏定義
#define uint unsigned int//宏定義
sbit dula=P2^6;//定義段選口
sbit wela=P2^7;//定義位選口
//數碼表
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

uchar temp,bai,shi,ge,aa;//變量聲明

void display(uchar bai,uchar shi,uchar ge);//三位數顯示函數聲明
void delay(uint z);//延時函數聲明
void init();//初始化聲明
void main()
{
 init();//調用初始化函數
 while(1)
 {
  if(aa==20)//判斷定時器1S時間
  {
   aa=0;//定時器清0
   temp++;
   if(temp==100)
   {
    temp=0;
   }//只規定從0加到100
   bai=temp/100;//求百位數
   shi=temp%100/10;//求十位數
   ge=temp%10;//求個位數
  }
  display(bai,shi,ge);//調用三位數顯示函數
 }
}
//1MS延時函數
void delay(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
//三位數顯示函數
void display(uchar bai,uchar shi,uchar ge)
{
   dula=1;
  P0=table[bai];//P0口送百位數碼
  dula=0;
  P0=0xff;//消隱
  wela=1;
  P0=0xfe;
  wela=0;
  delay(5);//延時5MS,不能超過定時器的時間,不然會出錯

  dula=1;
  P0=table[shi];//P0口送十位數碼
  dula=0;
  P0=0xff;//消隱
  wela=1;
  P0=0xfd;
  wela=0;
  delay(5);//延時5MS,不能超過定時器的時間,不然會出錯

  dula=1;
  P0=table[ge];//P0口送個位數碼
  dula=0; 
  P0=0xff;//消隱
  wela=1;
  P0=0xfb;
  wela=0;
  delay(5);//延時5MS,不能超過定時器的時間,不然會出錯
}
//程序初始化函數
void init()
{
 dula=0;//消隱,上電時關掉段鎖存器
 wela=0;//消隱,上電時關掉位鎖存器
 TMOD=0x01;//給TMOD賦值確定T0和T1的工作方式
 //50MS定時
 TH0=(65536-50000)/256;//高八位存入60轉換成十六進制數是3C
 TL0=(65536-50000)%256;//低八位存入176轉換成十六進制數是B0
 EA=1;//開總中斷
 ET0=1;//開定時器0中斷
 TR0=1;//啟動定時器0

}

void timer0() interrupt 1//值為0時是外部中斷0,為1時是定時器計數器0
{
 ////再裝一次初值,因為值裝滿后清0,這樣下次進入中斷就會變成0
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 aa++;
}

回復

使用道具 舉報

板凳
ID:535271 發表于 2019-6-11 14:57 | 只看該作者
我也沒有顯示數字
回復

使用道具 舉報

地板
ID:612499 發表于 2019-10-14 09:46 | 只看該作者
延時5MS應該有問題,一個數碼管最多1MS,不然會全部熄滅,或者數碼管變暗,達不到理想的效果。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 色一阁 | 亚洲欧美激情国产综合久久久 | 91色网站 | 国产精品永久 | 丁香综合 | 在线观看中文字幕视频 | 日韩成人免费在线视频 | 久久狠狠 | 日本精品在线观看 | 午夜视频在线 | 91热爆在线观看 | 久久躁日日躁aaaaxxxx | 特级黄色毛片 | 青青草中文字幕 | 高清亚洲 | 精品一二 | 一区二区福利视频 | 国产伦精品 | 亚洲成人av在线播放 | 欧美黄色一区 | 欧美二区三区 | 国产福利视频导航 | 久久新| 99这里只有精品视频 | 伊人网综合在线观看 | 国产精品日韩一区 | 在线播放中文字幕 | 97人人超碰 | 日韩精品免费 | 成人av色 | 日本黄色免费片 | 精品久久久久久亚洲综合网站 | 色资源在线 | 日本精品视频在线观看 | 国产美女特级嫩嫩嫩bbb片 | 91精品国产综合久久久久久丝袜 | 成人a视频 | 亚洲欧美中文日韩在线v日本 | 91国内精品久久 | 欧美性精品 | 欧美影院 |