1樓:匿名使用者
按鍵,顯示屏,喇叭或蜂鳴器,電源,微控制器及外圍器件.
這個是硬體必須的.
你要根據要求來選擇硬體,如果用led顯示,就比較耗電,用乾電池做電源肯定不行.
如果用lcd顯示,那麼就要選擇帶lcd驅動的微控制器.
軟體實現很簡單,時間的準確性,和省電這塊可能會比較棘手.
我們自己研發的多定時多錄音鬧鐘已經賣了很多了.
2樓:匿名使用者
數碼管是一種廉價的十進位制數字顯示裝置,它的基本工作原理是:乙個數碼管有 7 段,我們將它對應成八位二進位制的 8 位。這 8 位的編號從左向右分別是 7、6、5、4、3、2、1、0。
數碼管的一段對應二進位制的一位,如果要點亮某一段,則需要將相應的二進位制位置 1,其餘不亮的段要將對應的位置 0。下圖表示了 7 個二進位制在數碼管上對應的位置:
2,+---+
3| |4
| 1 |
+---+
5| |6
| 0 |
+---+
例如,我們要顯示出數字「1」,則應該點亮數碼管的第4和6段。這樣對應的8位二進位製數就是:0101 0000。如果用十六進方式表示出來就是 50。
同理,要顯示出「3」,應該點亮:0、1、2、4、6;對應的二進表示為:0101 0111,用十六進位制表示就是 57。
3樓:做而論道
先設計電路,然後程式設計、除錯。
4樓:匿名使用者
你好!板子焊好了嗎?都有什麼器件?發一下原理圖
用c語言寫51微控制器鬧鐘程式
5樓:匿名使用者
//實現功能:本程式實現在p1口模擬乙個流水燈程式
#include
#define p_out p1 //巨集定義輸出的i/o口為p1
//******************時間延遲函式**********************
//描 述:用指令實現延時一段時間
//入口引數:int i,為時間延遲引數
void delay_time(int i)
//******************主函式***************************
//描 述:實現在p1口模擬乙個流水燈程式
void main(void)
//******************按鍵掃瞄函式**********************
//描 述:對4*4鍵盤進行掃瞄,程式只適合4*4鍵盤使用,
// 鍵盤佔用一組完整的i/o口,在使用這個程式前
// 要巨集定義p_key為使用者實際連線鍵盤的i/o口
// #define p_key pn;//(n=0、1、2、3)
//返回引數:若有檢測到按鍵就返回按鍵的編號,否則返回0xff
unsigned char read_key(void)
//有按下,延時去抖//
delay_time(5000);
//確認是否有建按下//
p_key=0xf0;
key=p_key;
if(key==0xf0)
//真的有按鍵按下,掃瞄是哪一行有按鍵按下//
for(j=0;j<4;j++)
else
else}}
}//沒掃瞄到按鍵,//
return(0xff);
}//***************七段數碼管顯示函式*******************
//描 述:對四位的掃瞄型七段數碼管進行掃瞄顯示,在使用
// 前要定義乙個全域性變數display_num
// unsigned int display_num;
//入口引數:unsigned int num,要顯示的數字(0-9999)
void display(unsigned int num)
choose_p|=3;//先關顯示
led_date=change(display_num/1000);//得到千位的數字,並轉換成七段碼型
choose_p&=0xfe;//選通千位
delay_time(50);//延時一段時間
choose_p|=1;//關顯示
display_num=display_num%1000;
led_date=change(display_num/100);//得到百位的數字,並轉換成七段碼型
choose_p&=0xfd;//選通百位
delay_time(50);//延時一段時間
choose_p|=2;//關顯示
display_num=display_num%100;
led_date=change(display_num/10);//得到十位的數字,並轉換成七段碼型
choose_p&=0xfb;//選通十位
delay_time(50);//延時一段時間
choose_p|=4;//關顯示
led_date=change(display_num%10);//得到個位的數字,並轉換成七段碼型
choose_p&=0xf7;//選通十位
delay_time(50);//延時一段時間
choose_p|=8;//關顯示
}//****************數字-碼型轉換函式*******************
//描 述:把數字轉換成七段碼型,此程式僅配合共陽的七
// 段數碼管使用
//入口引數:unsigned char i,要轉換的數字(0-9),
//返回引數:轉換後的七段碼型,0xff表示轉換失敗
unsigned char change(unsigned char i)
//描 述:把鍵盤輸入的鍵盤碼,用led顯示出來
int main(void)
}//兩個程式加起來就可以完成你要求的功能,有說明,你認真看一下吧。
6樓:蓮花的葉
#include"reg51.h"
char tab1[10]=;
unsigned char j,sfm,sfm2,s=0,m=0,h=0,sh=0,sl=0,mh=0,ml=0,hh=1,hl=1;
char ah1=0; unsigned long a;
void mdelay(unsigned int delay) }}void led();
main()
hl=hh=0;
}}}}}}
void int0() interrupt 0 using 2}void int1() interrupt 2 using 1if(sh==6)
break;
case 2:
ml++;
if(ml==10)
if(mh==6)
break;
case 0:
hl++;
if(hl==10)
if(hh==2&&hl==4)
break;}}
void led()}}
這是我們現在做的設計鬧鐘
7樓:爬行的山羊
彙編做的可以不.有秒錶.有鬧鐘.
8樓:匿名使用者
暈,初學者如果是學習的話還是建議從易到難。
你這個題目高手都不一定能很快設計很快搞定的。
而且你的分數也不會吸引人。
9樓:
你想幹嘛?找人幫忙設計還是要請教問題?
用51微控制器,at89c52寫乙個簡單鬧鐘(c語言) 50
10樓:沉默d術士
沒做過微控制器 不過猜測的話 顯示可以用迴圈 設定i為妙的引數 計數從1 m為分鐘引數 n為小時引數 賦值的話i%=60 m=i/60 m%=60 n=m/60 n%=24
微控制器的計數 我不太清楚 不過要是清楚微控制器的執行原理的話 下面的東西應該不難
以上只是猜測 沒看過微控制器 比如迴圈
應該是可以顯示的
如果你得到了程式 私信我乙份唄 我郵箱[email protected] 謝謝啦!
請教at89c51微控制器的數字時鐘程式帶鬧鐘的功能 用c語言編寫
11樓:匿名使用者
你看看郭天祥的(十天學會微控制器),裡面呢有完整的這個程式
用at89c51微控制器設計一電子鬧鐘,c語言程式和**
12樓:匿名使用者
是proteus的嗎
微控制器的c語言 時鐘函式帶有鬧鐘功能,當我們調好鬧鐘以後,想設定響鈴的時間,程式的思路
13樓:
這個可以用中斷實現
設定初始最小中斷時間 比如 1分鐘
在新增乙個按鈕中斷 調節中斷時間
求51微控制器精準鬧鐘c語言**!
14樓:爬行的山羊
想精確可以使用數字實時時鐘晶元。如果不用的不用的話使用無緣蜂鳴器直接就送一就可以,或者使用555時鐘晶元組成**電路。這樣在鬧鐘是不會佔用cpu時間,不會影響帶中斷、
15樓:
微控制器用來算時間還是可以精確到乙個機器週期的就看你的演算法了
不同的晶振程式是不一樣的
而且用c寫完要看彙編才更加精確
而且最好不要使用通訊晶振
選在24m 12m這種比較好
請問在微控制器C語言程式設計中這個與運算怎麼用
是按位 與 即只保留是1的位。後邊實際上就是 if else if else if else if 的功用相同 c裡 就是按位與,就是兩個變數位都為1,就是1,如果不同時是1,就為0 temp temp 0xf0 就是高四位有效,第四位被遮蔽了,不管temp的低四位是什麼,輸出都是0.而高四位,和你...
用C語言做51微控制器做流水燈控制向左移動一位,右邊補0的一段程式作業 求指教
右邊補0,直接移位就可以temp 1 如果流水燈只有乙個亮,下面的程式就是對的,移位之後補1.include reg51.h void delay unsigned char m main void delay unsigned char m 延時子程式 加一句判斷在p1那句下面 temp temp...
PIC微控制器c語音變成組合語言,微控制器大神進,如何將C語言變
有個組合語言轉換器 你自己找找 這個轉化也不是很精確 很容易是自己迷糊,建議還是用c好,現在還用彙編 out了 如何用keil uvision2把c語言的微控制器程式轉換為組合語言 彙編是不可能用軟體自動轉成c語言的,想轉成c就自己寫,反正是自己的程式,程式流程內是不用變容的。keil uvisio...