女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]/********************************************lcd1602_8h.h* * LCD1602操作庫函數(shù),8位數(shù)據(jù)聯(lián)接關(guān)系: * * LCD1602:DB0-DB7 M16:PB0-PB7 * * LCD1602:RS M16:PD3 * * LCD1602:E M16:PD6 * * LCD1602:R/WGND

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

*lcd1602_8h.h*
* LCD1602操作庫函數(shù),8位數(shù)據(jù)聯(lián)接關(guān)系: *
* LCD1602:DB0-DB7 M16:PB0-PB7 *
* LCD1602:RS M16:PD3 *
* LCD1602:E M16:PD6 *
* LCD1602:R/WGND *
*******************************************/
//LCD相關(guān)端口定義
#define RS1602 PD3 //RS接在PORTD.3上
#define E1602 PD6//E接在PORTD.6上
#define CLR_RS PORTD&=~(1<#define SET_RS PORTD|=1<#define CLR_E PORTD&=~(1<#define SET_E PORTD|=1<//簡化宏定義
#define uchar unsigned char
#define uint unsigned int

//延時(shí)函數(shù):入口i,需要定時(shí)的時(shí)長
void delay(uint i) //在1M時(shí)鐘下為i ms
{
uchar j;
for(;i;i--)
{
for(j=220;j;j--)
{;}
}
}
/*************************************
* LCD1602操作函數(shù)組 *
*************************************/
//寫數(shù)據(jù)到LCD的函數(shù):入口data,需寫入的顯示數(shù)據(jù)
void lcd_da(uchar data)
{
SET_RS; //RS置高,寫數(shù)據(jù)
delay(1);
SET_E;
PORTB=data;//數(shù)據(jù)送端口
delay(1);
CLR_E;//E下降沿寫入數(shù)據(jù)
delay(1);//延時(shí)1MS
}

//寫指令到LCD的函數(shù):入口data,需寫入的控制指令
void lcd_comm(uchar data)
{
CLR_RS; //RS清0,寫指令
delay(1);//延時(shí)1MS
SET_E;
PORTB=data;//指令送端口
delay(1);
CLR_E;//E下降沿寫入指令
delay(1);//延時(shí)1MS
}
//將時(shí)鐘數(shù)據(jù)轉(zhuǎn)換后在LCD上顯示
void timer_lcd(void)
{
lcd_comm(0x80); //寫指令:第1行地址
lcd_da(0x20); //留3個(gè)空格,使顯示數(shù)據(jù)居中
lcd_da(0x20);
lcd_da(0x20);
lcd_da(0x32); //顯示世紀(jì)位:2
lcd_da(0x30); //0

lcd_da((timer[1]>>4)+0x30); //顯示年
lcd_da((timer[1]&0x0f)+0x30);
lcd_da('/');
lcd_da((timer[2]>>4)+0x30); //顯示月
lcd_da((timer[2]&0x0f)+0x30);
lcd_da('/');
lcd_da((timer[3]>>4)+0x30); //顯示日
lcd_da((timer[3]&0x0f)+0x30);

lcd_comm(0xC0); //寫指令:第2行地址
lcd_da(20); //留1個(gè)空格

lcd_da((timer[4]>>4)+0x30); //時(shí)
lcd_da((timer[4]&0x0f)+0x30);
lcd_da(':');
lcd_da((timer[5]>>4)+0x30); //分
lcd_da((timer[5]&0x0f)+0x30);
lcd_da(':');
lcd_da((timer[6]>>4)+0x30); //秒
lcd_da((timer[6]&0x0f)+0x30);

lcd_da(20); //時(shí)間與星期間留1空格
lcd_da('W'); //星期的前導(dǎo)字
lcd_da('e');
lcd_da('e');
lcd_da('k');
lcd_da((timer[7]&0x0f)+0x30); //星期數(shù)據(jù)
}

