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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 516509|回復(fù): 1158
收起左側(cè)

[原創(chuàng)][分享]新手寫(xiě)的多功能電子鐘

  [復(fù)制鏈接]
ID:8456 發(fā)表于 2009-5-27 20:33 | 顯示全部樓層 |閱讀模式

剛學(xué)的單片機(jī),下面的程序是在學(xué)習(xí)中斷和定時(shí)器時(shí)寫(xiě)的,已調(diào)試通過(guò),
多功能電子鐘有如下功能:
1,可以用來(lái)做電子鐘
2,可以用做報(bào)警器(按P3.2時(shí),用做報(bào)警)
3,可以用做鬧鐘(按P1.6時(shí),用做鬧鐘)
4,可以顯示星期
程度當(dāng)中還有好多的不妥之處,還請(qǐng)高手門幫忙指正.
程序如下:
(由于注解太多,所以沒(méi)有能寫(xiě)出來(lái),請(qǐng)見(jiàn)諒!!),制作成功后的圖片如附件.
內(nèi)容如下:

#include <AT89X51.H>
#define uchar unsigned char
#define uint unsigned int
uchar code dispcode[]={0x81,0x9f,0xa4,0x8c,0x9a,0xc8,0xc0,0x9d,0x80,0x88};
uchar code DATA[]={0xfc,0x92,0x98,0xac,0x89,0x01,0x5c,0x80,0x88};
uchar dispbitcode[]={0xfe,0xfd,0xfb,0xf7};
uchar dispbuf[8]={0,0,0,0};
uchar dispbitcnt;
uchar second,minite,hour,day;
uchar clockhour,clockminite;
uint tcnt;
uchar mstcnt;
uchar t;
uint a;
//上面的是定義各個(gè)變量和數(shù)碼管緩存
void yanshi(uint t)
{
for(;t>0;t--);
}//延時(shí)子程序

void beep()
{
while(hour<clockhour){
for(a=0;a<1000;a++)
{yanshi(5);
P1_4=~P1_4;}
for(a=0;a<1000;a++)
{yanshi(5);
P1_4=~P1_4;}
for(a=0;a<5000;a++)
{yanshi(6);
P1_4=~P1_4;}
if(P3_6==0){break;}}
while(minite<clockminite){
for(a=0;a<1000;a++)
{yanshi(5);
P1_4=~P1_4;}
for(a=0;a<1000;a++)
{yanshi(5);
P1_4=~P1_4;}
for(a=0;a<5000;a++)
{yanshi(6);
P1_4=~P1_4;}
if(P3_6==0){break;}}}//報(bào)警子程序(P1.4接的是BEEP,P3.6為O時(shí)跳出)

void baojing()
{
if(P1_7==0){
yanshi(500);
if(P1_7==0){
while(1){
if(P1_7==1){
while(1){
beep();
if(P3_6==0)
{break;}}}
if(P3_6==0){break;}}}}}//報(bào)警執(zhí)行子程序(用P1.7做信號(hào)檢測(cè)腳,同樣當(dāng)P3.6為0時(shí)跳出)

void clock()
{
if(P3_3==0){yanshi(500);
if(P3_3==0){clockminite++;
if(clockminite==60)
{clockminite=0;}
dispbuf[3]=clockminite%10;
dispbuf[2]=clockminite/10;             
while(P3_3==0);}}
if(P3_6==0){yanshi(500);
if(P3_6==0){clockhour++;
if(clockhour==24){clockhour=0;}
dispbuf[1]=clockhour%10;
dispbuf[0]=clockhour/10;
while(P3_6==0);}}}//設(shè)定鬧鐘子程序

void key()
{
if(P3_6==0){yanshi(500);
if(P3_6==0){second++;
if(second==60){second=0;}           
while(P3_6==0);}}
if(P3_5==0){yanshi(1000);
if(P3_5==0){minite++;
if(minite==60){minite=0;}
dispbuf[3]=minite%10;
dispbuf[2]=minite/10;
while(P3_5==0);}}
if(P3_7==0){yanshi(500);
if(P3_7==0){hour++;
if(hour==24){hour=0;}
dispbuf[1]=hour%10;
dispbuf[0]=hour/10;
while(P3_7==0);}}
if(P3_4==0){yanshi(500);
if(P3_4==0){day++;
if(day==7){day=0; }
P2=DATA[day];
while(P3_4==0);}}
}//設(shè)定時(shí)間子程序

void laozhong()
{
if(hour==clockhour){
if(minite==clockminite){
for(a=0;a<1000;a++)
{yanshi(5);
P1_4=~P1_4;}
for(a=0;a<1000;a++)
{yanshi(5);
P1_4=~P1_4;}
for(a=0;a<5000;a++)
{yanshi(6);
P1_4=~P1_4;}}}}//鬧鐘子程序

void display()
{
dispbuf[3]=minite%10;
dispbuf[2]=minite/10;
dispbuf[1]=hour%10;
dispbuf[0]=hour/10;
P2=DATA[day];
}//顯示子程序

