娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月29日(星期日)

正在發(fā)生

2019年09月29日 | 課程設(shè)計(jì)題三十三:基于單片機(jī)的電子鐘

發(fā)布者:科技飛翔 來源: eefocus關(guān)鍵字:單片機(jī)  電子鐘  STC89C51 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

1)設(shè)計(jì)任務(wù):設(shè)計(jì)一個(gè)能?顯示當(dāng)前的年、月、日、時(shí)、分、秒,具有鬧鐘功能的的電子時(shí)鐘。


2)指標(biāo)要求


(1)可實(shí)現(xiàn)12小時(shí)制和24小時(shí)制轉(zhuǎn)換。


(2)年、月、日、時(shí)、分均可以單獨(dú)設(shè)置,設(shè)置時(shí)該項(xiàng)目閃爍。?


(3)計(jì)時(shí)精度誤差:≤1秒/日。


(4)液晶顯示。?


(5)能實(shí)現(xiàn)鬧鐘功能。


(6)電源:1節(jié)5號(hào)干電池(1.5V)。


一、Protues仿真圖(添加溫度顯示功能):


二、Protues仿真圖(12-24進(jìn)制轉(zhuǎn)換):

三、程序源碼(添加溫度顯示功能):

因?yàn)樽⑨尫浅5娜@里就不再進(jìn)行講解了。

/*******************************************************************************

================================================================================

【平    臺(tái)】STC89C51平臺(tái)

【編    寫】Sumjess

【E-mail  】1371129880@qq.com

【軟件版本】V2.0

【最后更新】2018年09月06日

【相關(guān)信息參考下列地址】

【網(wǎng)    站】

  Sumejss博客  https://blog.csdn.net/qq_38351824

  電子發(fā)燒友  http://bbs.elecfans.com/zhuti_mcu_1.html

  中國電子網(wǎng)  http://bbs.21ic.com/icfilter-typeid-11-214.html

---------------------------------------------------------------------------------

【dev.env.】MDK4.14及以上版本

【Target  】STC89C51

第一次修訂:2019/05/23

第二次修訂:2018/05/24

第三次修訂:2018/05/26

================================================================================

********************************************************************************/

#include          //調(diào)用單片機(jī)頭文件

#define uchar unsigned char  //無符號(hào)字符型 宏定義 變量范圍0~255

#define uint  unsigned int //無符號(hào)整型 宏定義 變量范圍0~65535

#include "E2PROM52_Sumjess.h"

#include "Dateconversion_Sumjess.h"

#include "intrins.h"

 

 

bit flag_200ms ;

bit flag_100ms ;

sbit beep = P1^4;   //蜂鳴器定義

bit flag_beep_en;

uint clock_value;     //用作鬧鐘用的

 

sbit dq   = P2^0;   //18b20 IO口的定義

 

 

uint temperature ;    //溫度變量

uchar flag_nl;        //農(nóng)歷 陽歷顯示標(biāo)志位

 

 

uchar menu_1,menu_2;

 

 

 

uchar key_time,flag_value;      //用做連加的中間變量

bit key_500ms  ;

uchar n_nian,n_yue,n_ri; //農(nóng)歷顯示的函數(shù)

 

 

#include "DS1302_Sumjess.h"

#include "LCD1602_Sumjess.h"

 

 

 

 

/******************把數(shù)據(jù)保存到單片機(jī)內(nèi)部eeprom中******************/

void write_eeprom()

{

SectorErase(0x2000);

byte_write(0x2000, fen1);

byte_write(0x2001, shi1);

byte_write(0x2002, open1);

byte_write(0x2058, a_a);

}

 

/******************把數(shù)據(jù)從單片機(jī)內(nèi)部eeprom中讀出來*****************/

void read_eeprom()

{

fen1  = byte_read(0x2000);

shi1  = byte_read(0x2001);

open1  = byte_read(0x2002);

a_a      = byte_read(0x2058);

}

 

/**************開機(jī)自檢eeprom初始化*****************/

void init_eeprom()

{

read_eeprom(); //先讀

if(a_a != 1) //新的單片機(jī)初始單片機(jī)內(nèi)問eeprom

{

fen1  = 3;

shi1  = 8;

open1  = 1;

a_a = 1;

write_eeprom();    //保存數(shù)據(jù)

}

}

 

/***********************18b20初始化函數(shù)*****************************/

void init_18b20()

{

bit q;

dq = 1; //把總線拿高

delay_uint(1);     //15us

dq = 0; //給復(fù)位脈沖

delay_uint(80); //750us

dq = 1; //把總線拿高 等待

delay_uint(10); //110us

q = dq; //讀取18b20初始化信號(hào)

delay_uint(20); //200us

dq = 1; //把總線拿高 釋放總線

}

 