//調(diào)整顯示函數(shù)
//入口:m為調(diào)整的數(shù)據(jù)說明,i為調(diào)整數(shù)據(jù)
void set_timer_lcd(uchar m,uchar i)
{
lcd_comm(0x80); //寫指令:第1行地址
lcd_comm(0x01); //寫指令:CLS
lcd_da(0x20); //留空格
lcd_da(0x20);
// lcd_da(0x20);
// lcd_da(0x20);
lcd_da('S'); //顯示SET:
lcd_da('E');
lcd_da('T');
lcd_da(':');
lcd_comm(0xC0); //寫指令:第2行地址
lcd_da(20); //留1個(gè)空格
switch(m)
{
case 1: //年調(diào)整
{lcd_da('Y');
lcd_da('E');
lcd_da('A');
lcd_da('R');
lcd_da('=');};break;
case 2: //月調(diào)整
{lcd_da('M');
lcd_da('O');
lcd_da('N');
lcd_da('T');
lcd_da('H');
lcd_da('=');};break;
case 3: //日調(diào)整
{lcd_da(0x20);
lcd_da('D');
lcd_da('A');
lcd_da('Y');
lcd_da('=');};break;
case 4: //小時(shí)調(diào)整
{lcd_da('H');
lcd_da('O');
lcd_da('U');
lcd_da('R');
lcd_da('=');};break;
case 5: //分調(diào)整
{lcd_da(0x20);
lcd_da('M');
lcd_da('I');
lcd_da('N');
lcd_da('=');};break;
case 7: //周調(diào)整
{lcd_da('W');
lcd_da('E');
lcd_da('E');
lcd_da('K');
lcd_da('=');};break;
default:;break;
}
lcd_da((i>>4)+0x30); //調(diào)整數(shù)據(jù)
lcd_da((i&0x0f)+0x30);
lcd_da(0x20);
lcd_da(0x20);
}

//LCD1602初始化函數(shù)
void lcd_init(void)
{
lcd_comm(0x38); //寫指令:8位數(shù)據(jù)、2行顯示、5*8點(diǎn)陣
delay(5);
lcd_comm(0x06); //寫指令:自左向右顯示
delay(5);
lcd_comm(0x0C); //寫指令:顯示開
delay(5);
lcd_comm(0x14); //寫指令:移動
delay(5);
lcd_comm(0x80); //寫指令:第1行地址
delay(5);
lcd_comm(0x01); //寫指令:CLS
}

//ds1302_h.h

//DS1302操作庫函數(shù),在用M16學(xué)習(xí)板時(shí)可直接引用
//宏定義:
//聯(lián)接DS1302的端口定義
#define ds1302_rst PC4 //定義1302的RST接在PC4
#define ds1302_io PC3 //定義1302的IO接在PC3
#define ds1302_sclk PC2//定義1302的時(shí)鐘接在PC2
#define set_ds1302_rst_ddr() DDRC|=1<#define set_ds1302_rst() PORTC|=1<#define clr_ds1302_rst() PORTC&=~(1<#define set_ds1302_io_ddr() DDRC|=1<#define set_ds1302_io() PORTC|=1<#define clr_ds1302_io() PORTC&=~(1<#define clr_ds1302_io_ddr() DDRC&=~(1<#define in_ds1302_io() PINC&(1<#define set_ds1302_sclk_ddr() DDRC|=1<#define set_ds1302_sclk() PORTC|=1<#define clr_ds1302_sclk() PORTC &=~(1<#define ds1302_sec_add 0x80 //秒數(shù)據(jù)地址
#define ds1302_min_add 0x82 //分?jǐn)?shù)據(jù)地址
#define ds1302_hr_add 0x84 //時(shí)數(shù)據(jù)地址
#define ds1302_date_add 0x86 //日數(shù)據(jù)地址
#define ds1302_month_add 0x88 //月數(shù)據(jù)地址
#define ds1302_day_add 0x8a //星期數(shù)據(jù)地址
#define ds1302_year_add 0x8c //年數(shù)據(jù)地址
#define ds1302_control_add 0x8e //控制數(shù)據(jù)地址
#define ds1302_charger_add 0x90
#define ds1302_clkburst_add 0xbe

//簡化宏定義
#define uchar unsigned char
#define uint unsigned int

