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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3816|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

ds1302單片機(jī)數(shù)碼管時(shí)鐘沒(méi)法調(diào)時(shí)?????

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
仿真電路可以調(diào)時(shí),焊接實(shí)物后只能顯示時(shí)間,設(shè)置按鈕可以用,加和減按鈕不能用,不知道為什么?
  #include <reg52.h>
#define uchar unsigned char
#define uint unsigned int         
#define D P0  //段選
#define W P2   //位選
sbit IO=P3^6;   //數(shù)據(jù)口
sbit SCLK=P3^5;   //控制數(shù)據(jù)時(shí)鐘
sbit RST=P3^7;    //使能端、復(fù)位端


/************按鍵引腳定義***********/
sbit led=P3^1; //閃爍的小數(shù)點(diǎn)......燈.....
sbit s3=P3^2;   //按鍵 選擇
sbit s1=P3^3; //按鍵 加
sbit s2=P3^4; //按鍵 減


uchar s, knum=0,snum,fnum;
bit flag;
/***********寫時(shí)分秒地址************/
#define write_shi  0x84
#define write_fen  0x82
#define write_miao 0x80
/***********讀時(shí)分秒地址************/
#define read_shi  0x85
#define read_fen  0x83
#define read_miao 0x81
bit miao_flag;
char miao_num;
char Dmiao;
char shi,fen,miao;  //讀出數(shù)據(jù)存儲(chǔ)變量
uchar d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90};  //不帶小數(shù)點(diǎn)
uchar dd[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};  //帶小數(shù)點(diǎn)
void delay(uint z)         //延時(shí)函數(shù),z的取值為這個(gè)函數(shù)的延時(shí)ms數(shù),如                                                                        delay(200);大約延時(shí)200ms.
{            //delay(500);大約延時(shí)500ms.
uint x,y;
for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void t0_init()  //定時(shí)50ms一個(gè)中斷
{

  TMOD=0X01;
  TH0=(65536-50000)/256;
  TL0=(65536-50000)%256;
  EA=1;
  ET0=1;
  TR0=1;

}
uchar read_1302(uchar add) //讀函數(shù)
{
uchar i,date;
RST=0;   //禁止讀寫數(shù)據(jù)
for(i=0;i<8;i++)
{
  RST=1;
  SCLK=0;
  IO=add&0x01;
  add>>=1;
  SCLK=1;
}
for(i=0;i<8;i++)
{
  if(IO)
   date=date|0x80;
  else
   date=date|0x00;
  SCLK=1;
  date>>=1;
  SCLK=0;
}
RST=0;
date=date/16*10+date%16;//進(jìn)制轉(zhuǎn)換 16轉(zhuǎn)10進(jìn)制
IO=0;     //數(shù)據(jù)讀完后,IO口必須為0,不然小時(shí)一直顯示85
return date;
}
void write_1302(uchar add,uchar dat)  //寫函數(shù)
{
uchar i;
RST=0;     //禁止讀寫數(shù)據(jù)
SCLK=0;   
for(i=0;i<8;i++)    //寫地址
{
  RST=1;     //允許讀寫數(shù)據(jù)
  SCLK=0;
  IO=add&0x01;  
  add>>=1;
  SCLK=1;
}
for(i=0;i<8;i++)    //寫數(shù)據(jù)
{
  RST=1;    //允許讀寫數(shù)據(jù)
  SCLK=0;
  IO=dat&0x01;
  dat>>=1;
  SCLK=1;
}
RST=0;
}
void init_1302() //初始化函數(shù) 設(shè)置時(shí)間
{
  flag=read_1302(0x81);
  if(flag&0x80)
write_1302(0x8e,0x00);  //保護(hù)取消,可以進(jìn)行讀寫操作
write_1302(write_miao,0x56);
write_1302(write_fen,0x49);
write_1302(write_shi,0x14);
write_1302(0x90,0xa5);
write_1302(0x8e,0x80);   //保護(hù)啟動(dòng),不能進(jìn)行讀寫操作
}
void display(uchar shi,uchar fen)   //顯示函數(shù)
{

if(knum==0)
{
  snum=30;
  fnum=30;
}
if(knum==1)
{
  fnum++;
  snum=30;
}
if(knum==2)
{
  snum++;
  fnum=30;
}

if(snum>=30)
{
  W=0xFb; //位選
  s=d[shi/10];//段碼先給s,判斷其值是否為0,
  if(s==0xc0)
  {
                 W=0xff;
                 D=0xff;
                }
                D=s;//s不為零則給D,讓其顯示   
  delay(5);
  D=0Xff;         //消隱
  if(miao_flag)       //小數(shù)點(diǎn)閃爍
  {
      miao_flag=0;
   W=0xF7;
   D=dd[shi%10];
   delay(5);
   D=0Xff;         //消隱
  }
  else
  {
   W=0xF7;
   D=d[shi%10];
   delay(5);
   D=0Xff;         
  }
     if(snum==60)
   snum=0;
}  
if(fnum>=30)
{
  W=0xEf;
  D=d[fen/10];
  delay(5);
  D=0Xff;         //消隱
  W=0xDf;
  D=d[fen%10];
  delay(5);
  D=0Xff;         //消隱
  if(fnum==60)
   fnum=0;
}
}


//讀取函數(shù)。。。。。。。。。。
void read_sf()
{
miao=read_1302(read_miao);
/*if(miao!=Dmiao)
{
  Dmiao=miao;
  TR0=1;
  miao_flag=1;
} */
fen=read_1302(read_fen);
shi=read_1302(read_shi);
display(shi,fen);  //讀取函數(shù)內(nèi)的顯示函數(shù)。。。。。。。。。。。。。。。
}



  //掃描函數(shù),用于調(diào)時(shí)。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
void keyscan()           //按鍵掃描函數(shù)
{            
if(s3==0)           //選擇按鍵按下
{
  delay(10);
  if(s3==0)
  {
   while(!s3)
    display(shi,fen); //加上這句,按鍵按下就不會(huì)閃
   knum++;
   if(knum==1)        //分閃爍
   {
     write_1302(0x8e,0x00);  //保護(hù)取消
     write_1302(write_miao,0x80);
   }
   if(knum==3)         //時(shí)鐘啟動(dòng)
   {
    knum=0;
    write_1302(write_miao,0x00);
    write_1302(0x8e,0x80);  //保護(hù)啟動(dòng)
   }
  }
}
if(knum==1)        //分鐘調(diào)節(jié)
{
  if(s1==0)       //加
  {
   delay(10);
   if(s1==0)
   {
    while(!s1)
     display(shi,fen); //加上這句,按鍵按下就不會(huì)閃
    fen++;
    if(fen==60)
     fen=0;
    write_1302(write_fen,fen/10*16+fen%10); //寫入1302
//    read_sf();     //讀出時(shí)間,然后顯示
   }
  }
  if(s2==0)
  {
   delay(10);
   if(s2==0)
   {
    while(!s2)
     display(shi,fen); //加上這句,按鍵按下就不會(huì)閃
    fen--;
    if(fen==-1)
     fen=59;
    write_1302(write_fen,fen/10*16+fen%10);
    read_sf();
   }
  }
}
if(knum==2)
{
  if(s1==0)
  {
   delay(10);
   if(s1==0)
   {
    while(!s1)
     display(shi,fen); //加上這句,按鍵按下就不會(huì)閃
    shi++;

    if(shi==24)
     shi=0;
    write_1302(write_shi,shi/10*16+shi%10);
    read_sf();
   }
  }
  if(s2==0)
  {
   delay(10);
   if(s2==0)
   {
    while(!s2)
       display(shi,fen); //加上這句,按鍵按下就不會(huì)閃
    shi--;

    if(shi==-1)
     shi=23;
    write_1302(write_shi,shi/10*16+shi%10);
    read_sf();
   }
  }
}
}





void main()
{

init_1302();
t0_init();
while(1)
{ if(miao_num<10)
     led=0;

      if(miao_num>=10)
      led=1;

  read_sf();
  keyscan();
}
}
void t0_timer() interrupt 1
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
miao_num++;
if(miao_num>=20)
{
  miao_num=0;
  miao_flag=1;
}
}

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