/*************寫18b20內(nèi)的數(shù)據(jù)***************/

void write_18b20(uchar dat)

{

uchar i;

for(i=0;i<8;i++)

{ //寫數(shù)據(jù)是低位開始

dq = 0; //把總線拿低寫時(shí)間隙開始 

dq = dat & 0x01; //向18b20總線寫數(shù)據(jù)了

delay_uint(5); // 60us

dq = 1; //釋放總線

dat >>= 1;

}

}

 

/*************讀取18b20內(nèi)的數(shù)據(jù)***************/

uchar read_18b20()

{

uchar i,value;

for(i=0;i<8;i++)

{

dq = 0; //把總線拿低讀時(shí)間隙開始 

value >>= 1; //讀數(shù)據(jù)是低位開始

dq = 1; //釋放總線

if(dq == 1) //開始讀寫數(shù)據(jù) 

value |= 0x80;

delay_uint(5); //60us 讀一個(gè)時(shí)間隙最少要保持60us的時(shí)間

}

return value; //返回?cái)?shù)據(jù)

}

 

/*************讀取溫度的值 讀出來的是小數(shù)***************/

uint read_temp()

{

uint value;

uchar low;    //在讀取溫度的時(shí)候如果中斷的太頻繁了,就應(yīng)該把中斷給關(guān)了,否則會(huì)影響到18b20的時(shí)序

init_18b20();    //初始化18b20

write_18b20(0xcc);    //跳過64位ROM

write_18b20(0x44);    //啟動(dòng)一次溫度轉(zhuǎn)換命令

delay_uint(50);    //500us

 

init_18b20();    //初始化18b20

write_18b20(0xcc);    //跳過64位ROM

write_18b20(0xbe);    //發(fā)出讀取暫存器命令

EA = 0;

low = read_18b20();    //讀溫度低字節(jié)

value = read_18b20();  //讀溫度高字節(jié)

EA = 1;

value <<= 8;    //把溫度的高位左移8位

value |= low;    //把讀出的溫度低位放到value的低八位中

value *= 0.625;        //轉(zhuǎn)換到溫度值 小數(shù)

return value;    //返回讀出的溫度 帶小數(shù)

}

 

 

----由于篇幅的問題,只顯示一部分,請(qǐng)下載后自行觀看,程序非常的全-----

-----關(guān)注公眾號(hào)免費(fèi)下載-----

四、程序源碼(12-24進(jìn)制轉(zhuǎn)換):

因?yàn)樽⑨尫浅5娜@里就不再進(jìn)行講解了。

/*******************************************************************************

================================================================================

【平    臺(tái)】STC89C51平臺(tái)

【編    寫】Sumjess

【E-mail  】1371129880@qq.com

【軟件版本】V2.0

【最后更新】2018年09月06日

【相關(guān)信息參考下列地址】

【網(wǎng)    站】

  Sumejss博客  https://blog.csdn.net/qq_38351824

  電子發(fā)燒友  http://bbs.elecfans.com/zhuti_mcu_1.html

  中國電子網(wǎng)  http://bbs.21ic.com/icfilter-typeid-11-214.html

---------------------------------------------------------------------------------

【dev.env.】MDK4.14及以上版本

【Target  】STC89C51

第一次修訂:2019/05/23

第二次修訂:2018/05/24

第三次修訂:2018/05/26

================================================================================

********************************************************************************/

#include          //調(diào)用單片機(jī)頭文件

#define uchar unsigned char  //無符號(hào)字符型 宏定義 變量范圍0~255

#define uint  unsigned int //無符號(hào)整型 宏定義 變量范圍0~65535

#include "E2PROM52_Sumjess.h"

#include "Dateconversion_Sumjess.h"

#include "intrins.h"

 

bit flag_200ms ;

bit flag_100ms ;

sbit beep = P1^4;   //蜂鳴器定義

bit flag_beep_en;

uint clock_value;     //用作鬧鐘用的

 

uchar flag_nl,flag_n2;        //農(nóng)歷 陽歷顯示標(biāo)志位

 

 

uchar menu_1,menu_2;

 

 

 

uchar key_time,flag_value;      //用做連加的中間變量

bit key_500ms  ;

uchar n_nian,n_yue,n_ri; //農(nóng)歷顯示的函數(shù)

 

 

 

#include "DS1302_Sumjess.h"

#include "LCD1602_Sumjess.h"

 

 

 

