|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
電子鬧鐘程序 |
| 作者:renhair 欄目:單片機(jī) |
用C51編寫的源程序: #pragma db code #include <reg51.h > /*包含器件配置文件*/ #define uCHAR unsigned CHAR #define uint unsigned int sbit P1_0=P1^0; /*定義P口*/ sbit P1_1=P1^1; sbit P1_2=P1^2; sbit P1_3=P1^3; sbit P1_4=P1^4; sbit P1_5=P1^5; sbit P1_6=P1^6; sbit P1_7=P1^7; sbit P3_0=P3^0; sbit P3_1=P3^1; sbit P3_2=P3^2; sbit P3_3=P3^3; sbit P3_4=P3^4; sbit P3_5=P3^5; sbit P3_6=P3^6; sbit P3_7=P3^7; CHAR DATA_7SEG[10]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90};/*0~9的數(shù)碼管段碼*/ uCHAR hour=0,min=0,sec=0; /*時、分、秒單元清零*/ uCHAR deda=0; /*5mS計數(shù)單元清零*/ uCHAR t_hour=0,t_min=0; /*鬧時時、分單元清零*/ bit d_05s=0; /*0.5秒標(biāo)志*/ bit o_f=0; /*鬧時啟/停標(biāo)志*/ uCHAR set=0; /*模式設(shè)定標(biāo)志*/ uCHAR m=0; uCHAR flag=0; /*RAM掉電標(biāo)志*/ void delay(uint k); /*延時子函數(shù)*/ void conv(); /*走時單元轉(zhuǎn)換*/ void p_out(); /*判別鬧時到否子函數(shù)*/ void dirve(); /*走時時間輸出驅(qū)動子函數(shù)*/ void t_dirve(); /*鬧時時間輸出驅(qū)動子函數(shù)*/ /*鬧時啟/停子函數(shù)*/ void time1_of() { uCHAR m; if(P3_7==0)delay(1); if(P3_7==0)o_f=1; for(m=0;m<30;m++) { t_dirve(); P1=DATA_7SEG[t_min/10];P3=0xfd;delay(1); if(P3_1==0){if(o_f==1)P1_7=0;}else P1_7=1; delay(1); } if(P3_5==0)delay(1); if(P3_5==0) o_f=0; for(m=0;m<30;m++) { t_dirve(); P1=DATA_7SEG[t_min/10];P3=0xfd;delay(1); if(P3_1==0){if(o_f==1)P1_7=0;else P1_7=1;} delay(1); } } /*走時函數(shù)*/ void time() { conv(); /*走時單元轉(zhuǎn)換*/ dirve(); /*走時時間輸出驅(qū)動子函數(shù)*/ p_out(); /*判別鬧時到否子函數(shù)*/ } /*定時器T0 5mS初始化*/ void init_timer() { TMOD=0x01; TH0=-(4800/256); TL0=-(4800%256); IE=0x82; TR0=1; } /*掃描按鍵子函數(shù)*/ void scan_key() { delay(1); if(P3_4==0)set++; if(set>=4)set=0; if(set==1)flag=0x55; F0:if(P3_4==0)goto F0; /*按鍵未釋放,在此等候*/ } /*延時子函數(shù)*/ void delay(uint k) {uint i,j; for(i=0;i<k;i++) |
| 2樓: | >>參與討論 |
| 作者: xc_cz 于 2006/7/14 8:26:00 發(fā)布:
貼這么長程序是什么意思? 是程序共享還是有問題討論? |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |