在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

求一種數(shù)字電子鐘的設(shè)計(jì)方案

冬至子 ? 來(lái)源:學(xué)霸知到 ? 作者:學(xué)霸知到 ? 2023-11-08 16:01 ? 次閱讀

1 設(shè)計(jì)任務(wù)

電子數(shù)字電子鐘是單片機(jī)系統(tǒng)的一個(gè)應(yīng)用,由硬件和軟件相配合使用。硬件由主控器、時(shí)鐘電路、顯示電路、鍵盤(pán)接口4個(gè)模塊組成。主控模塊用STC89C52RC、時(shí)鐘電路用時(shí)鐘芯片DS1302、顯示模塊用 LCD1602、鍵盤(pán)接口電路用普通按鍵接上拉電阻完成;軟件利用C語(yǔ)言編程實(shí)現(xiàn)單片機(jī)程序控制。單片機(jī)通過(guò)時(shí)鐘芯片DS1302獲取時(shí)間數(shù)據(jù),通過(guò)1602液晶顯示器進(jìn)行顯示陽(yáng)歷年、月、日、時(shí)、分、秒、星期。

數(shù)字電子鐘的功能要求:數(shù)字電子鐘能用1602液晶顯示屏第一行顯示年、月、日、星期,第二行顯示秒、分、時(shí)。

數(shù)字電子鐘的按鍵要求:四個(gè)獨(dú)立按鍵的功能分別為:K1對(duì)秒、分、時(shí)的選擇,K4對(duì)年、月、日的選擇,K2加,K3減。

2 系統(tǒng)硬件設(shè)計(jì)

2.1 器件選擇

本系統(tǒng)以 AT89S52 單片機(jī)為控制核心,時(shí)鐘芯片DS1302,將得到的數(shù)據(jù)通過(guò) 1602液晶顯示出來(lái),同時(shí)通過(guò)相應(yīng)的按鍵調(diào)整相應(yīng)的值。51單片機(jī)的硬件資源分配:?jiǎn)纹瑱C(jī)最小系統(tǒng)模塊:STC89C52RC單片機(jī)芯片;復(fù)位電路;晶振電路。本模塊AT89C52RC系統(tǒng)控制核心,單片機(jī)系統(tǒng)復(fù)位由按鍵電平復(fù)位電路完成,并設(shè)計(jì)獨(dú)立按鍵調(diào)節(jié)時(shí)間,本次設(shè)計(jì)顯示為6位,采用兩個(gè)四位一體數(shù)碼管(共陽(yáng)極)作為顯示窗口,既可以節(jié)約成本又能簡(jiǎn)化電路。STC89C52RC單片機(jī)包含中央處理器、程序寄存器(ROM)、數(shù)據(jù)存儲(chǔ)器(ROM)、并行接口、串行接口和舉行鍵盤(pán)等幾大單元及數(shù)據(jù)總線、地址總線、和控制總線等三大總線。STC89C52RC共有4組8位I/O口(P0、P1、P2、P3),用于對(duì)外部數(shù)據(jù)的傳輸。

2.2 硬件原理圖

STC89C52RC芯片有40個(gè)引腳:

(1)電源及時(shí)鐘引腳(4個(gè))

Vcc:電源接入引腳。

GND:接地引腳。

XTAL1:晶體振蕩器接入的一個(gè)引腳。

XTAL2:晶體振蕩器接入的另一個(gè)引腳。

(2)控制線引腳(4個(gè))

RST:復(fù)位信號(hào)輸入引腳。

ALE/PROG:地址鎖存允許信號(hào)輸出/編程脈沖引腳。

EA:內(nèi)外存儲(chǔ)器選擇引腳。

PSEN:外部程序存儲(chǔ)器(ROM)選通信號(hào)輸出引腳。

