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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

制作了一個數碼管電子時鐘,請大家幫我在改進一下吧,謝謝!

[復制鏈接]
跳轉到指定樓層
樓主
ID:404479 發表于 2019-10-12 13:02 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
50黑幣
首先,P0口控制的是8個數碼管的段選(正極),138譯碼器控制的是數碼管的位選(負極),然后我寫的這個電子時鐘只能看時間,不能改時間,我想用三顆按鍵來控制時間的修改,第一顆按鍵為選中按鍵,按第一下,小時的個位和十位停止,然后通過第二顆按鍵增加,第三顆按鍵減少,可以0-59數字的操作,修改完成后,繼續按第一顆鍵保存剛才的修改數據并跳到分鐘修改,然后在按一次第一顆按鍵跳到秒鐘修改,在按一次第一顆按鍵自動退出修改,同理,修改分鐘和秒鐘也是,按第二顆增加,按第三顆減少,改完后,繼續按第一顆直到退出!
我想請大家幫我大致從下面這個程序修改一下,增加三顆按鍵來實現可修改的功能,按鍵和管腳大家都可以隨便定義,小弟c語言基礎淺薄,能不要用指針就盡量不要用指針吧,謝謝大家!以下是程序和原理圖:

#include<reg52.h>
#define uint unsigned  int
#define uchar unsigned char
uchar duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};         //數碼管位選數據
sbit LSA=P2^2;      //38譯碼器A0腳
sbit LSB=P2^3;       //38譯碼器A1腳
sbit LSC=P2^4;       //38譯碼器A2腳
uint miao=0;                //秒
uint fen=0;                        //分
uint shi=0;                    //時
static uint n=0;                        //計數
uint dizhi[6]={0,0,0,0,0,0};          //定義一個有6個地址的數組,分別存時,分,秒的個位和十位。void delay(uint z)                         //延時函數
{   
  uint x,y;         for(x=z;x>0;x--)
          for(y=50;y>0;y--);
}
void write_date(uint n)                                     //寫數據函數,送入段選信號
{         
P0=duan[n];
}                                                                        
        
void display()      //顯示函數
{         
        LSA=0;        LSB=0;        LSC=0;                                write_date(dizhi[0]);         
delay(1);   
   P0=0x00;                 
           LSA=1;        LSB=0;        LSC=0;                write_date(dizhi[1]);         
delay(1);         
P0=0x00;                 
LSA=1;        LSB=1;        LSC=0;                           write_date(dizhi[2]);         
delay(1);        
P0=0x00;                                 
LSA=0;        LSB=0;        LSC=1;                         write_date(dizhi[3]);        
  delay(1);
         P0=0x00;                 
          LSA=0;        LSB=1;        LSC=1;                 write_date(dizhi[4]);         
        delay(1);
         P0=0x00;                  
          LSA=1;        LSB=1;        LSC=1;                    write_date(dizhi[5]);         
delay(1);         
P0=0x00;                           
}
void time_init()                                                   //定時器初始化函數
{   
TMOD=0x02;                                                          //選擇方式2        TH0=156;                                                          //重裝初值為156        TL0=156;                                                          //運行值為156        EA=1;                                                                  //開總中斷
        ET0=1;                                                               
TR0=1;                                                                  //開定時器0
}
void main()
{   
time_init();   
while(1)
  {   
   display();   
}
    }  
void timer() interrupt 1                                          //定時器0中斷
{   
n++;        
if(n==10000)                                                                 //當n=10000時,表示1s到了
         {                  
    n=0;             miao++;                 
if(miao==60)               
{                     miao=0;                  
   fen++;               
         if(fen==60)               
         {                        
     fen=0;                                
shi++;               
                 if(shi==24)                                
{                        
            shi=0;                                 
}                        
}               
}               
dizhi[0]=miao%10;               
dizhi[1]=miao/10;                 
dizhi[2]=fen%10;        
         dizhi[3]=fen/10;               
dizhi[4]=shi%10;        
         dizhi[5]=shi/10;
                 }
}

IMG_20191012_125050.jpg (800.75 KB, 下載次數: 45)

IMG_20191012_125050.jpg

Screenshot_2019-10-12-12-52-50-57.png (410.06 KB, 下載次數: 44)

Screenshot_2019-10-12-12-52-50-57.png

Screenshot_2019-10-12-12-55-00-78.png (247.33 KB, 下載次數: 78)

Screenshot_2019-10-12-12-55-00-78.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:213173 發表于 2019-10-13 14:41 | 只看該作者
給你一個例程參考
數碼管時鐘長短按調整點閃爍+鬧鐘38譯碼器+仿真.zip (78.64 KB, 下載次數: 24)

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 黄色成人国产 | 日日操夜夜操天天操 | 国产精品亚洲视频 | 久久99久久久久 | 99免费在线视频 | 日本久久视频 | 国产精品地址 | 成人免费影院 | 国产色| www.国产精品 | 欧美 日韩 视频 | 精品亚洲一区二区 | 91亚洲国产精品 | 中文字幕中文字幕 | 国产精品美女在线观看 | 99热在线播放 | 欧美日产国产成人免费图片 | 精品国产一区二区国模嫣然 | 国产黄色在线 | 中文字幕国产一区 | 国产日韩欧美在线 | 羞羞视频免费在线观看 | 国产午夜精品久久久久 | 99久久精品国产麻豆演员表 | 中文字幕亚洲精品在线观看 | 在线成人 | 欧美日本韩国一区二区 | 国产色片 | 婷婷毛片| 欧美黄在线观看 | 亚洲一区二区三区在线 | 欧美美女被c | 亚洲高清在线 | 欧美一区二区免费视频 | 精品久久久久久亚洲精品 | 日韩欧美视频 | 亚洲一本 | 91传媒在线观看 | 日韩中文在线视频 | 伊人伊成久久人综合网站 | 国家一级黄色片 |