-
大小: 398KB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-06-01
- 語言: 其他
- 標簽:
資源簡介
總體要求:基于51設(shè)計一個定時開關(guān)用于定時控制四個回路的電源通斷。
基本要求:
1、主要應(yīng)用于定時控制四個回路的電源通斷。
2、以當前時間為基準,以24小時為周期,可以任意設(shè)定哪個回路于某時刻開,到某時刻關(guān)。如可以設(shè)置第一個回路在8:30-11:30開,14:30-18:00開,其他時間段為關(guān)。
3、能通過按鍵任意設(shè)置某回路某時間段的開關(guān)狀態(tài),利用數(shù)碼管顯示要直接明了。
4、請輔以操作說明書給于說明操作步驟,請同學(xué)們以產(chǎn)品研發(fā)的思路制作,面向用戶設(shè)計人機交互,力求做到功能強大,操作簡單。
備注說明:
硬件制作時,可以用一個回路接繼電器控制,其他用發(fā)光二極管代替。為了人身安全,試驗和演示時,只需聽到繼電器吸合聲音即可,無需接入220V電源。

代碼片段和文件信息
#include
#include
#define?WEI?P2
#define?DATA?P0
#define?delaystime?2????//延時
#define?ON?1????????????//led狀態(tài)
#define?OFF?0
#define?MAX_SETTING_TIME?1440?//24小時就是1440分鐘?不能超過這個界限
#define?DEC_QU?10?????????????//取余取整用的?不動
sbit?KEY_ENTER?=?P3?^?0;
sbit?KEY_INC?=?P3?^?1;
sbit?KEY_DEC?=?P3?^?2;
sbit?LED1?=?P3?^?4;
sbit?LED2?=?P3?^?5;
sbit?LED3?=?P3?^?6;
sbit?LED4?=?P3?^?7;
unsigned?int?tcount?=?0;?//20ms增加1
unsigned?int?rtc_sec?=?2?etc_min?=?29?rtc_hour?=?12;?//時間
unsigned?int?LED1_LOWR_?=?123;?//按分鐘換后的下限值?比如123代表?02:03
unsigned?int?LED1_HIGH_?=?127;?//按分鐘換后的下限值?比如123代表?02:03
unsigned?int?LED2_LOWR_?=?241;?//按分鐘換后的下限值?比如123代表?02:03
unsigned?int?LED2_HIGH_?=?246;?//按分鐘換后的下限值?比如123代表?02:03
unsigned?int?LED3_LOWR_?=?364;?//按分鐘換后的下限值?比如123代表?02:03
unsigned?int?LED3_HIGH_?=?369;?//按分鐘換后的下限值?比如123代表?02:03
unsigned?int?LED4_LOWR_?=?483;?//按分鐘換后的下限值?比如123代表?02:03
unsigned?int?LED4_HIGH_?=?489;?//按分鐘換后的下限值?比如123代表?02:03
unsigned?int?RTC_TIME;?//用于控制LED?講實時時鐘轉(zhuǎn)化成分鐘進行比較
unsigned?int?MODE_ENTER?=?0;?//enter切換模式?0代表實時時間?1?2??3??4??5?6?7?8?代表八個時間設(shè)置模式?控制顯示
char?code?table[]=
{???0xc00xf90xa40xb00x990x920x820xf80x800x900x880x830xc60xa10x860x8e};
char?code?wei[]=
{???0x800x400x200x100x080x040x020x01};
//***********************************************************************
//??//演示1ms時間
//***********************************************************************
void?delay(unsigned?int?aa)
{
????unsigned?int?dsa;
????while?(aa--)
????{
????????for?(dsa?=?125;?dsa?>?0;?dsa--)
????????????;
????}
}
//***********************************************************************
//??//定時器設(shè)置?設(shè)置為外部計數(shù)器?和定時器
//***********************************************************************
void?init()
{
????//??//???定時器初始化
????TMOD?=?0x10;
????TH1?=?(65536?-?50000)?/?256;???????????????//計數(shù)初值重裝載
????TL1?=?(65536?-?50000)?%?256;
????TR1?=?1;
????TF1?=?0;
????EA?=?1;
????ET1?=?1;
????//??//???IO口初始化
????LED1?=?OFF;
????LED1?=?OFF;
????LED1?=?OFF;
????LED1?=?OFF;
????
}
//***********************************************************************
//??//?定時器定時50ms中斷
//***********************************************************************
void?jishi()
interrupt?3
{
????TH1=(65536-50000)/256;???????????????//計數(shù)初值重裝載
????TL1=(65536-50000)%256;
????TF1=0;
????///////////////////實時時間生成
????tcount++;
????if(tcount==20)//1s達到
????{
????????tcount=0;
????????rtc_sec++;
????????if(rtc_sec==60)
????????{
????????????rtc_sec=0;
????????????etc_min++;
????????????if(etc_min==60)
????????????{
????????????????etc_min=0;
????????????????rtc_hour++;
????????????????if(rtc_hour==24)
????????????????{
????????????????????rtc_hour=0;
????????????????}
????????????}
????????????
????????}
????}
????/////////////////////
}
//***********************************************************************
//??//刷新數(shù)碼管顯示
//*****************************
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-04-24?16:17??025?四路定時開關(guān)\
?????文件???????17422??2018-06-23?15:28??025?四路定時開關(guān)\單片機課程設(shè)計題目要求(共四個題目)(1).docx
?????目錄???????????0??2018-11-18?11:07??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\
?????文件???????22952??2018-06-24?02:45??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\AAAA.pdsprj
?????文件????????2196??2019-04-24?16:17??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\AAAA.pdsprj.ANOOP.PC1.workspace
?????文件???????22954??2018-06-24?02:34??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\Backup?Of?AAAA.pdsbak
?????文件???????23023??2018-06-24?02:33??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\Last?Loaded?AAAA.pdsbak
?????文件????????3740??2018-06-01?13:56??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\LCD1602.LST
?????文件????????4749??2018-06-01?13:56??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\LCD1602.OBJ
?????文件???????25703??2018-06-24?12:33??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\main.c
?????文件???????43035??2018-06-24?12:30??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\main.LST
?????文件???????41328??2018-06-24?12:30??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\main.OBJ
?????文件???????35773??2018-06-12?21:23??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\main.SRC
?????文件???????34083??2018-06-24?12:30??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\PWM_MOTOS
?????文件???????11483??2018-06-24?12:30??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\PWM_MOTOS.hex
?????文件??????????45??2018-06-24?12:30??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\PWM_MOTOS.lnp
?????文件???????37016??2018-06-24?12:30??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\PWM_MOTOS.M51
?????文件?????????205??2018-07-03?17:06??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\PWM_MOTOS.plg
?????文件???????55635??2018-06-24?17:24??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\PWM_MOTOS.uvopt
?????文件???????13231??2018-06-05?00:22??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\PWM_MOTOS.uvproj
?????文件???????55643??2018-06-24?17:23??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\PWM_MOTOS_uvopt.bak
?????文件???????13571??2018-06-01?02:01??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\PWM_MOTOS_uvproj.bak
?????文件????????3759??2018-06-01?13:56??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\STCEEPROM.LST
?????文件????????3718??2018-06-01?13:56??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\STCEEPROM.OBJ
?????文件????????2547??2018-06-24?01:06??025?四路定時開關(guān)\時鐘顯示在數(shù)碼管上\實時時鐘顯示在數(shù)碼管.c
?????文件??????274617??2018-11-21?20:51??如何運行仿真.docx
?????文件?????????691??2019-04-24?15:13??說明書.txt
評論
共有 條評論