void displayclock()
{
dispbuf[7]=clockminite%10;
dispbuf[6]=clockminite/10;
dispbuf[5]=clockhour%10;
dispbuf[4]=clockhour/10;
}//鬧鐘顯示子程序

void time()
{
tcnt++;
if(tcnt==4000){tcnt=0;
second++;
if(second==60){second=0;
minite++;
if(minite==60){minite=0;
hour++;
if(hour==24){hour=0;
day++;
if(day==7){day=0;}}}}
display();}}//時(shí)間子程序

void t0(void) interrupt 1 using 0
{
mstcnt++;
if(mstcnt==4){mstcnt=0;
P0=dispcode[dispbuf[dispbitcnt]];
P1=dispbitcode[dispbitcnt];
P2=DATA[day];
dispbitcnt++;}
if(dispbitcnt==4){dispbitcnt=0;}
time();displayclock();}//中斷

void main(void)
{
TMOD=0x02;
TH0=0x06;
TL0=0x06;
TR0=1;
ET0=1;
EA=1;
while(1)
{
key();clock();
if(P1_6==0)
{while(1){laozhong();
if(P3_6==0){break;}}}
if(P3_2==0){yanshi(10000);
if(P3_2==0){while(1)
{baojing();
if(P3_6==0)
{break;}
}}}}}
//S1:?jiǎn)?dòng)報(bào)警器(P3.2)
//S2: clock minite 加(P3.3)
//S3: 星期加(P3.4)
//S4:time minite 加(P3.5)
//S5: clock hour 加/退出報(bào)警器(P3.6)
//S6:time hour 加(P3.7)
//P1-7為信號(hào)檢測(cè)腳


[此貼子已經(jīng)被作者于2009-6-9 9:40:09編輯過(guò)]
回復(fù)

使用道具 舉報(bào)

ID:12101 發(fā)表于 2009-5-28 08:56 | 顯示全部樓層
不錯(cuò)!!!
回復(fù)

使用道具 舉報(bào)

ID:12101 發(fā)表于 2009-5-28 08:56 | 顯示全部樓層
如果能用匯編寫(xiě)就更有挑戰(zhàn)性了。
回復(fù)

使用道具 舉報(bào)

ID:13539 發(fā)表于 2009-5-28 15:48 | 顯示全部樓層
來(lái)看看
回復(fù)

使用道具 舉報(bào)

ID:13521 發(fā)表于 2009-5-28 18:33 | 顯示全部樓層
學(xué)習(xí)下
回復(fù)

使用道具 舉報(bào)

ID:13508 發(fā)表于 2009-5-28 20:52 | 顯示全部樓層

新手想學(xué)習(xí)一下~謝謝了

回復(fù)

使用道具 舉報(bào)

ID:12253 發(fā)表于 2009-5-28 23:07 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

ID:12322 發(fā)表于 2009-5-29 10:28 | 顯示全部樓層

好東西多傳傳啊

回復(fù)

使用道具 舉報(bào)

ID:13578 發(fā)表于 2009-5-29 14:04 | 顯示全部樓層

好東西多傳傳啊

回復(fù)

使用道具 舉報(bào)

ID:12718 發(fā)表于 2009-5-29 17:03 | 顯示全部樓層
拜讀一下
回復(fù)

使用道具 舉報(bào)

ID:12718 發(fā)表于 2009-5-29 17:11 | 顯示全部樓層
提個(gè)建議好嗎;unsigned int 何不在前面先宏定義為
#define uint unsigned int
編程可以少寫(xiě)字嘛
回復(fù)

使用道具 舉報(bào)

ID:10558 發(fā)表于 2009-5-30 15:54 | 顯示全部樓層
有我需要的部分,謝謝
回復(fù)

使用道具 舉報(bào)

ID:7019 發(fā)表于 2009-5-30 16:22 | 顯示全部樓層
學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

ID:13622 發(fā)表于 2009-5-30 17:27 | 顯示全部樓層

學(xué)習(xí)了

回復(fù)

使用道具 舉報(bào)

ID:8455 發(fā)表于 2009-5-30 21:07 | 顯示全部樓層
看下,怎么樣。
回復(fù)

使用道具 舉報(bào)

ID:13633 發(fā)表于 2009-5-30 21:38 | 顯示全部樓層

不錯(cuò)不錯(cuò)

回復(fù)

使用道具 舉報(bào)

ID:5727 發(fā)表于 2009-5-30 22:26 | 顯示全部樓層

good

回復(fù)

使用道具 舉報(bào)

ID:951 發(fā)表于 2009-5-31 08:23 | 顯示全部樓層
學(xué)習(xí)中!!!
回復(fù)

使用道具 舉報(bào)

ID:13679 發(fā)表于 2009-5-31 21:43 | 顯示全部樓層
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

ID:3659 發(fā)表于 2009-5-31 21:55 | 顯示全部樓層

我也是新手啊

回復(fù)

使用道具 舉報(bào)

ID:7193 發(fā)表于 2009-6-1 04:33 | 顯示全部樓層
來(lái)看看~~~~~
回復(fù)

使用道具 舉報(bào)

ID:11531 發(fā)表于 2009-6-2 09:04 | 顯示全部樓層