(3)并行I/O引腳(32個(gè),分成4個(gè)8位端口

P0.0- P0.7:一般I/O端口引腳或數(shù)據(jù)/低位地址總線復(fù)用引腳。

P1.0- P1.7:一般I/O端口引腳。

P2.0- P2.7:一般I/O端口引腳或高位地址總線引腳。

P3.0- P3.7:一般I/O端口引腳或第二功能引腳。

STC89C52RC芯片,如圖2.1所示:

圖片

圖2.1 STC89C52RC芯片

1602 液晶功耗較小可直接與單片機(jī)接口相接,電源直接與電源電路相接,使用單片機(jī)的P0口和P1口與1602進(jìn)行通信。1602 相應(yīng)功能特性介紹 n +5V 電壓,對(duì)比度可調(diào) n 內(nèi)含復(fù)位電路n 提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能 n有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器 DDRAM n內(nèi)建有160個(gè) 5X7 點(diǎn)陣的字型的字符發(fā)生器 CGROM n 8 個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM ,如圖2.2所示:

圖片

圖2.2 1602硬件原理圖

DS1302時(shí)鐘芯片包括實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)的靜態(tài)RAM。它經(jīng)過(guò)一個(gè)簡(jiǎn)單的串行接口與微處理器通信。實(shí)時(shí)時(shí)鐘/日歷提供秒、分、時(shí)、日、周、月和年等信息。對(duì)于小于31天的月和月末的日期自動(dòng)調(diào)整,還包括閏年校正的功能。時(shí)鐘的運(yùn)行可以采用24h或帶AM(上午)/PM(下午)的12h格式。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302有主電源/后備電源雙電源引腳:Vcc1在單電源與電池供電的系統(tǒng)中提供低電源,并提供低功率的電池備份;Vcc2在雙電源系統(tǒng)中提供主電源,在這種運(yùn)用方式中,Vcc1連接到備份電,以便在沒(méi)有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。DS1302由Vcc1或Vcc2中較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電;當(dāng)Vcc2小于Vcc時(shí), DS13026由Vcc1供電。如圖2.3所示:

圖片

圖2.3 DS1302時(shí)鐘模塊原理圖

按鍵部分電路采用獨(dú)立式按鍵,各按鍵相互獨(dú)立,每個(gè)按鍵單獨(dú)占用一根I/O口線,每根I/O口線的按鍵工作狀態(tài)不會(huì)影響其他I/O口線上的工作狀態(tài)。因此,通過(guò)檢測(cè)輸入線的電平狀態(tài)可以很容易判斷哪個(gè)按鍵被按下了。獨(dú)立式按鍵接口電路配置靈活,軟件結(jié)構(gòu)簡(jiǎn)單。但每個(gè)按鍵需占用一根I/O口線,在按鍵數(shù)量較多時(shí),I/O口浪費(fèi)大。因此,獨(dú)立式按鍵主要用于按鍵較少或操作速度較高的場(chǎng)合。本次設(shè)計(jì)需要按鍵數(shù)較少,故選用獨(dú)立式按鍵。獨(dú)立式按鍵接口電路如圖2.4所示:

圖片

圖2.4 獨(dú)立式按鍵接口電路

3 系統(tǒng)軟件設(shè)計(jì)

3.1總體方案組成框圖

(1)主程序流程圖如圖3.1所示:

圖片

圖3.1 主程序流程圖

(2)子程序流程圖如圖3.2所示:

圖片圖3.2 時(shí)間調(diào)整程序流程圖

3.2軟件清單