使用道具 舉報(bào)

沙發(fā)
ID:111634 發(fā)表于 2017-3-25 19:23 | 只看該作者
本帖最后由 zl2168 于 2017-3-25 19:25 編輯

具有校正功能的時(shí)鐘1302(LED數(shù)碼管顯示)

Proteus仿真一下,確認(rèn)有效。
實(shí)例93 帶校正時(shí)分秒的時(shí)鐘1302(6位LED數(shù)碼管顯示).rar (732.75 KB, 下載次數(shù): 17)

以上摘自張志良編著《80C51單片機(jī)仿真設(shè)計(jì)實(shí)例教程——基于Keil CProteus》清華大學(xué)出版社ISBN 978-7-302-41682-1內(nèi)有常用的單片機(jī)應(yīng)用100案例,用于仿真實(shí)驗(yàn)操作,電路與程序真實(shí)可靠可信可行




回復(fù)

使用道具 舉報(bào)

板凳
ID:165792 發(fā)表于 2017-3-27 10:44 | 只看該作者
謝謝,下載來(lái)參考下。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产一区二区三区香蕉 | 日韩精品一区二区三区在线观看 | 在线观看av不卡 | 97国产精品视频人人做人人爱 | 欧美特级黄色 | 97精品国产97久久久久久免费 | 日韩成人影院在线观看 | 色婷婷婷婷色 | 亚洲精品久久久久中文字幕欢迎你 | 亚洲精品国产第一综合99久久 | 国产黄色小视频 | 欧美一级二级视频 | 99pao成人国产永久免费视频 | 欧美一级黄色网 | 黄色免费av | 精品国产乱码久久久久久牛牛 | 久久中文字幕视频 | 精品自拍视频在线观看 | 久久成人av电影 | 欧美精品在线免费 | 免费一级黄色电影 | 日韩久久综合 | 女人av| 伊人国产精品 | 欧美区日韩区 | 大香网伊人 | 99视频入口 | 精品在线看| 欧美一区二区小视频 | zzzwww在线看片免费 | www.亚洲视频.com | 欧美激情精品久久久久久变态 | 羞羞视频在线观看免费观看 | 久久久久久国产精品 | 国产a视频| 自拍视频一区二区三区 | 日本精品裸体写真集在线观看 | 欧美日韩在线免费观看 | 精品在线播放 | 在线观看成年视频 | 免费观看av网站 |