/*************************************
* DS1302操作函數(shù)組 *
*************************************/
//寫入1302數(shù)據(jù)函數(shù):
//入口:add為寫入地址碼,data為寫入數(shù)據(jù)
//返回:無
void ds1302_write(uchar add,uchar data)
{
uchar i=0;
set_ds1302_io_ddr(); //配置IO為輸出
asm("nop");
asm("nop");
clr_ds1302_rst(); //清復(fù)位,停止所有操作
asm("nop");
asm("nop");
clr_ds1302_sclk(); //清時(shí)鐘,準(zhǔn)備操作
asm("nop");
asm("nop");
set_ds1302_rst(); //置復(fù)位,開始操作
asm("nop");
asm("nop");
for(i=8;i>0;i--) //此循環(huán)寫入控制碼
{
if(add&0x01)
set_ds1302_io(); //當(dāng)前位為1,置數(shù)據(jù)位
else
clr_ds1302_io(); //當(dāng)前位為0,清數(shù)據(jù)位
asm("nop");
asm("nop");
set_ds1302_sclk(); //產(chǎn)生時(shí)鐘脈沖,寫入數(shù)據(jù)
asm("nop");
asm("nop");
clr_ds1302_sclk();
asm("nop");
asm("nop");
add>>=1; //移位,準(zhǔn)備寫入下1位
}
for(i=8;i>0;i--) //此循環(huán)寫入數(shù)據(jù)碼
{
if(data&0x01)
set_ds1302_io();
else
clr_ds1302_io();
asm("nop");
asm("nop");
set_ds1302_sclk();
asm("nop");
asm("nop");
clr_ds1302_sclk();
asm("nop");
asm("nop");
data>>=1;
}
clr_ds1302_rst();
asm("nop");
asm("nop");
clr_ds1302_io_ddr(); //清輸出狀態(tài)
asm("nop");
asm("nop");
}
//從1302中讀出數(shù)據(jù):
//入口:add為讀數(shù)據(jù)所在地址
//返回:讀出的數(shù)據(jù)data
uchar ds1302_read(uchar add)
{
uchar data=0;
uchar i=0;
add+=1; //讀標(biāo)志
set_ds1302_io_ddr(); //端口輸出
asm("nop");
asm("nop");
clr_ds1302_rst(); //清復(fù)位
asm("nop");
asm("nop");
clr_ds1302_sclk(); //清時(shí)鐘
asm("nop");
asm("nop");
set_ds1302_rst(); //置復(fù)位
asm("nop");
asm("nop");
for(i=8;i>0;i--) //此循環(huán)寫入地址碼
{
if(add&0x01)
{set_ds1302_io();}
else
{clr_ds1302_io();}

asm("nop");
asm("nop");
set_ds1302_sclk();
asm("nop");
asm("nop");
clr_ds1302_sclk();
asm("nop");
asm("nop");
add>>=1;
}
clr_ds1302_io_ddr(); //端口輸入
asm("nop");
asm("nop");
for(i=8;i>0;i--) //此循環(huán)讀出1302的數(shù)據(jù)
{
data>>=1;
if(in_ds1302_io())
{data|=0x80;}
asm("nop");
asm("nop");
set_ds1302_sclk();
asm("nop");
asm("nop");
clr_ds1302_sclk();
asm("nop");
asm("nop");
}
clr_ds1302_rst();
asm("nop");
asm("nop");
return(data);
}
//檢查1302狀態(tài)
uchar check_ds1302(void)
{
ds1302_write(ds1302_control_add,0x80);
if(ds1302_read(ds1302_control_add)==0x80) return 1;
return 0;
}
//向1302中寫入時(shí)鐘數(shù)據(jù)
void ds1302_write_time(void)
{
ds1302_write(ds1302_control_add,0x00); //關(guān)閉寫保護(hù)
ds1302_write(ds1302_sec_add,0x80); //暫停
ds1302_write(ds1302_charger_add,0xa9); //涓流充電
ds1302_write(ds1302_year_add,timer[1]); //年
ds1302_write(ds1302_month_add,timer[2]); //月
ds1302_write(ds1302_date_add,timer[3]); //日
ds1302_write(ds1302_day_add,timer[7]); //周
ds1302_write(ds1302_hr_add,timer[4]); //時(shí)
ds1302_write(ds1302_min_add,timer[5]); //分
ds1302_write(ds1302_control_add,0x80); //打開寫保護(hù)
}

//秒清0,并啟動時(shí)鐘
void start_ds1302(void)
{
ds1302_write(ds1302_control_add,0x00); //關(guān)閉寫保護(hù)
ds1302_write(ds1302_sec_add,0x00); //開啟計(jì)時(shí),秒清0
ds1302_write(ds1302_control_add,0x80); //打開寫保護(hù)
}

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

/*ds1302_lcd_h.c */
/*DS1302 實(shí)用時(shí)鐘程序LCD1602版*/
/* 實(shí)驗(yàn)環(huán)境:阿發(fā)的M16學(xué)習(xí)板 */
/* 時(shí)鐘頻率:內(nèi)部 1.0000Mhz */
/* 編譯系統(tǒng):ICCAVR6.31A */
/* 功 能:通過按鍵S0-S7對時(shí)鐘數(shù)據(jù) */
/* 進(jìn)行調(diào)整,在LCD1602上顯示*/
/* 說 明:S0調(diào)整/正常,S1調(diào)整數(shù)據(jù)轉(zhuǎn)換*/
/* S2調(diào)整減, S3調(diào)整加*/
/* S7確認(rèn)調(diào)整并寫入暫停走時(shí)*/
/* S8啟動時(shí)鐘正常走時(shí)*/
/****************************************/
#include
#include
#include
#include

