德源科技 
德源科技德源科技
公司簡介訂購方式匯款確認檔案下載 聯絡我們保固說明訂單查詢討論區
電子郵件:

密碼:

忘記密碼
加入會員
  首頁 | 原廠 Arduino® | 特殊服務設計 | 轉接座及轉接板/麵包板 | 開發板/燒錄器/模擬器 | 相容 For Arudino® 週邊及配件 | OKdo系列 | Saleae 系列 | Adafruit 系列 | ArduCam 系列 | Camera 攝像頭 | ROCK 系列 | Debix系列開發板 | Raspberry Pi 樹莓派 | Banana Pi 香蕉派 | BeagleBone 狗骨頭 | M5Stack系列 | Micro:bit (BBC)系列 | NVIDIA Jetson Nano系列 | Pololu 系列 | Pycom 系列 | Seeed 系列 | Sparkfun 系列 | WeMos 系列 | 傳感器 | Cubieboard/CubieTruck系列 | Firefly 系列 | Microduino系列 | Orange Pi 香橙派 | PCB板 | PLC 系列 | Robot 機器人 | UDOO 系列 | RedBearLab 系列 | LattePanda系列 | LittleBits 系列 | Libelium 系列 | Luxonis 相機系列 | PCduino | RobotElectronics 系列 | MageDok 顯示屏 | LCD/LCM/TFT/LVDC | Dimension Engineer 系列 | 通訊模組 | 影音器材(含轉換器) | 線材/連結器/轉換器 | 測量儀器 | 馬達/馬逹控制器/電源模組 | 其他 | 焊接/維修工具 | IC零件 | LED燈-裝飾燈 | 工作站迷你電腦 mini PC | 擴大器 | 雕刻機 | 電池 | 電腦周邊 | 檢定考套件 | 停售商品
  首頁 » 商品目錄 » 其他 » DIY開發套件 » 013213957
商品搜尋 進階
 |  購物車內容  |  結帳   
商品分類
  DC-ATX電源模塊
  DIY開發套件
  DMX512/DMX-512
  SIM 轉卡/延伸/延長
  熱電偶
  監視器
  臭氧發生器
  螢光管 電子時鐘
  製冷
  觸控開關
  計時器 / 定時器
  警報器/報警器
  賓士 車用 SD
  轉接頭
  遙控器
  金屬型材外殼 / 防水盒
  鋰電池 保護板
  門鈴 / 電鈴 / 打鈴器
  離子風扇、風蛇/風扇Fan
  雲端機
  電磁閥
  靜電帶/靜電手環
  變壓器
Arduino
Pololu
Seeed
Sparkfun
robot-electronics
dimensionengineering
libelium
adafruit
udoo
redbearlab
Arducam
goembed
Saleae
okdo
服務台
公司簡介
退換貨服務
訂購方式
聯絡我們
匯款確認
[<< 前一頁]  瀏覽相同分類產品 13 / 18  [下一頁 >>]
●多功能六位電子鐘套件
NT$350
運費NT$50
條碼013213957
產品說明1

本產品是專為各大院校和電子愛好者所開發的一款學習用的產品,做為一種學習套件使用。

 

以下是部分C語言源程序

#include

code senen_seg[10]={0x81,0xe7,0x92,0xa2,0xe4,0xa8,0x88,0xe3,0x80,0xa0}; //P1.7(冒號)口高電平

bit key1_enter=0,key2_enter=0,key3_enter=0,countdown_mark=0,stopwatch_mark=0,count_mark=0,bell_mark=0; //狀態標誌
unsigned char program=0,program_variable=0,count_bit=0,count=0;
unsigned char hour=10,minute=10,second=0; //時間變量
unsigned char delayed_hour=22,delayed_minute=10,delayed_second=0; //定時變量
unsigned char count_hour=0,count_minute=0,count_second=0; //計時計數變量
unsigned int count_time=0,count_count=0;