void delay()此函數(shù)為延時(shí)函數(shù)     
void write_com()此函數(shù)為寫(xiě)入命令函數(shù)
void write_date()此函數(shù)為寫(xiě)入數(shù)據(jù)函數(shù)
void init()    此函數(shù)為初始函數(shù)
void write_sfm()此函數(shù)是時(shí)間設(shè)置地址,將數(shù)據(jù)寫(xiě)入對(duì)應(yīng)的地址的函數(shù)
void write_riqi()此函數(shù)是日期設(shè)置 將數(shù)據(jù)寫(xiě)入對(duì)應(yīng)的地址的函數(shù)
void keyscan()此函數(shù)是時(shí)間按鍵函數(shù)
void riqi_xq() 此函數(shù)是顯示星期的函數(shù)
void keys_riqi()      此函數(shù)是顯示日期的函數(shù)                       
void main()    此函數(shù)為主函數(shù)
下圖中為子函數(shù)
#include#define uchar unsigned char#define uint unsigned int
sbit dula=P2^6;sbit wela=P2^7;sbit lcdrs=P1^0;sbit lcdrw=P1^1;sbit lcden=P2^5;
sbit s1=P3^4;sbit s2=P3^5;sbit s3=P3^6;//sbit s4=P3^0;//sbit s8=P3^1;
//sbit s12=P3^2;sbit s4=P3^7;
uchar tt,s1num,s4num;char shi,fen,miao,shiji,nian,yue,ri,xq;
//string char code tabe2[7]={"MON","TUE","WED","THU","FRI","SAR","SUN"};
uchar code tabe[15]=" 2020_12-12_SAR";uchar code tabe1[14]="   30:30:20   ";
void delay(uint n)
{
while(n--)
{
uchar i;for(i=113;i >0;i--);
}
}
void write_com(uchar com)
{
lcdrw=0;lcdrs=0;P0=com;
delay(5);lcden=1;delay(5);lcden=0;
}
void write_date(uchar date)
{
lcdrw=0;lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;
}
void init()
{
uchar num;dula=0;wela=0;lcden=0;shi=20;fen=30;miao=30;ri=12;yue=12;
nian=20;shiji=20;write_com(0x01);write_com(0x3c);write_com(0x0c);
write_com(0x06);write_com(0x80);for(num=0;num< 15;num++)
{
write_date(tabe[num]);delay(10);
}
write_com(0x80+0x40);for(num=0;num< 14;num++)
{
write_date(tabe1[num]);delay(10);
}
TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;
      TR0=1;
}
void write_sfm(uchar add,uchar date)
{
uchar sh,ge;sh=date%100/10;ge=date%10;write_com(0x80+0x40+add);
write_date(0x30+sh);write_date(0x30+ge);
}
void write_riqi(uchar add,uint date)
{
uchar sh,ge;sh=date%100/10;ge=date%10;write_com(0x80+add);
write_date(0x30+sh);write_date(0x30+ge);
}
void keyscan()
{
if(s1==0)
{
delay(5);if(s1==0)
{
while(!s1);s1num++;if(s1num==1)
{
TR0=0;write_com(0x80+0x40+3);write_com(0x0f);
}
if(s1num==2)
{
write_com(0x80+0x40+6);
}
if(s1num==3)
{
write_com(0x80+0x40+9);
}
if(s1num==4)
{
s1num=0;TR0=1;write_com(0x0c);
}
}
}
if(s1num!=0)
{
if(s2==0)
{
delay(5);if(s2==0)
{
while(!s2);if(s1num==1)
{
miao++;if(miao==60)
miao=0;write_sfm(3,miao);write_com(0x080+0x40+3);
}
if(s1num==2)
{
fen++;if(fen==60)
fen=0;write_sfm(6,fen);write_com(0x080+0x40+6);
}
if(s1num==3)
{
shi++;if(shi==24)
shi=0;write_sfm(9,shi);write_com(0x080+0x40+9);
}
}
}if(s3==0)
{
delay(5);if(s3==0){
while(!s3);if(s1num==1
{
miao--;if(miao==-1)
miao=59;write_sfm(3,miao);write_com(0x80+0x40+3);
}
if(s1num==2)
{
fen--;if(fen==-1)
fen=59;write_sfm(6,fen);write_com(0x80+0x40+6);
}
if(s1num==3)
{
shi--;if(shi==-1)
shi=23;write_sfm(9,shi);write_com(0x80+0x40+9);
}
}
}
}
}
void riqi_xq()
{
switch(xq)
{
case 1:write_com(0x80+12);write_date(0x40+13);write_date(0x40+15);
write_date(0x40+14);write_com(0x80+12);break;
case 2:write_com(0x80+12);write_date(0x50+4);write_date(0x50+5);
write_date(0x40+5);write_com(0x80+12);break;
case 3:write_com(0x80+12);write_date(0x50+7);write_date(0x40+5);
write_date(0x40+4);write_com(0x80+12);break;
case 4:write_com(0x80+12);write_date(0x50+4);write_date(0x40+8);
write_date(0x50+5);write_com(0x80+12);break;
case 5:write_com(0x80+12);write_date(0x40+6);write_date(0x50+2);
write_date(0x40+9);write_com(0x80+12);break;
case 6:write_com(0x80+12);write_date(0x50+3);write_date(0x40+1);
write_date(0x50+2);write_com(0x80+12);break;
case 7:write_com(0x80+12);write_date(0x50+3);write_date(0x50+5);
write_date(0x40+14);write_com(0x80+12);break;
}
}
void keys_riqi()
{
if(s4==0)
{delay(10);if(s4==0)
{while(!s4);s4num++;if(s4num==1)
{TR0=0;write_com(0x80+0x0c);write_com(0x0f);
}
if(s4num==2)
{
write_com(0x80+9);
}
if(s4num==3)
{
write_com(0x80+6);
}
if(s4num==4)
{
write_com(0x80+3);
}
if(s4num==5)
{
write_com(0x80+1);
}
if(s4num==6)
{
s4num=0;TR0=1;write_com(0x0c);
}
}
}
if(s4num!=0)
{
if(s2==0)
{
delay(5);if(s2==0)
{
while(!s2);if(s4num==1)
{
xq++;if(xq==8)
xq=1;riqi_xq();
}
if(s4num==2)
{
ri++;if(ri==32)
ri=1;write_riqi(9,ri);write_com(0x80+9);
}
if(s4num==3)
{
yue++;if(yue==13)yue=1;write_riqi(6,yue);write_com(0x80+6);
}
if(s4num==4)
{
nian++;if(nian==100)
nian=0;write_riqi(3,nian);write_com(0x80+3);
}
if(s4num==5)
{
shiji++;if(shiji==100)
shiji=0;write_riqi(1,shiji);write_com(0x80+1);
}
}
}
if(s3==0)
{
delay(5);if(s3==0)
{
while(!s3);//s4num++;if(s4num==1)
{
xq--;if(xq==0)
xq=7;riqi_xq();
}
if(s4num==2)
{
ri--;if(ri==0)
ri=31;
write_riqi(9,ri);write_com(0x80+9);
}
if(s4num==3)
{
yue--;if(yue==0)
yue=12;write_riqi(6,yue);write_com(0x80+6);
}
if(s4num==4)
{
nian--;if(nian==0)
nian=99;write_riqi(3,nian);write_com(0x80+3);
}
if(s4num==5)
{shiji--;if(shiji==0)
shiji=99;write_riqi(1,shiji);write_com(0x80+1);
                        }                      
}
}
}
}
void main()
{
init();
while(1)
{
keys_riqi();keyscan();if(tt==20)
{
tt=0;miao++;if(miao==60)
{miao=0;fen++;if(fen==60)
{fen=0;shi++;if(shi==24)
{shi=0;ri++;xq++;if(ri==32)
{ri=1;yue++;if(yue==13)
{yue=1;nian++;if(nian==100)
{nian=0;shiji++;if(shiji==100)
{shiji=0;
}
write_riqi(1,shiji);
}
write_riqi(3,nian);
}
write_riqi(6,yue);
}
riqi_xq();write_riqi(9,ri);
}
write_sfm(9,shi);
}
write_sfm(6,fen);
}
write_sfm(3,miao);
}
}
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;TL0=(65536-50000)%256;tt++;
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 發(fā)生器
    +關(guān)注

    關(guān)注

    4

    文章

    1389

    瀏覽量

    62355
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1888

    瀏覽量

    92049
  • 晶體振蕩器
    +關(guān)注

    關(guān)注

    9

    文章

    670

    瀏覽量

    29648
  • 數(shù)字電子鐘
    +關(guān)注

    關(guān)注

    7

    文章

    27

    瀏覽量

    20743
  • STC89C52RC
    +關(guān)注

    關(guān)注

    15

    文章

    64

    瀏覽量

    38879
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    數(shù)字電子鐘設(shè)計(jì)方案

    數(shù)字電子鐘設(shè)計(jì)方案數(shù)字鐘是一種數(shù)字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的
    發(fā)表于 12-17 11:31

    一種數(shù)字信道化IFM接收機(jī)的高效實(shí)現(xiàn)方案

    本文提出的一種數(shù)字信道化IFM接收機(jī)方案結(jié)合了數(shù)字信道化接收機(jī)高效結(jié)構(gòu)和相位差分瞬時(shí)測(cè)頻方法,從而降低了系統(tǒng)復(fù)雜度,提高了實(shí)時(shí)處理能力,仿真結(jié)果表明該方案具有較好的信號(hào)檢測(cè)能力。用現(xiàn)代
    發(fā)表于 02-23 07:05

    一種數(shù)字微波設(shè)備監(jiān)控系統(tǒng)的設(shè)計(jì)

    本文給出一種數(shù)字微波設(shè)備監(jiān)控系統(tǒng)的設(shè)計(jì),該系統(tǒng)引入μC/OS-II之后,系統(tǒng)的開(kāi)發(fā)效率得到提高,整個(gè)系統(tǒng)的健壯性得到增強(qiáng),文中對(duì)軟件設(shè)計(jì)應(yīng)用中遇到的關(guān)鍵問(wèn)題作了深入討論并給出了相應(yīng)的解決方案
    發(fā)表于 04-26 06:23

    一種數(shù)字電壓表的設(shè)計(jì)方案

    一種以CPLD為核心處理電路的數(shù)字電壓表的設(shè)計(jì)方案
    發(fā)表于 04-28 07:14

    一種多路模擬數(shù)字采集與處理系統(tǒng)的設(shè)計(jì)方案

    一種多路模擬數(shù)字采集與處理系統(tǒng)的設(shè)計(jì)方案
    發(fā)表于 04-28 07:04

    一種數(shù)字式溫度測(cè)量電路的設(shè)計(jì)方案

    一種數(shù)字式溫度測(cè)量電路的設(shè)計(jì)方案
    發(fā)表于 05-17 06:16

    一種智能物品清點(diǎn)系統(tǒng)的設(shè)計(jì)方案

    一種智能物品清點(diǎn)系統(tǒng)的設(shè)計(jì)方案
    發(fā)表于 05-20 07:29

    一種新型WCDMA直放站PA的設(shè)計(jì)方案

    一種新型WCDMA直放站PA的設(shè)計(jì)方案
    發(fā)表于 05-26 06:14

    大佬分享一種小型通信系統(tǒng)的設(shè)計(jì)方案

    大佬分享一種小型通信系統(tǒng)的設(shè)計(jì)方案
    發(fā)表于 05-28 06:13

    一種基于單片機(jī)的簡(jiǎn)易電子鐘設(shè)計(jì)方案

    、實(shí)驗(yàn)?zāi)康暮腿蝿?wù)1、熟悉電子鐘的基本工作原理。2、掌握簡(jiǎn)易電子鐘的硬件結(jié)構(gòu)及程序設(shè)計(jì)方法。二、實(shí)驗(yàn)原理簡(jiǎn)介電子鐘是人們?nèi)粘I钪胁豢苫蛉钡挠?jì)時(shí)工具。與
    發(fā)表于 01-11 07:57

    一種基于單片機(jī)的簡(jiǎn)易洗衣機(jī)系統(tǒng)仿真設(shè)計(jì)方案

    一種基于單片機(jī)的簡(jiǎn)易洗衣機(jī)系統(tǒng)仿真設(shè)計(jì)方案
    發(fā)表于 01-17 08:09

    一種基于openmv競(jìng)速小車的設(shè)計(jì)方案

    一種基于openmv競(jìng)速小車的設(shè)計(jì)方案
    發(fā)表于 03-01 07:16

    一種數(shù)字IC測(cè)試系統(tǒng)的設(shè)計(jì)

    摘  要: 給出一種數(shù)字集成電路(IC)測(cè)試系統(tǒng)的軟硬件設(shè)計(jì)方案。該系統(tǒng)基于自定義總線結(jié)構(gòu),可測(cè)試寬范圍電平。 隨著數(shù)字集成電路IC的廣泛應(yīng)用,測(cè)試系統(tǒng)就顯得越來(lái)
    發(fā)表于 03-24 13:13 ?1221次閱讀
    <b class='flag-5'>一種數(shù)字</b>IC測(cè)試系統(tǒng)的設(shè)計(jì)

    實(shí)現(xiàn)一種數(shù)字可調(diào)的升壓型開(kāi)關(guān)電源的設(shè)計(jì)方案

      近年來(lái),數(shù)字化在電源領(lǐng)域得到廣泛應(yīng)用,許多電子設(shè)備要求電源具有多檔級(jí)。因此,這里提出了一種利用數(shù)字控制、電壓可調(diào)的開(kāi)關(guān)電源設(shè)計(jì)方案
    發(fā)表于 01-04 19:30 ?1174次閱讀

    一種數(shù)字式可調(diào)直流穩(wěn)壓電源系統(tǒng)設(shè)計(jì)方案

    一種數(shù)字式可調(diào)直流穩(wěn)壓電源系統(tǒng)設(shè)計(jì)方案
    發(fā)表于 06-25 10:32 ?35次下載
    主站蜘蛛池模板: 男女吃奶一进一出动态图 | 国产三级日产三级韩国三级 | 四虎永久网址影院 | 日本xxxxx69hd日本 | 国模啪啪一区二区三区 | 美日韩中文字幕 | 黄的三级在线播放 | 性欧美精品xxxx | 7m视频精品凹凸在线播放 | 国产亚洲精品激情都市 | 四虎永久网址在线观看 | 熊出没之环球大冒险旧版免费观看 | 亚洲怡红院在线观看 | 色天天综合久久久久综合片 | 日本精品视频一视频高清 | 上海一级毛片 | 久久国产精品免费专区 | 四虎免费影院在线播放 | 免费四虎永久在线精品 | 在线观看你懂的视频 | 49vv婷婷网 | 日本高清免费一本视频在线观看 | 国产美女视频爽爽爽 | 濑亚美莉iptd619在线观看 | 亚洲美女视频一区 | 久久亚洲aⅴ精品网站婷婷 久久亚洲成人 | 色多多a| 日日日天天射天天干视频 | yy6080亚洲半夜理论一级毛片 | 欧美性猛交xxxx乱大交高清 | 免费国产zzzwww色 | 久久综合五月婷婷 | 免费番茄社区性色大片 | 久久精品国产99精品国产2021 | 好紧好爽的午夜寂寞视频 | 又黄又涩的视频 | 免费人成在线观看网站 | 爱情社保片鲁丝片一区 | 久久永久免费 | www亚洲成人 | 亚洲一区二区三区在线 |