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

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

QQ登錄

只需一步,快速開始

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

[原創(chuàng)]成功啦! 這個(gè)小玩意終于搞出來(lái)了 哈哈!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:16555 發(fā)表于 2009-10-26 17:51 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

/*********************************************************************************************/
/* 我的思路是這樣的:一個(gè)51的MCU+一個(gè)4位數(shù)碼管+一個(gè)74LS138譯碼器+12M晶振.完成一個(gè)計(jì)秒和分的  */
/*計(jì)時(shí)器。設(shè)置兩個(gè)按鍵:開始和復(fù)位其中開始鍵可以開始計(jì)時(shí),又可以暫停計(jì)時(shí),再按一次,又接著計(jì) */
/*時(shí)。反正就是開始—暫停—開始—暫停—接著計(jì)時(shí),只要不按復(fù)位。我想讓它初始畫面只顯示一個(gè)0,先*/
/*計(jì)時(shí)秒,到10秒以上在選通第三位數(shù)碼管,到1分鐘以上在選通第二位數(shù)碼管,(其中第二位數(shù)碼管的H */
/*段必須亮,作用是區(qū)分——分鐘和秒鐘),到10分鐘以上在選通第一位數(shù)碼管。就像這樣顯示順序     */
/*        0          ——0秒                                                                 */
/*       10          ——10秒                                                                */
/*       19          ——19秒                                                                */
/*     1.30          ——1分30秒                                                             */
/*     9.00          ——9分0秒                                                              */
/*    10.00          ——10分0秒                                                             */
/*    60.59          ——60分59秒                                                            */
/*循環(huán)計(jì)時(shí)。復(fù)位鍵清0 ,重新按開始鍵計(jì)時(shí)開始。復(fù)位鍵我用硬件復(fù)位電路了.                      */
/*********************************************************************************************/
#include<reg52.h>                                    //頭頭
#define uchar unsigned char
#define uint unsigned int
sbit P32=P3^2;                                       //外中斷0                              
uchar code duma[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x6d,0x73,0x78,0xdc,0x50};//段選:0123456789sptar
uchar code dumapoint[]=
{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//帶點(diǎn)的段選:0123456789
uchar code weima[]=
{0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7};          //我的位選:我用前4個(gè)數(shù)碼管
void display(uchar);                                //顯示聲明
uchar cnt,sec,min,flag;                             //變量聲明
uint num;
//=======================
void delay(uint i)                                  //毫秒延時(shí)函數(shù)
{
 uint a,b;
 for(a=i;a>0;a--)
  for(b=121;b>0;b--);
}
//=======================
void gate()                                        //中斷控制函數(shù)
{
 TMOD=0x01;                                 //T0定時(shí)方式
 TH0=(65536-50000)/256;                     //初值50毫秒
 TL0=(65536-50000)%256;
 EA=1;                                      //開總中斷
 ET0=1;                                     //T0中斷允許位
 TR0=1;                                     //開定時(shí)器
 IT0=0;                                     //外中斷T0
 EX0=1;                                     //外中斷允許位
 PX0=1;                                    //外中斷高優(yōu)先級(jí)
}
//=======================
void main()                                        //主函數(shù)
{
 char x;
 gate();                                    //中斷控制
 while(1)                                   //這里我寫的很笨方法,可想了好久,
 {                                            算法不簡(jiǎn)練,希望朋友們不吝賜教.
   if(cnt==20){sec++;num++;cnt=0;}   //秒增加
   if(sec==60){min++;sec=0;}         //分增加
   if(min==60)min=0;                 //封頂一個(gè)小時(shí)
   if(num<10){x=0;}                  //先讓秒個(gè)位亮
   if(num>=10){x=1;}                 //再讓秒個(gè)十位亮
   if(num>=60){x=2;}                 //再讓分個(gè)位亮和秒位亮
   if(num>=600){x=3;}                //再4位都亮
   if(num==3600){num=0;}             //一個(gè)小時(shí)封頂
   display(x);
 }   
}
//========================
void time0() interrupt 1                           //計(jì)時(shí)器0中斷
{
 TH0=(65536-50000)/256;                     //初值
 TL0=(65536-50000)%256;
 cnt++;                                    //加數(shù)
}
//========================
void ie0() interrupt 0                             //外中斷0
{
 delay(10);
 if(!P32)
 TR0=~TR0;                                  //停止計(jì)時(shí)
 flag=TR0;                                  //開關(guān)
 while(!P32)
 {
  switch(flag)                     
  {
   case 0: P2=duma[10];       //這個(gè)鍵按下去顯示stop
    P1=weima[0];
    delay(4);
    P2=duma[12];
    P1=weima[1];
    delay(4);
    P2=duma[0];
    P1=weima[2];
    delay(4);
    P2=duma[11];
    P1=weima[3];
    delay(4);
    break;
   case 1: P2=duma[10];      //這個(gè)鍵按下去顯示start
    P1=weima[0];
    delay(4);
    P2=duma[12];
    P1=weima[1];
    delay(4);
    P2=duma[13];
    P1=weima[2];
    delay(4);
    P2=duma[14];
    P1=weima[3];
    delay(4);
    break;   
   default:break;
  }
 }
}
//========================
void display(char x)                             //顯示函數(shù)
{
 switch(x)
 {
  case 0:P2=duma[sec%10];          //主要是顯示個(gè)位
         P1=weima[3];
         delay(4);
         break;
  case 1:P2=duma[sec%10];          //顯示十位和個(gè)位
         P1=weima[3];
         delay(4);
         P2=duma[sec/10];
         P1=weima[2];
         delay(4);
         break;
  case 2:P2=duma[sec%10];          //顯示百十個(gè)位
         P1=weima[3];
         delay(4);
         P2=duma[sec/10];
         P1=weima[2];
         delay(4);
         P2=dumapoint[min%10];
         P1=weima[1];
         delay(4);
         break;
  case 3:P2=duma[sec%10];          //顯示千百十個(gè)位
         P1=weima[3];
         delay(4);
         P2=duma[sec/10];
         P1=weima[2];
         delay(4);
         P2=dumapoint[min%10];
         P1=weima[1];
         delay(4);
         P2=duma[min/10];
         P1=weima[0];
         delay(4);
         break;
  default:break;
 }
}        

 

 

 

 

 

 

 

 

接著玩串口通信

[此貼子已經(jīng)被作者于2009-10-29 12:10:58編輯過(guò)]
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:17294 發(fā)表于 2009-10-27 09:07 | 只看該作者
就是秒表吧
回復(fù)

使用道具 舉報(bào)

板凳
ID:16249 發(fā)表于 2009-10-29 16:37 | 只看該作者
背景是彩票嗎?
回復(fù)

使用道具 舉報(bào)

地板
ID:16555 發(fā)表于 2009-10-29 17:40 | 只看該作者
以下是引用wangning5503在2009-10-29 16:37:03的發(fā)言:
背景是彩票嗎?圖片點(diǎn)擊可在新窗口打開查看

不是 ,是快餐餐牌我買彩票從來(lái)都沒(méi)中過(guò)!

回復(fù)

使用道具 舉報(bào)

5#
ID:19900 發(fā)表于 2009-12-10 15:12 | 只看該作者
不是我打擊你,你的程序很煩瑣,雖然能實(shí)現(xiàn)所設(shè)想的功能,應(yīng)該改進(jìn)一下。祝你成功!
回復(fù)

使用道具 舉報(bào)

6#
ID:17233 發(fā)表于 2009-12-27 21:32 | 只看該作者

恩   有點(diǎn)復(fù)雜,還可以跟簡(jiǎn)單一點(diǎn)的。。。

回復(fù)

使用道具 舉報(bào)

7#
ID:17923 發(fā)表于 2009-12-27 21:54 | 只看該作者
如果是新手的話我建議一定要思維縝密,越詳細(xì)越好,等到成熟了以后可以不斷再改進(jìn)程序。 個(gè)人意見
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品视频在线播放 | 国产欧美精品一区二区 | 羞羞的视频免费在线观看 | 国产精品日韩欧美一区二区三区 | 国产美女精品视频免费观看 | 免费高潮视频95在线观看网站 | 国产毛片av | 免费观看成人av | 欧美视频在线观看 | 亚洲免费精品 | 日本精品久久久久久久 | 欧美日韩精品一区二区三区视频 | 欧美日韩91 | 日韩精品免费视频 | 在线观看中文字幕 | 久久精品亚洲精品国产欧美 | 国产精品美女久久久av超清 | 久久99精品久久久久婷婷 | 欧美 日韩 国产 成人 在线 91 | 久久中文字幕一区 | 国产精品国产三级国产aⅴ中文 | 精品欧美在线观看 | 美女人人操 | 亚洲国产精品人人爽夜夜爽 | 欧美激情视频一区二区三区免费 | 99这里只有精品视频 | 99热在线免费 | 成年免费在线观看 | 亚洲一区二区三区在线 | 中文字幕国产精品视频 | 9久久| 夜夜操av | 一区二区三区四区在线 | 7777在线视频 | 久草久草久草 | 免费成人高清 | 色橹橹欧美在线观看视频高清 | 日韩中文在线视频 | 国产高清av免费观看 | 爱操av| 国产精品a久久久久 |