//簡化宏定義
#define uchar unsigned char
#define uint unsigned int
//全局變量定義
uchar timer[8]; //時(shí)鐘數(shù)據(jù)
//定義按鍵數(shù)據(jù)
uchar key,k1;
uchar k2=0;
uchar set_flag=0; //定義按鍵調(diào)整標(biāo)志

//延時(shí)函數(shù):入口i,需要定時(shí)的時(shí)長
void delay_ms(uint i) //在1M時(shí)鐘下為i ms
{
uchar j;
for(;i;i--)
{
for(j=220;j;j--)
{;}
}
}

//向1302中寫入時(shí)鐘數(shù)據(jù)
void ds1302_write_time(void)
{
ds1302_write(ds1302_control_add,0x00); //關(guān)閉寫保護(hù)
ds1302_write(ds1302_sec_add,0x80); //暫停
ds1302_write(ds1302_charger_add,0xa9); //涓流充電
ds1302_write(ds1302_year_add,timer[1]); //年
ds1302_write(ds1302_month_add,timer[2]); //月
ds1302_write(ds1302_date_add,timer[3]); //日
ds1302_write(ds1302_day_add,timer[7]); //周
ds1302_write(ds1302_hr_add,timer[4]); //時(shí)
ds1302_write(ds1302_min_add,timer[5]); //分
ds1302_write(ds1302_control_add,0x80); //打開寫保護(hù)
}
//從1302中讀出當(dāng)前時(shí)鐘
void ds1302_read_time(void)
{
timer[1]=ds1302_read(ds1302_year_add); //年
timer[2]=ds1302_read(ds1302_month_add); //月
timer[3]=ds1302_read(ds1302_date_add); //日
timer[7]=ds1302_read(ds1302_day_add); //周
timer[4]=ds1302_read(ds1302_hr_add); //時(shí)
timer[5]=ds1302_read(ds1302_min_add); //分
timer[6]=(ds1302_read(ds1302_sec_add))&0x7F; //秒
}

//將時(shí)鐘數(shù)據(jù)轉(zhuǎn)換后在LCD上顯示
void timer_lcd(void)
{
lcd_comm(0x80); //寫指令:第1行地址
lcd_da(0x20); //留3個(gè)空格,使顯示數(shù)據(jù)居中
lcd_da(0x20);
lcd_da(0x20);
lcd_da(0x32); //顯示世紀(jì)位:2
lcd_da(0x30); //0

lcd_da((timer[1]>>4)+0x30); //顯示年
lcd_da((timer[1]&0x0f)+0x30);
lcd_da('/');
lcd_da((timer[2]>>4)+0x30); //顯示月
lcd_da((timer[2]&0x0f)+0x30);
lcd_da('/');
lcd_da((timer[3]>>4)+0x30); //顯示日
lcd_da((timer[3]&0x0f)+0x30);

lcd_comm(0xC0); //寫指令:第2行地址
lcd_da(20); //留1個(gè)空格

lcd_da((timer[4]>>4)+0x30); //時(shí)
lcd_da((timer[4]&0x0f)+0x30);
lcd_da(':');
lcd_da((timer[5]>>4)+0x30); //分
lcd_da((timer[5]&0x0f)+0x30);
lcd_da(':');
lcd_da((timer[6]>>4)+0x30); //秒
lcd_da((timer[6]&0x0f)+0x30);

lcd_da(20); //時(shí)間與星期間留1空格
lcd_da('W'); //星期的前導(dǎo)字
lcd_da('e');
lcd_da('e');
lcd_da('k');
lcd_da((timer[7]&0x0f)+0x30); //星期數(shù)據(jù)
}