/******************把數(shù)據(jù)保存到單片機(jī)內(nèi)部eeprom中******************/

void write_eeprom()

{

SectorErase(0x2000);

byte_write(0x2000, fen1);

byte_write(0x2001, shi1);

byte_write(0x2002, open1);

byte_write(0x2058, a_a);

}

 

/******************把數(shù)據(jù)從單片機(jī)內(nèi)部eeprom中讀出來*****************/

void read_eeprom()

{

fen1  = byte_read(0x2000);

shi1  = byte_read(0x2001);

open1  = byte_read(0x2002);

a_a      = byte_read(0x2058);

}

 

/**************開機(jī)自檢eeprom初始化*****************/

void init_eeprom()

{

read_eeprom(); //先讀

if(a_a != 1) //新的單片機(jī)初始單片機(jī)內(nèi)問eeprom

{

fen1  = 3;

shi1  = 8;

open1  = 1;

a_a = 1;

write_eeprom();    //保存數(shù)據(jù)

}

}

 

 

 

/******************1ms 延時(shí)函數(shù)*******************/

void delay_1ms(uint q)

{

uint i,j;

for(i=0;i for(j=0;j<120;j++);

}

 

/******************寫星期函數(shù)*******************/

void write_week(uchar hang,uchar add,uchar week)//寫星期函數(shù)

{

if(hang==1)   

write_com(0x80+add);

else

write_com(0x80+0x40+add);   

switch(week)

{

case 1:write_data('M');//星期數(shù)為1時(shí),顯示

   write_data('O');

   write_data('N');

   break;

   

case 2:write_data('T');//星期數(shù)據(jù)為2時(shí)顯示

   write_data('U');

   write_data('E');

   break;

case 3:write_data('W');//星期數(shù)據(jù)為3時(shí)顯示

   write_data('E');

   write_data('D');

   break;

case 4:write_data('T');//星期數(shù)據(jù)為4是顯示

   write_data('H');

   write_data('U');

   break;

case 5:write_data('F');//星期數(shù)據(jù)為5時(shí)顯示

   write_data('R');

   write_data('I');

   break;

case 6:write_data('S');//星期數(shù)據(jù)為6時(shí)顯示

   write_data('T');

   write_data('A');

   break;

case 7:write_data('S');//星期數(shù)據(jù)為7時(shí)顯示

   write_data('U');

   write_data('N');

   break;

}

}

 

/*************時(shí)鐘顯示***************/

void init_1602_ds1302()

{

if(flag_n2 == 0)  //顯示24

{

write_sfm2_ds1302(1,1,shi);    //顯示時(shí)

write_sfm2_ds1302(1,4,fen);    //顯示分

write_sfm2_ds1302(1,7,miao);    //顯示秒

write_week(2,12,week);

}

else

{

if(shi==0x20) shi=0x08;

else if(shi==0x13) shi=0x01;

else if(shi==0x14) shi=0x02;

else if(shi==0x15) shi=0x03;

else if(shi==0x16) shi=0x04;

else if(shi==0x17) shi=0x05;

else if(shi==0x18) shi=0x06;

else if(shi==0x19) shi=0x07;

else if(shi==0x21) shi=0x09;

else if(shi==0x22) shi=0x10;

else if(shi==0x23) shi=0x11;

 

write_sfm2_ds1302(1,1,shi);    //顯示時(shí)

write_sfm2_ds1302(1,4,fen);    //顯示分

write_sfm2_ds1302(1,7,miao);    //顯示秒

write_week(2,12,week);

}

if(flag_nl == 0)  //顯示陽歷

{

write_sfm2_ds1302(2,2,nian);   //顯示年

write_sfm2_ds1302(2,5,yue);    //顯示月

write_sfm2_ds1302(2,8,ri);    //顯示日

}

else //顯示農(nóng)歷

{

write_sfm2_ds1302(2,2,n_nian); //顯示年

write_sfm2_ds1302(2,5,n_yue); //顯示月

write_sfm2_ds1302(2,8,n_ri); //顯示日 

}

 

}    

 

/*************定時(shí)器0初始化程序***************/

void init_time0()   

{

EA   = 1;   //開總中斷

TMOD = 0X01;   //定時(shí)器0、工作方式1

ET0  = 1;   //開定時(shí)器0中斷 

TR0  = 1;   //允許定時(shí)器0定時(shí)

}

 

/*************鬧鐘報(bào)警函數(shù)***************/

void menu_dis()

{

static uchar mm,value;

if(flag_100ms == 1)   //100ms執(zhí)行一次

{

flag_100ms = 0;

if(open1 == 1) //如果鬧鐘打開

{

if((miao == 0) && (fen == fen1) && (shi == shi1)) 

{

flag_beep_en = 1; //有報(bào)警 打開蜂鳴器響的標(biāo)志位

}

if(flag_beep_en == 1) //鬧鐘以被打開

{

clock_value++;

if(clock_value <= 30)  

beep = ~beep;    //蜂鳴器叫3秒

else if(clock_value > 30)

{

beep = 1;     //蜂鳴器停1秒

if(clock_value > 40)

{

clock_value = 0;

 

}

}

//  1 分鐘后自動(dòng)關(guān)閉鬧鐘

value ++;

if(value >= 10)

{

value = 0;

mm++;

if(mm >= 60)

{

mm = 0;

[1] [2]
關(guān)鍵字:單片機(jī)  電子鐘  STC89C51 引用地址:課程設(shè)計(jì)題三十三:基于單片機(jī)的電子鐘

上一篇:課程設(shè)計(jì)題二:7人多數(shù)表決器
下一篇:課程設(shè)計(jì)題一:八人搶答器

推薦閱讀

通宵熬夜頻繁加班過度疲勞……每個(gè)拿命熬過夜的人,都不知道明天和猝死哪個(gè)先來。如果你也跟大部分80,90后中年人一樣,邊看著猝死的新聞,邊拖著被掏空的身體熬夜加班。不想死在工位上,唯一可能救你一命的,只有一副足夠?qū)I(yè)和精準(zhǔn)的心率監(jiān)測手環(huán)。縱觀智能手環(huán)圈,這方面做的比較好的主要是Fitbit、華米AMAZFIT兩個(gè)品牌,最近發(fā)布的蘋果表4代也加入了心...
信息安全是打造智能汽車最大的挑戰(zhàn)和難點(diǎn)之一。9月27日,在云棲大會(huì)上,小鵬汽車正式發(fā)布“金融級(jí)別安全的數(shù)字車鑰匙”。據(jù)億歐汽車現(xiàn)場了解,該款數(shù)字車鑰匙最大的亮點(diǎn)是,應(yīng)用IFAA(互聯(lián)網(wǎng)金融身份認(rèn)證聯(lián)盟)金融級(jí)別安全技術(shù),安全性達(dá)到金融級(jí)別。同時(shí),小鵬P7將是首例將IFAA金融安全技術(shù)與物聯(lián)網(wǎng)場景結(jié)合的智能汽車。據(jù)小鵬汽車副總裁紀(jì)宇介紹,公司自...
盡管尚未有幾款手機(jī)得以升級(jí)Android 11正式版系統(tǒng),但谷歌已經(jīng)迫不及待的地預(yù)告Android 12了。官方透露,基于開發(fā)者的反饋,在明年的Android 12系統(tǒng)上,將允許更容易地從第三方商店安裝APP。谷歌稱,統(tǒng)計(jì)發(fā)現(xiàn),大多數(shù)Android用戶會(huì)在手機(jī)上裝至少兩個(gè)應(yīng)用商店。關(guān)于如何改善體驗(yàn)的細(xì)節(jié),谷歌則未予披露。一般而言,使用三方APP商店的問題,一是安全性不...
未來的汽車將是清潔和安全的汽車,由先進(jìn)的汽車功能電子化和自動(dòng)駕駛技術(shù)賦能。 一功率器件賦能電動(dòng)汽車電動(dòng)車可幫助實(shí)現(xiàn)零排放,其市場發(fā)展是令人興奮和充滿生機(jī)的,隨著電動(dòng)車銷售不斷增長,必須推出滿足駕駛員需求的基礎(chǔ)設(shè)施,以提供一個(gè)快速充電站網(wǎng)絡(luò),使他們能夠快速完成行程,而沒有 “續(xù)航里程焦慮癥”。這 一領(lǐng)域的要求正在迅速發(fā)展, 需要超...

史海拾趣

問答坊 | AI 解惑

RS232 起始位 停止位 校驗(yàn)位 需要自己實(shí)現(xiàn)嗎?

ModBus幀格式為:從機(jī)地址(1字節(jié)),功能碼(1字節(jié)),起始地址(2字節(jié)),數(shù)據(jù)長度(2字節(jié)),CRC碼(2字節(jié)) 然后數(shù)據(jù)傳輸方式規(guī)定為串行異步:1位起始位,8位數(shù)據(jù)位,1偶校驗(yàn)位,1位停止位。 我的疑問是: 1)CRC只對(duì)數(shù)據(jù)位進(jìn)行校驗(yàn),那就是 ...…

查看全部問答∨

啟動(dòng)后用戶的目錄出錯(cuò)

我添加了兩個(gè)用戶,于是在/home下有兩個(gè)目錄: my2410和xjli。 其中在my2410目錄下建一個(gè)腳本文件env_sh, 內(nèi)容如下: # !/bin/bash PRJROOT=~/ KERNEL=$PRJROOT/kernel ROOTFS=$PRJROOT/rootfs TMP=$PRJROOT/tmp export PRJROOT KERNEL ROOTF ...…

查看全部問答∨

產(chǎn)品低溫測試通不過,何解

各位:    我的產(chǎn)品做高低溫測試實(shí)驗(yàn)時(shí) 只要到-19度就會(huì)出錯(cuò) 請(qǐng)問各位,可能出現(xiàn)問題的地方都哪些呢 謝謝啦…

查看全部問答∨

大家來討論,符號(hào)表最大有多長?溢出如何處理?

    系統(tǒng)符號(hào)表創(chuàng)建過程如下代碼,而symTblCreate 函數(shù)參數(shù)SYM_TBL_HASH_SIZE_LOG2被定義為8 ,難道只有8 power of 2 =256 個(gè)符號(hào)表?xiàng)l目?     如果不是,那么符號(hào)表最長有多少?如果module中的symbols 太多添加進(jìn)去使之溢出 ...…

查看全部問答∨

如何讓開發(fā)的驅(qū)動(dòng)程序和應(yīng)用程序一一對(duì)應(yīng)呢

我開發(fā)一個(gè)驅(qū)動(dòng)程序.sys和一個(gè)應(yīng)用程序.exe,應(yīng)用程序可以調(diào)用加載到內(nèi)核的驅(qū)動(dòng) 程序,我看資料說驅(qū)動(dòng)程序的派遣函數(shù)是運(yùn)行在應(yīng)用程序的進(jìn)線程的上下文中了,那 么我可以獲得應(yīng)用程序的模式(PE加載到內(nèi)核中)的資料么?然后再驅(qū)動(dòng)里做點(diǎn)東西 可 ...…

查看全部問答∨

AMD風(fēng)扇驅(qū)動(dòng)

我現(xiàn)在有個(gè)AMD的風(fēng)扇沒用,我想拿來做電機(jī)用,風(fēng)扇有4根線,都是些什么線?AMD風(fēng)扇是三相異步電機(jī)嗎?怎么讓他轉(zhuǎn)?負(fù)載能力多大?都沒有這方面的資料,高手指教下…

查看全部問答∨

超聲波測距資料-小小聚集

呵呵,也許用得著哦!…

查看全部問答∨

臺(tái)式電腦怎樣無線上網(wǎng)?2種無線上網(wǎng)方法介紹

臺(tái)式電腦怎么無線上網(wǎng)?隨著無線上網(wǎng)的流行,目前不少地方都有無線網(wǎng)絡(luò)信號(hào)覆蓋,對(duì)于我們熟悉的筆記本電腦,平板電腦,以及智能手機(jī)都可以輕松實(shí)現(xiàn)無線或 wifi無線上網(wǎng),那么對(duì)于我們比較傳統(tǒng)的臺(tái)式電腦怎么無線上網(wǎng)呢?近日QQ群中有人問“臺(tái)式 ...…

查看全部問答∨

上位機(jī)VB編程無線傳輸數(shù)據(jù)給avr單片機(jī)的數(shù)據(jù)格式問題

上位機(jī)我用VB編程,使用無線傳輸模塊,傳輸控制信號(hào)給單片機(jī),來實(shí)現(xiàn)控制。 我的疑問是,在VB6.0里面,十六進(jìn)制用的前綴是&H,在avr128單片機(jī)里面,用的十六進(jìn)制前綴是0X。比如我用上位機(jī)發(fā)送一個(gè)十六進(jìn)制數(shù)據(jù)(如&HAA)到單片機(jī),單片機(jī)能直 ...…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 通河县| 响水县| 长汀县| 锦州市| 房山区| 桂林市| 曲阜市| 容城县| 东至县| 中江县| 乌审旗| 宁阳县| 莱阳市| 禄劝| 潮州市| 德令哈市| 伊金霍洛旗| 民勤县| 商都县| 闻喜县| 调兵山市| 禹城市| 株洲县| 全州县| 南乐县| 望城县| 九江县| 沂水县| 尚志市| 大丰市| 维西| 革吉县| 普兰县| 湘潭市| 淮安市| 瓦房店市| 通州区| 赫章县| 八宿县| 广东省| 监利县|