波,我花了一个多礼拜的时间都无法攻克这个问题,后来在***指导老师的指导下,我慢慢的攻克了这一个难题,接下来就是软件的实现,有些程序自己还能慢慢的编写出来,不过很多自己还是不怎么擅长,同样也是在****老师的指导下,软件部分也攻克下了,最后在写论文时指导老师也给予了我很大的帮助,这次毕业设计能顺利完成,衷心感谢翁志远老师对我的帮助和指导!
参考文献
[1] 郭天祥,新概念51单片机C语言教程:入门、提高、开发、扩展全攻略.电
子工业出版社.2009
[14] 谢维成,《单片机原理与应用》,清华大学出版社,2006
附录一:电路原理图
23
附录二:源程序
1. Main.c
#include %u16 timecount; bit Statu=0; bit Hz=0; sbit Sound = P1^0;
//*********定时器0初始化********* void TimerInit() { }
//*********主函数******************** void main(void) {
u8 key; TimerInit(); Sound=0; while(1) {
key=Keyscan();
if(key!=KEYPUTDOWN) {
KEYPUTDOWN=key;
TMOD=0x01; //定时器0 16位计数模式 TH0=(65535-1428)/256; //700Hz TL0=(65535-1428)%6; //700Hz EA=1;
ET0=1; //打开定时器0中断 TR0=1;
25
}
}
}
Statu=1; //打开门铃 Hz=0; //700Hz delay_ms(350); //350ms Hz=1; //500Hz delay_ms(500); //500ms Statu=0; //关闭门铃
//***************************
//************定时器0中断服务函数***** void Timer0Function(void) interrupt 1 { }
2. 按键扫描程序 #include \
if(Statu==1) { } if(!Hz) {
TH0=(65535-1428)/256; //700Hz TL0=(65535-1428)%6; } else {
TH0=(65535-2000)/256; //500Hz TL0=(65535-2000)%6; }
Sound=~Sound;