學(xué)習(xí)一下!

回復(fù)

使用道具 舉報(bào)

ID:13814 發(fā)表于 2009-6-5 15:33 | 顯示全部樓層
也是新手,學(xué)學(xué)。
回復(fù)

使用道具 舉報(bào)

ID:13857 發(fā)表于 2009-6-6 14:13 | 顯示全部樓層
新手

回復(fù)

使用道具 舉報(bào)

ID:12101 發(fā)表于 2009-6-7 14:15 | 顯示全部樓層
不錯(cuò)呀!!!
回復(fù)

使用道具 舉報(bào)

ID:13897 發(fā)表于 2009-6-7 16:53 | 顯示全部樓層
來(lái)看看咯
回復(fù)

使用道具 舉報(bào)

ID:12866 發(fā)表于 2009-6-8 16:28 | 顯示全部樓層
很想學(xué)學(xué)
回復(fù)

使用道具 舉報(bào)

ID:12866 發(fā)表于 2009-6-8 19:19 | 顯示全部樓層

美中不足:
  對(duì)于新手程序應(yīng)該有解釋,不能說(shuō)每一句都要解釋,最起碼的要有,這個(gè)程序上 P1_4;P1_7;P3_3;P3_4;P3_5P3_6P3_7;以及P0;P1;P2;由于沒(méi)有電路原理圖,他們都是什么作用?應(yīng)該加以注釋;這樣會(huì)更好一些,便于初學(xué)者入門,哈哈!當(dāng)讓行家一看就知道是怎么連接的

回復(fù)

使用道具 舉報(bào)

ID:13329 發(fā)表于 2009-6-8 21:25 | 顯示全部樓層

看看,有實(shí)用先仿制

回復(fù)

使用道具 舉報(bào)

ID:13318 發(fā)表于 2009-6-8 22:31 | 顯示全部樓層
參考一下
回復(fù)

使用道具 舉報(bào)

ID:8456 發(fā)表于 2009-6-9 09:34 | 顯示全部樓層
yimajiadian 
說(shuō)的是,我當(dāng)時(shí)是嫌麻煩,所以沒(méi)有寫(xiě)上,我從新修改了下
回復(fù)

使用道具 舉報(bào)

ID:14011 發(fā)表于 2009-6-9 19:53 | 顯示全部樓層
以下是引用wuchengnian在2009-5-31 21:55:35的發(fā)言:

我也是新手啊

回復(fù)

使用道具 舉報(bào)

ID:14016 發(fā)表于 2009-6-9 20:11 | 顯示全部樓層
回復(fù)

使用道具 舉報(bào)

ID:14031 發(fā)表于 2009-6-9 23:40 | 顯示全部樓層
 看一下
回復(fù)

使用道具 舉報(bào)

ID:14076 發(fā)表于 2009-6-10 20:53 | 顯示全部樓層
學(xué)習(xí)一下,看看是什么來(lái)著
回復(fù)

使用道具 舉報(bào)

ID:3751 發(fā)表于 2009-6-11 08:44 | 顯示全部樓層
212313113131
回復(fù)

使用道具 舉報(bào)

ID:14101 發(fā)表于 2009-6-11 11:20 | 顯示全部樓層
來(lái)學(xué)習(xí)的
回復(fù)

使用道具 舉報(bào)

ID:14127 發(fā)表于 2009-6-12 00:42 | 顯示全部樓層

要學(xué)習(xí)學(xué)習(xí)!

回復(fù)

使用道具 舉報(bào)

ID:11838 發(fā)表于 2009-6-12 09:25 | 顯示全部樓層
來(lái)借鑒學(xué)習(xí)~~
回復(fù)

使用道具 舉報(bào)

ID:14142 發(fā)表于 2009-6-12 12:42 | 顯示全部樓層
來(lái)看看
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产资源视频 | 日韩欧美精品在线播放 | 日本黄色免费片 | 欧美寡妇偷汉性猛交 | 日韩欧美国产精品 | 精品香蕉一区二区三区 | 久久精品欧美一区二区三区不卡 | www.男人天堂.com | 久久福利电影 | 中文字幕国产精品 | 国产精品揄拍一区二区 | 天天躁人人躁人人躁狂躁 | 羞羞视频在线观看 | av先锋资源 | 精品国产一区二区三区久久狼黑人 | 欧美精品在线免费观看 | 国产一区久久久 | 亚洲国产精品成人无久久精品 | 久久久夜色精品亚洲 | 97国产精品视频人人做人人爱 | 草草在线观看 | 日韩一区二区在线视频 | 午夜影视大全 | 蜜桃免费av | 日本欧美黄色片 | 精品在线一区 | 欧美综合在线视频 | 欧美精品一区在线 | 91九色在线观看 | 亚洲视频在线看 | 亚洲第一天堂无码专区 | 欧美一级片在线 | 四季久久免费一区二区三区四区 | 影音先锋久久 | 国产精品精品视频一区二区三区 | 久久精品高清视频 | 欧美精品三区 | 免费黄色录像视频 | 色综合色综合色综合 | 81精品国产乱码久久久久久 | 日韩一区二区三区在线 |