基于單片機(jī)的秒,分,時(shí)可調(diào)時(shí)鐘的設(shè)計(jì)
出處:cby981541 發(fā)布于:2012-09-06 11:05:32
今天主要做我喜歡的單片機(jī),這個(gè)學(xué)期才接觸到了單片機(jī),算是個(gè)微處理機(jī),是把計(jì)算機(jī)的部分功能集成化了的。在生活中隨處可見:想廚房用的電磁爐內(nèi)就集成了單片機(jī)的控制,客廳掛的數(shù)字萬年歷也是用單片機(jī)實(shí)現(xiàn)的!經(jīng)過了解后,我對(duì)此產(chǎn)生了極大的興趣。下面簡(jiǎn)單展示一個(gè)我做的基于單片機(jī)的實(shí)驗(yàn),望在這方面有研究的一起分享學(xué)習(xí)哈!
這個(gè)是用Proteus做的硬件設(shè)計(jì),對(duì)單片機(jī)有興趣大概都用過吧!另外還有軟件程序,如果把這個(gè)硬件比作人的外觀和手腳(是的還可以控制步進(jìn)電機(jī)伺服系統(tǒng)再用電機(jī)去控制一些操作的話就更像機(jī)器人了)。那么軟件程序就好比是人的大腦。下面我也把自己編的程序展示一下吧!望高手指點(diǎn):是用C語言編的。

本程序要實(shí)現(xiàn)秒,分,時(shí)的計(jì)時(shí),另外P1角也就是單片機(jī)的左邊還有三個(gè)按鈕可實(shí)現(xiàn)時(shí)、分、秒的調(diào)時(shí)。圖上沒有顯示!
主要代碼:
#include <reg51.h>
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,};
unsigned char disbitcode[]={0X00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//經(jīng)38譯碼器片選數(shù)碼管
unsigned char disbuf[8]={0,0,0,0,0,0,0,0};//八次循環(huán)逐個(gè)片選導(dǎo)通并顯示。
sbit OE=P2^6;
sbit LE=P2^7;
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
unsigned char second;
unsigned char minite;
unsigned char hour;
unsigned int tcnt;
void delay(unsigned int N)
{
while(N--);
}
void getbuff()
{
disbuf[0]=second%10;
disbuf[1]=second/10;
disbuf[2]=10;
disbuf[3]=minite%10;
disbuf[4]=minite/10;
disbuf[5]=10;
disbuf[6]=hour%10;
disbuf[7]=hour/10;
}
void display()
{
unsigned char i=0;
for(i=0;i<8;i++)
{
LE=1;
P3=disbitcode[i]; //經(jīng)38譯碼器依次片選
P0=dispcode[disbuf[i]]; //將相應(yīng)值送入P0口
OE=0;
delay(500);
}
}
void key()
{
if(K1==0)
{
delay(5000);
if(K1==0)
{
second++;
if(second==60)
{
second=0;
}
while(K1==0);
}
}
if(K2==0)
{
delay(5000);
if(K2==0)
{
minite++;
if(minite==60)
{
minite=0;
}
while(K2==0);
}
}
if(K3==0)
{
delay(5000);
if(K3==0)
{
hour++;
if(hour==24)
{
hour=0;
}
while(K3==0);
}
}
}
void t0() interrupt 1 using 0
{
tcnt++;
if(tcnt==4000)
{
tcnt=0;
second++;
if(second==60)
{
second=0;
minite++;
if(minite==60)
{
minite=0;
hour++;
if(hour==24)
{hour=0;}
}
}
}
}
void main()
{
TMOD=0x02;
TH0=0x06;
TL0=0x06;
TR0=1;
ET0=1;
EA=1;
second=0;
minite=0;
hour=0;
tcnt=0;
while(1)
{
key();
getbuff();
display();
}
}
經(jīng)過近兩個(gè)月的努力探索,還是有一點(diǎn)小小的成就感!確實(shí)我也做出點(diǎn)東西!相對(duì)現(xiàn)在來說是簡(jiǎn)單的事了!于是就想著做點(diǎn)復(fù)雜的有用的,唉!做起來真難!發(fā)現(xiàn)自己想做出產(chǎn)品來還差的遠(yuǎn)啊,之前所做的都應(yīng)歸為實(shí)驗(yàn)階段的東西,拿不出手的??!現(xiàn)在開始具體的做東西時(shí)發(fā)現(xiàn)之前學(xué)的東西太虛了,在高手面前甚至根本不能說自己學(xué)過更不必說會(huì)了!
于是我覺得學(xué)東西一定要親歷親為,不能放過一些關(guān)鍵細(xì)節(jié),想想當(dāng)有人問你你會(huì)什么技能的時(shí)候!你是否能底氣十足的說我是個(gè)高手呢!呵呵!在學(xué)技術(shù)時(shí),一定要自己狠一點(diǎn),要學(xué)的東西弄得越透徹越好!不能對(duì)自己有寬容,不能打折扣!
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號(hào)處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級(jí)DSP信號(hào)處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴(kuò)充定義2025/10/27 13:59:22
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開關(guān)中的EMI問題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見問題分析