void delay(unsigned int t) //延時子程序
{
unsigned int i,j;
for(i=0;ifor(j=0;j<10;j++)
;
}

void time0_init(void){ //定時計數0器初始化
EA=0;
TR0=0;
TMOD=0x02;
TH0=0x4;
TL0=0x4;
ET0=1;
TR0=1;
EA=1;
}

static void timer0_isr(void) interrupt TF0_VECTOR using 1 //定時計數0器中斷函數
{
count_time++; //時鐘計時程序
if(count_time>=4020){
count_time=0;
second++;
if(second>=60){
second=0;
minute++;
if(minute>=60){
minute=0;
hour++;
if(hour>=24)hour=0;
}
}
}
if(delayed_hour==hour && delayed_minute==minute && second<4) P3_7=0;
else P3_7=1;
if(countdown_mark==1){ //倒計時程序
count_count++;
if(count_count>=4000 && (count_second!=0|count_minute!=0|count_hour!=0)){
count_count=0;
count_second--;
if(count_second>=60){
count_second=59;
count_minute--;
if(count_minute>=60){
count_minute=59;
count_hour--;
if(count_hour>=100) count_hour=99;
}
}
}
if(count_second==0&&count_minute==0&&count_hour==0&&count_count<=12000) P3_7=0;
else P3_7=1;
if(count_count>=15000) count_count=14000;
}
if(stopwatch_mark==1){ //秒錶程序
count_count++;
if(count_count>=40){
count_count=0;
count_second++;
if(count_second>=100){
count_second=0;
count_minute++;
if(count_minute>=60){
count_minute=0;
count_hour++;
if(count_hour>=60) count_hour=0;
}
}
}
}
}

unsigned char show_key (void){
unsigned char x=0,y=0;
switch (program){
case 0: P1&=senen_seg[second%10]; //時鐘秒的個位
break;
case 1: if(count_time>=2000) P1&=senen_seg[second%10]; //校正秒的個位
break;
case 2: if(delayed_hour==24) P1=0xfe; //鬧鐘秒的個位
else P1&=senen_seg[delayed_second%10];
break;
case 3: if(count_bit>=0) P1&=senen_seg[count_second%10];//倒計時秒的個位
else P1=0xff;
break;
case 4: P1&=senen_seg[count_second%10]; //秒錶秒的個位
break;
case 5: P1&=senen_seg[count_second%10]; //計數器個位
break;
}
P3_3=0;
delay(10);
if(P3_5==0){ //功能鍵1識別
key1_enter=1;
if(count<=254)count++;
}
if(P3_4==0) key2_enter=1; //功能鍵2識別
if(P3_2==0) key3_enter=1; //功能鍵3識別
P3_3=1;
P1|=0xff;

switch (program){
case 0: P1&=senen_seg[second/10]; //時鐘秒的十位
break;
case 1: if(count_time>=2000) P1&=senen_seg[second/10]; //校正秒的十位
break;
case 2: if(delayed_hour==24) P1=0xfe; //鬧鐘秒的十位
else P1&=senen_seg[delayed_second/10];
break;
case 3: if(count_bit>=1) P1&=senen_seg[count_second/10];//倒計時秒的十位
else P1=0xff;
break;
case 4: P1&=senen_seg[count_second/10]; //秒錶秒的十位
break;
case 5: P1&=senen_seg[count_second/10]; //計數器十位
break;
}
P3_1=0;
delay(10);
P3_1=1;
P1|=0xff;

switch (program){
case 0: P1&=senen_seg[minute%10]; //時鐘分的個位
break;
case 1: if(count_time>=2000) P1&=senen_seg[minute%10]; //校正分的個位
break;
case 2: if(delayed_hour==24) P1=0xfe; //鬧鐘分的個位
else P1&=senen_seg[delayed_minute%10];
break;
case 3: if(count_bit>=2) P1&=senen_seg[count_minute%10];//倒計時分的個位
else P1=0xff;
break;
case 4: P1&=senen_seg[count_minute%10]; //秒錶分的個位
break;
case 5: P1&=senen_seg[count_minute%10]; //計數器百位
break;
}
P3_2=0;
delay(10);
P3_2=1;
P1|=0xff;

switch (program){
case 0: P1&=senen_seg[minute/10]; //時鐘秒的個位
break;
case 1: if(count_time>=2000) P1&=senen_seg[minute/10]; //校正秒的個位
break;
case 2: if(delayed_hour==24) P1=0xfe; //鬧鐘秒的個位
else P1&=senen_seg[delayed_minute/10];
break;
case 3: if(count_bit>=3) P1&=senen_seg[count_minute/10];//倒計時秒的個位
else P1=0xff;
break;
case 4: P1&=senen_seg[count_minute/10]; //秒錶秒的個位
break;
case 5: P1&=senen_seg[count_minute/10]; //計數器千位
break;
}
P3_5=0;
delay(10);
P3_5=1;
P1|=0xff;

switch (program){
case 0: P1&=senen_seg[hour%10]; //時鐘時的個位
break;
case 1: if(count_time>=2000) P1&=senen_seg[hour%10]; //校正時的個位
break;
case 2: if(delayed_hour==24) P1=0xfe; //鬧鐘時的個位
else P1&=senen_seg[delayed_hour%10];
break;
case 3: if(count_bit>=4) P1&=senen_seg[count_hour%10];//倒計時時的個位
else P1=0xff;
break;
case 4: P1&=senen_seg[count_hour%10]; //秒錶時的個位
break;
case 5: P1&=senen_seg[count_hour%10]; //計數器萬位
break;
}
P3_0=0;
delay(10);
if(P3_4==1 && key2_enter==1){
x=3; //確認功能鍵2識別,返回3
key2_enter=0;
}
P3_0=1;
P1|=0xff;

switch (program){
case 0: P1&=senen_seg[hour/10]; //時鐘時的個位
break;
case 1: if(count_time>=2000) P1&=senen_seg[hour/10]; //校正時的個位
break;
case 2: if(delayed_hour==24) P1=0xfe; //鬧鐘時的個位
else P1&=senen_seg[delayed_hour/10];
break;
case 3: if(count_bit>=5)P1&=senen_seg[count_hour/10]; //倒計時時的個位
else P1=0xff;
break;
case 4: P1&=senen_seg[count_hour/10]; //秒錶時的個位
break;
case 5: P1&=senen_seg[count_hour/10]; //計數器萬位
break;
}
P3_4=0;
delay(10);
if(P3_5==1 && key1_enter==1){ //確認功能鍵1識別,執行退出或進入下一個功能
if(count>=127) x=1; //確認功能鍵1為長按,返回1
else x=2; //確認功能鍵1為短按,返回2
key1_enter=0;
count=0;
}
if(P3_2==1 && key3_enter==1){
x=4; //確認功能鍵3識別,返回4
key3_enter=0;
}
P3_4=1;
P1|=0xff;
if(program<=1 && count_time>=2000) P1&=0xff; //校時和顯示功能時鐘時冒號閃爍
if(program<=1 && count_time<=2000) P1&=0x7f;
if(program==2) P1&=0x7f; //設置鬧鐘功能時冒號長亮
if(program==3) P1&=0xff; //設置倒計時功能時冒號長滅
if(program==4) P1&=0x7f; //設置秒錶功能時冒號長亮
if(program==5) P1&=0xff; //設置計數時冒號長滅
y=x;
x=0;
return y;
}

void main(){ //主程序
P1=0xff;
P3=0xff;
time0_init();
while(1){
switch(program){
case 0: while(program==0){ //時鐘菜單
switch(show_key()){
case 0: break;
case 1: program=0;
break;
case 2: program=1;
break;
}
}
break; //校時菜單
case 1: while(program==1){
switch(show_key()){
case 0: break;
case 1: program=0;
break;
case 2: program=2;
break;
case 3: hour++;
if(hour>=24)hour=0;
break;
case 4: minute++;
if(minute>=60)minute=0;
break;
}
}
break;
case 2: while(program==2){ //鬧鐘菜單
switch(show_key()){
case 0: break;
case 1: program=0;
break;
case 2: program=3;
break;
case 3: delayed_hour++;
if(delayed_hour>=25)delayed_hour=0;
break;
case 4: delayed_minute++;
if(delayed_minute>=60)delayed_minute=0;
break;
}
}
break;
case 3: while(program==3){ //倒計時菜單
switch(show_key()){
case 0: break;
case 1: program=0;
break;
case 2: program=4;
break;
case 3: count_bit++;
if(count_bit>=7)count_bit=0;
break;
case 4: switch(count_bit){
case 0: count_second+=1;
break;
case 1: count_second+=10;
break;
case 2: count_minute+=1;
break;
case 3: count_minute+=10;
break;
case 4: count_hour+=1;
break;
case 5: count_hour+=10;
break;
case 6: break;
}
if(count_hour>=100) count_hour-=100;
if(count_minute>=60) count_minute-=60;
if(count_second>=60) count_second-=60;
break;
}
if(count_bit==6) countdown_mark=1;
else countdown_mark=0;
}
break;
case 4: count_hour=0; //秒錶菜單
count_minute=0;
count_second=0;
while(program==4){
switch(show_key()){
case 0: break;
case 1: program=0;
break;
case 2: program=5;
break;
case 3: stopwatch_mark=~stopwatch_mark;
break;
case 4: if(stopwatch_mark==0){
count_hour=0;
count_minute=0;
count_second=0;
}
break;
}
}
break; //計數器菜單
case 5: count_hour=0;
count_minute=0;
count_second=0;
while(program==5){
switch(show_key()){
case 0: break;
case 1: program=0;
break;
case 2: program=0;
break;
case 3: count_second++;
if(count_second>=100){
count_second=0;
count_minute++;
if(count_minute>=100){
count_minute=0;
count_hour++;
if(count_hour>=100)count_hour=0;
}
}
break;
case 4: count_hour=0;
count_minute=0;
count_second=0;
break;
}
if(P3_7==0){
while(P3_7==0) show_key();
count_second++;
if(count_second>=100){
count_second=0;
count_minute++;
if(count_minute>=100){
count_minute=0;

 

 

問與答

目前沒有任何商品問答!
本商品上架日期:2014-05-16.
評價
建議購買的商品清單!可以參考看看喔
(圖書+元件工具+2款線)新款麵包板製作套件:麵包板電子製作 130例實驗套件 DIY電子製作套件
(圖書+元件工具+2款線)新款麵包板製作套件:麵包板電子製作 130例實驗套件 DIY電子製作套件
●ST原裝 重低音TDA2030 2.1功放板 三聲道功放DIY(散件套件) 全新TDA2030A 飛利浦NE5532
●ST原裝 重低音TDA2030 2.1功放板 三聲道功放DIY(散件套件) 全新TDA2030A 飛利浦NE5532
▽●(特價,現貨)6管超外差收音機套件 六管AM調幅收音機 DIY製作 S66E S66D 散件
▽●(特價,現貨)6管超外差收音機套件 六管AM調幅收音機 DIY製作 S66E S66D 散件
>(停產)家用電子廚房秤 蛋糕磅秤 帶刻度盤 烘培秤台秤 計量電子稱3kg/0.1g
>(停產)家用電子廚房秤 蛋糕磅秤 帶刻度盤 烘培秤台秤 計量電子稱3kg/0.1g
購物車 更多
空的...
查詢訂單狀態
 
請輸入您的訂單編號
商品通知狀態 更多
通知●多功能六位電子鐘套件
更新時通知我
推薦給朋友
 
推薦這個商品給朋友

聯絡方式:手機:0933807110 或 0968222607
E-mail:[email protected](主要信箱) & [email protected](次要) & [email protected] & [email protected] & [email protected]