//時(shí)鐘調(diào)整加函數(shù):入口b需要調(diào)整的時(shí)鐘數(shù)據(jù)位置
void add_timer(uchar b)
{
switch(b)
{
case 1: //年數(shù)據(jù)加1調(diào)整,范圍00-99
{
timer[1]+=0x01;
if((timer[1]& 0x0f)==0x0A)
{
timer[1]=((timer[1]&0xF0)+0x10);
if(timer[1]>0x99)timer[1]=0x00;
}
};break;
case 2: //月數(shù)據(jù)加1調(diào)整,范圍1-12
{
timer[2]+=0x01;
if(timer[2]==0x13)timer[2]=0x01;
if((timer[2]&0x0f)==0x0A)
{
timer[2]=((timer[2]&0xF0)+0x10);
}
};break;
case 3: //日數(shù)據(jù)加1調(diào)整,范圍1-30,暫未考慮31日
{
timer[3]+=0x01;
if(timer[3]>0x30)timer[3]=0x01;
if((timer[3]&0x0f)==0x0A)
{
timer[3]=((timer[3]&0xF0)+0x10);
}
};break;
case 4: //時(shí)數(shù)據(jù)加1調(diào)整,范圍0-24
{
timer[4]+=0x01;
if(timer[4]==0x24)timer[4]=0x00;
if((timer[4]&0x0f)==0x0A)
{
timer[4]=((timer[4]&0xF0)+0x10);
}
};break;
case 5: //分?jǐn)?shù)據(jù)加1調(diào)整,范圍0-59
{
timer[5]+=0x01;
if((timer[5]&0x0f)==0x0A)
{
timer[5]=((timer[5]&0xF0)+0x10);
if(timer[5]>0x59)timer[5]=0x00;
}
};break;
case 7: //星期數(shù)據(jù)加1調(diào)整,范圍1-7
{
timer[7]+=0x01;
if(timer[7]>0x07)timer[7]=0x01;
};break;
default:;break;
}
}
//時(shí)鐘調(diào)整減函數(shù):入口b需要調(diào)整的時(shí)鐘數(shù)據(jù)位置
void dec_timer(uchar b)
{
switch(b)
{
case 1: //年數(shù)據(jù)減1調(diào)整,范圍00-99
{
timer[1]-=0x01;
if((timer[1]&0x0f)==0x0F)
{
timer[1]=(timer[1]&0xF9);
if(timer[1]>0x99)timer[1]=0x99;
}
};break;
case 2: //月數(shù)據(jù)減1調(diào)整,范圍1-12
{
timer[2]-=0x01;
if(timer[2]==0x00)timer[2]=0x12;
if((timer[2]&0x0f)==0x0F)
{
timer[2]=(timer[2]&0xF9);
}
};break;
case 3: //日數(shù)據(jù)減1調(diào)整,范圍1-30,暫未考慮31日
{
timer[3]-=0x01;
if(timer[3]==0x00)timer[3]=0x30;
if((timer[3]&0x0f)==0x0F)
{
timer[3]=(timer[3]&0xF9);
}
};break;
case 4: //時(shí)數(shù)據(jù)減1調(diào)整,范圍0-24
{
timer[4]-=0x01;
if(timer[4]>0x24)timer[4]=0x23;
if((timer[4]&0x0f)==0x0f)
{
timer[4]=(timer[4]&0xF9);
}
};break;
case 5: //分?jǐn)?shù)據(jù)減1調(diào)整,范圍0-59
{
timer[5]-=0x01;
if((timer[5]&0x0f)==0x0F)
{
timer[5]=(timer[5]&0xF9);
if(timer[5]>0x59)timer[5]=0x59;
}
};break;
case 7: //星期數(shù)據(jù)減1調(diào)整,范圍1-7
{
timer[7]-=0x01;
if(timer[7]<0x01)timer[7]=0x07;
};break;
default:;break;
}
}
/***************************************
* 按鍵讀取判斷函數(shù) *
* 函數(shù)功能:判斷按鍵是否按下 *
* 入口參數(shù):無 *
* 返 回 值:無鍵按下0,有鍵按下為1-8 *
* 說 明:需要在初始化函數(shù)中將接口置 *
* 為輸入 *
***************************************/
uchar rd_key(void)
{
uchar a,b;
a=PINA;
if(a==0xFF)
return(0);
else
{
a=~a;
switch(a)
{
case 0x01:b=1;break;
case 0x02:b=2;break;
case 0x04:b=3;break;
case 0x08:b=4;break;
case 0x10:b=5;break;
case 0x20:b=6;break;
case 0x40:b=7;break;
case 0x80:b=8;break;
default:b=0;break;
}
return(b); //返回的1-8分別對應(yīng)按鍵S0-S7
}
}

