基於微控制器的帶有日曆功能的數字時鐘
功能:
1.年、月、日,以及24小時制時間顯示,均可調
2.自動判斷是否閏年以及閏月,理論上至2023年
//去年寫的,感覺以後要經常打理自己的部落格,與眾多coder分享交流,所以現在才拿出來,多多包含
#include#define uint unsigned int
#define uchar unsigned char
#define lcd1602_datapins p0
uchar code table=" 2016-01-01 sun";
uchar code table1=" 23:59:54";
uchar count=0;
uchar shi=23,fen=59,miao=54,nian=16,yue=1,ri=1;
uchar k1_num=0;//k1/k2/k3按下的次數
//按鍵
sbit k1=p1^1;//功能鍵
sbit k2=p1^2;//加
sbit k3=p1^3;//減
void delay1us(uint a);
void lcd1602_writecom(uchar com);/*lcd1602寫入8位命令子函式*/
void lcd1602_writedata(uchar dat); /*lcd1602寫入8位資料子函式*/
void lcd1602_init();/*lcd1602初始化子程式*/
void delay1us(uint a)
void lcd1602_writecom(uchar com) //寫入命令
void lcd1602_writedata(uchar dat) //寫入資料
void lcd1602_init() //lcd初始化子程式
lcd1602_writecom(0x80+0x40);
for (num=0;num<11;num++)
tmod=0x01;
th0=(65536-50000)/256;
tl0=(65536-50000)%256;
ea=1;//總中斷
et0=1;
tr0=1;
}void lcd1602_writesfm(uchar add,uchar dat)
void lcd1602_writenyr(uchar add,uchar dat)
void keyscan()
}if(k1_num==2)
if(k1_num==3)
if(k1_num==4)//跳轉到日
if(k1_num==5)//跳轉到月
if(k1_num==6)//跳轉到年
if(k1_num==7)
else if (yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12)
else if (yue==2)
else
lcd1602_writenyr(9,ri);
}tr0=1;
}} if(k1_num!=0)
if(k1_num==2) //分
if(k1_num==3)//時
if(k1_num==4)//日
else if (yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12)
else if (yue==2)
else
}lcd1602_writenyr(9,ri);
lcd1602_writecom(0x80+10); //游標前移一位
}if(k1_num==5)//月
if(k1_num==6)//年}}
//k3鍵指令
if(k3==0)
if(k1_num==2)
if(k1_num==3)
if(k1_num==4)//日
if(k1_num==5)//月
if(k1_num==6)//年}}
}}void main()
lcd1602_writenyr(6,yue);
}
}else if (yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12)
lcd1602_writenyr(6,yue);
}
}else if (yue==2)
lcd1602_writenyr(6,yue); }}
else
lcd1602_writenyr(6,yue);
}
}
}lcd1602_writenyr(9,ri);
}lcd1602_writesfm(4,shi);
}lcd1602_writesfm(7,fen);
}lcd1602_writesfm(10,miao);
} }}
void timer0() interrupt 1
ps:這編輯視窗有問題啊,提交好幾次都轉成html,嘖嘖嘖···
基於微控制器的數字電壓表
此款電壓表主要是利用adc0832作為ad轉換晶元,可測範圍為0 5v lcd16025作為顯示晶元。源程式如下 include include define uint unsigned int define uchar unsigned char sbit rs p3 0 sbit rw p3 1...
基於微控制器的數字溫度計設計
基於微控制器的數字溫度計 摘要 本文介紹一種基於at89c2051微控制器的一種溫度測量及報警電路,該電路採用ds18b20作為溫度監測元件,測量範圍 55 125 使用4位led模組顯示,能通過鍵盤設定溫度報警上下限。正文著重給出了軟硬體系統的各部分電路,介紹了整合溫度感測器ds18b20的原理,...
微控制器課程設計數字心率計 基於微控制器的脈搏儀心率計
引言 祖國醫學診脈是指醫生用手指切按患者的脈象 探查了解病情。診脈對分析病理有積極意義。但是診脈受人的主觀因素影響大。脈搏心率測量儀採用光電感測器測量脈搏。測量原理是 心臟跳動引起血壓變化,血壓變化又引起血液濃度變化 光電感測器能夠探測到血液濃度的變化,這種變化觸發光電感應一即紅外線訊號強弱的變化。...