班级:电信12-1 学号:12034490114 姓名:李玉金 选题的题目:智能时控开关设计
时只是对其理论知识有了初步的了解。通过本次实验,我们对它的工作原理彻底理解了,对其启动设置、转换结束判断以及输出控制等都基本掌握。电路连接方面,我们对其与单片机的连接也有了更为直观的认识,通过实验的摸索以及必要的理论知识,我们准确的实现了它于单片机的互连。我非常感激同组队员对我的的指导和帮助,没有他们的帮助,我还会做很多的无用功。
尽管我们在课堂学到的内容很有限,但在以后的学习中单片机还需要好好的深入研究和学习。最后感谢老师对我的精心指导和帮助,感谢同学们对我的帮助。
5、参考文献
[1] 郭天祥. 51单片机c语言教程.北京:电子工业出版,2009.12
[2] 张齐.单片机应用系统设计技术(第3版).北京:电子工业出版社,2013.7 [3] 贾新章.电子线路CAD与优化设计. 北京:电子工业出版社,2014.4
6、附录1
C程序代码: #include
//定义led状态显示
char hour=23,minute=59,second=59;
第11页 共19页
班级:电信12-1 学号:12034490114 姓名:李玉金 选题的题目:智能时控开关设计
unsigned char i=0; unsigned char TempData[8]; sbit KEY1=P2^2; sbit KEY2=P2^3; sbit KEY3=P2^4; sbit KEY4=P2^5; sbit KEY5=P2^6; sbit motor=P2^7; sbit beep=P2^0;
//定义设置按键 //定义加减按键 //定义小时调整按键 //定义分钟调整按键 //定义秒钟调整按键 //定义开关开启按键 //定义蜂鸣器输出端口
unsigned char code duanma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char code weima[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; void display(unsigned char a,unsigned char b); void delay1(unsigned char num); void KeyScan(); void DataDeal();
void Tiner0_Init() { }
void main() {
TMOD=0x01;
TH0=(65536-50000)/256; TL0=(65536-50000)%6; EA=1; ET0=1; TR0=1;
Tiner0_Init(); led=0;
第12页 共19页
班级:电信12-1 学号:12034490114 姓名:李玉金 选题的题目:智能时控开关设计
motor=0;
TempData[0]=duanma[second]; TempData[1]=duanma[second/10]; TempData[2]=0x40;
TempData[3]=duanma[minute]; TempData[4]=duanma[minute/10]; TempData[5]=0x40;
TempData[6]=duanma[hour]; TempData[7]=duanma[hour/10]; display(0,8); while(1) {
if(KEY1==1) {
display(0,8);
//数码管显示函数
if((second==0)&&(minute==0)&&(hour==0)) {
TempData[0]=duanma[0]; TempData[1]=duanma[0]; TempData[2]=0x40; TempData[3]=duanma[0]; TempData[4]=duanma[0]; TempData[5]=0x40; TempData[6]=duanma[0]; TempData[7]=duanma[0]; motor=1; led=1; while(1) {
beep=~beep;
//蜂鸣器响
第13页 共19页
班级:电信12-1 学号:12034490114 姓名:李玉金 选题的题目:智能时控开关设计
}
}
}
delay1(10000); }
//蜂鸣器响的平率
else {
motor=0;
}
}
else { }
KeyScan(); display(0,8);
void Tiner0_isr() interrupt 1 {
TH0=(65536-50000)/256; TL0=(65536-50000)%6; if(KEY1==1) {
i++;
if((second!=0)||(minute!=0)||(hour!=0)) {
if(i==20) {
i=0; second--;
第14页 共19页
班级:电信12-1 学号:12034490114 姓名:李玉金 选题的题目:智能时控开关设计
}
}
}
}
if(second<0) { }
DataDeal();
second=59; minute--; if(minute<0) { }
minute=59; hour--;
void DataDeal() { }
void display(unsigned char a,unsigned char b) {
第15页 共19页
TempData[0]=duanma[second]; TempData[1]=duanma[second/10]; TempData[2]=0x40;
TempData[3]=duanma[minute]; TempData[4]=duanma[minute/10]; TempData[5]=0x40;
TempData[6]=duanma[hour]; TempData[7]=duanma[hour/10];