//定時(shí)器1:每秒從DS1302中讀取4次數(shù)據(jù),更新顯示
void timer1_init(void) //定時(shí)器1初始化:250毫秒定時(shí),預(yù)分頻256
{
TCCR1B = 0x00; //停止定時(shí)器
TCNT1H = 0xFC; //初值高字節(jié)
TCNT1L = 0x2F; //定時(shí)初值低字節(jié)
TCCR1A = 0x00;
TCCR1B = 0x04; //啟動定時(shí)器
}
#pragma interrupt_handler timer1_ovf_isr:9
void timer1_ovf_isr(void) //定時(shí)器1中斷入口:250MS中斷一次
{
TCNT1H = 0xFC; //重裝初值
TCNT1L = 0x2F;
ds1302_read_time(); //讀出當(dāng)前時(shí)鐘
timer_lcd(); //顯示數(shù)據(jù)轉(zhuǎn)換
}

/* 定時(shí)器0中斷配置函數(shù)
預(yù)分頻數(shù): 256
定時(shí)時(shí)間: 50mSec
功 能:在進(jìn)入調(diào)整狀態(tài)20秒內(nèi)沒操作自動回到時(shí)鐘狀態(tài)*/
void timer0_init(void)
{
TCCR0 = 0x00; //先關(guān)定器0
TCNT0 = 0x3C; //裝初值
OCR0 = 0x13; //set compare
TCCR0 = 0x04; //開定時(shí)器
}
/* 定時(shí)器0中斷入口函數(shù) */
#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
TCNT0 = 0x3C; //重裝初值
if(k2==0)
{
set_flag=0; //清調(diào)整標(biāo)志
TCCR1B = 0x04; //啟動定時(shí)器1
}
else
k2--;
}

/*************************************
* 主函數(shù) *
*************************************/
void main(void)
{
uchar a=1,b=0;
DDRA=0x00; //設(shè)置按鍵A口為帶上拉輸入:接按鍵
PORTA=0xFF;
DDRC=255; //定義C口為輸出:接LCD背光
DDRB=255; //定義B口為輸出:接LCD數(shù)據(jù)
PORTB=255;
DDRD=0xFB; //定義D口為輸出:接LCD控制,PD2為輸入,中斷按鈕
PORTD=0x04; //PD2上拉

delay_ms(500); //延時(shí)500ms,準(zhǔn)備LCD初始化
lcd_init(); //初始化LCD
delay_ms(50);

CLI(); //先關(guān)閉所有中斷
timer0_init(); //設(shè)定定時(shí)器0
timer1_init(); //設(shè)定定時(shí)器1
MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x05; //允許定時(shí)器0、定時(shí)器1中斷
SEI(); //開總中斷

while(1)
{
if(rd_key()!=0)
{
k1=rd_key(); //
delay_ms(20); //
if(rd_key()==k1)
{
key=rd_key();
switch(key)
{
case 1: //調(diào)整和結(jié)束調(diào)整處理
{
if(set_flag==0)
{
set_flag=1;
a=1;
k2=250;
TCCR1B = 0x00; //停止定時(shí)器1
set_timer_lcd(1,timer[1]); //年數(shù)據(jù)調(diào)整顯示
}
else
{
set_flag=0;
TCCR1B = 0x04; //啟動定時(shí)器
}
};break;
case 2: //調(diào)整數(shù)據(jù)切換
{
if(set_flag==1)
{
a++;
if(a==6)a=7;
if(a>=8)a=1;
set_timer_lcd(a,timer[a]);
k2=250;
}
};break;
case 3: //數(shù)據(jù)減1調(diào)整
{
if(set_flag==1)
{
dec_timer(a);
set_timer_lcd(a,timer[a]);
k2=250;
}
};break;
case 4: //數(shù)據(jù)加1調(diào)整
{
if(set_flag==1)
{
add_timer(a);
set_timer_lcd(a,timer[a]);
k2=250;
}
};break;
case 5:;break;
case 6:;break;
case 7: //寫入調(diào)整后的時(shí)鐘并暫停
{
if(set_flag==1)
{
ds1302_write_time(); //寫入調(diào)整后的時(shí)鐘并暫停
set_flag=0;
TCCR1B = 0x04; //啟動定時(shí)器
b=1;
}
};break;
case 8: //啟動時(shí)鐘
{
if(b==1)
{
start_ds1302();
b=0;
}
};break;
default:;break;
}
while(rd_key()!=0)
{
delay_ms(20);
}
}
}
}
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護(hù)是驅(qū)動電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機(jī)驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計(jì)工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