网站建设费专用票,最近的电脑培训学校,佛山黄页企业名录,学校网站的建设目标是什么全套资料包含#xff1a;Proteus仿真源文件keil C语言源程序AD原理图流程图元器件清单说明书等
资料下载#xff1a;↓↓↓
通过网盘分享的文件#xff1a;资料分享 链接: 百度网盘 请输入提取码 提取码: tgnu 目录
资料下载#xff1a;
Proteus仿真功能
项目文件资料…全套资料包含Proteus仿真源文件keil C语言源程序AD原理图流程图元器件清单说明书等资料下载↓↓↓通过网盘分享的文件资料分享链接:百度网盘 请输入提取码提取码: tgnu目录资料下载Proteus仿真功能项目文件资料一、Proteus仿真源文件二、AD原理图文件二、报告说明书三、系统流程图四、Keil c语言程序源代码项目功能利用AT89S52单片机结合字符型LCD显示器设计一个简易的倒数计数器可用来煮方便面、煮开水或小睡片刻等。做一小段时间倒计数当倒计数为O时则发出一段音乐声响通知倒计数终了该做应当做的事。定时闹钟的基本功能如下。字符型LCD (16x2)显示器。显示格式为TIME分分:秒秒”。用4个按键操作来设置当前想要倒计数的时间。一旦按下键则开始倒计数当计数为0时发出一阵音乐声。程序执行后工作指示灯LED闪动表示程序开始执行按下操作键K1K4动作如下。K1一可调整倒计数的时间1—60分钟。K2一设置倒计数的时间为5分钟显示05: 00”。K3一设置倒计数的时间为10分钟显示10: 00”。K4-设置倒计数的时间为20分钟显示20: 00”。复位后LCD的画面应能显示倒计时的分钟和秒数此时按下K1键可以在LCD上显示出设置画面。此时若A.按操作键K2-一增加倒计数的时间1分钟。B.按操作键K3—一减少倒计数的时间1分钟。C.按操作键K4一—设置完成。项目文件一、Proteus仿真源文件二、AD原理图文件二、报告说明书三、系统流程图四、器件清单元件型号数量单片机AT89C511电容10uf1电容30pf2晶振12MHZ1电阻10k1按钮8显示器LCD16021电阻1k1三极管PNP1蜂鸣器无源1LED红色1电阻100欧1排阻10k1五、Keil c语言程序源代码(部分)//音符半周期us 1908 1706 1520 1436 1276 1136 1012 956 854 760 718 638 568 506 478 426 380 358 320 284 254 #include reg51.h #include intrins.h #include lcd1602.h #define uchar unsigned char #define uint unsigned int sbit S1P1^0;//按钮定义 sbit S2P1^1; sbit S3P1^2; sbit S4P1^3; sbit K1P3^4; sbit K2P3^5; sbit K3P3^6; sbit K4P3^7; sbit beepP2^7;//蜂鸣器 sbit ledP2^6; uchar ge_num1;//歌曲编号 //音符半周期us 1908 1706 1520 1436 1276 1136 1012 956 854 760 718 638 568 506 478 426 380 358 320 284 254 //半周期 uint code music[22]{0x0fff,1908,1706,1520,1436,1276,1136,1012,956,854,760,718,638,568,506,478, 426, 380, 358, 320, 284, 254}; //节拍编码,一个16拍半周期数 uint code pai16[22]{1,80, 88, 99, 105, 117, 132,148, 157,175,196,208,234,264,295,313, 351, 394, 418, 471, 528, 589}; //简谱半周期us节拍时间16分拍倍数 uchar code gequ1[]{ 10,2,0,1,10,2,9,6,7,2,0,1,7,2,8,2,0,1,8,4,0,12,10,2,0,1,10,2,9,2,8,2,9,2,12,2,0,1,12,2,10,2,0,1,10,8, 0,8,13,2,0,1,13,2,12,4,10,2,9,2,10,4,9,4,8,8,10,4,9,2,8,2,9,6,7,2,0,1,7,2,6,2,0,1,6,8,0,8,10,2,0,1, 10,2,9,6,7,2,0,1,7,2,8,2,0,1,8,4,0,12,10,2,0,1,10,2,9,2,8,2,9,2,12,2,0,1,12,2,10,2,0,1,10,8,0,4, 0,4,13,2,0,1,13,2,12,4,10,2,9,2,10,4,9,4,8,8,10,4,9,2,8,2,9,6,8,2,0,1,8,10,0,4,0,12, 10,2,12,2,13,4,15,4,14,6,12,2,10,4,0,4,8,2,0,1,8,6,13,2,0,1,13,2,12,2,10,2,9,2, 10,8,0,12,10,2,12,2,13,4,15,4,14,6,10,2,15,4,0,2,10,2,9,6,13,2,0,1,13,2,12,2,10,2,9,2, 8,2,0,1,8,2,0,1,8,8,0,4,10,4,6,1,9,1,10,1,12,1,10,4,6,1,9,1,10,1,13,1,10,4,5,1,7,1,8,1,12,1,10,4,0,1,10,2,12,2,13,4,10,4,9,4,5,4, 8,8,0,1,8,8,0,4,10,2,0,1,10,2,9,6,7,2,8,8,0,12,10,2,0,1,10,2,9,2,8,2,12,2, 12,2,10,2,0,1,10,8,0,8,13,2,0,1,13,2,12,4,10,2,9,2,10,4,9,4,8,8,10,4,9,2,8,2,9,6,7,2, 7,2,6,2,0,1,6,8,0,8,10,2,0,1,10,2,9,6,7,2,0,1,7,2,8,2,0,1,8,4,0,12,10,2,0,1,10,2,9,2,8,2,9,2,12,2, 12,2,10,2,0,1,10,8,0,8,13,2,0,1,13,2,12,4,10,2,9,2,10,4,9,4,8,8,10,4,9,2,8,2,9,6,8,4, 8,8,0,12,0,8,10,2,12,2,13,4,15,4,14,6,12,2,10,4,0,4,8,2, 8,6,13,2,0,1,13,2,12,2,10,2,9,2,10,8,0,8,10,2,12,2,13,4,15,4,14,6,10,2,15,4,0,4,10,2, 9,6,13,2,0,1,13,2,12,2,10,2,9,2,8,12,0,8,10,2,12,2,13,4,15,4,14,6,12,2,10,4,0,4,8,2, 8,6,13,2,0,1,13,2,12,2,10,2,9,2,0,1,9,2,10,2,0,1,10,8,0,8,10,2,12,2,13,6,15,2,14,4,10,4,15,4,0,4,10,2, 9,6,13,2,0,1,13,2,12,2,10,2,9,2,8,2,0,1,8,2,0,1,8,8,0,8,10,2,12,2,13,4,15,4,14,6,10,2,16,2,15,2,0,2,10,2, 9,6,13,2,0,1,13,2,12,2,10,4,9,1,8,1,0,1,8,2,0,1,8,8,0,8,10,4,9,6,7,2,0,1,7,2,8,2,0,1,8,4,0,8, 10,4,9,6,12,2,0,1,12,2,10,2,0,1,10,8,0,8,13,4,12,4,10,2,9,2,10,6,9,2,8,8, 10,4,9,2,8,2,9,8,8,4,6,8,0xff }; uchar code gequ2[]{ //一剪梅 14,3, 12,3, 13,8,13,2, 15,1, 14,1, 13,1, 12,1, 10,1,12,1,10,12,6,1,8,1, 9,8,0,1,9,2,10,1,9,1,8,1,9,1,7,1, 6,12,0,1,6,2,0,1, 6,2, 10,4, 9,1, 8,1, 7,1, 8,2, 7,2, 6,1, 5,1, 6,12,0,1, 6,2, 8,4,0,1, 6,1, 8,1, 9,4, 10,1, 11,1, 10,1, 9,1, 10,12,0,1, 10,1, 12,1, 13,6, 12,1, 10,1, 9,6, 8,1,9,1, 10,6, 9,1, 10,1, 6,8, 7,2, 7,1, 6,1, 5,2, 7,4, 5,1, 3,1, 10,2, 8,1, 7,1, 6,12,0,1,6,2, 6,10,0,1, 6,2, 13,4, 12,2, 10,1, 12,1, 10,1, 12,1, 13,4, 12,2, 9,4, 10,1, 12,1, 10,8, 7,1,6,5,7,1,6,5,12,1,13,1, 10,1, 9,1, 10,6,0,1,10,8, 6,2, 13,4, 12,2, 10,1, 12,1, 10,1, 12,1, 13,4, 12,2, 9,4, 10,1, 12,1, 10,8, 8,1,6,7,10,1,9,1,10,4,12,1,13,1, 10,1, 9,1, 10,6,0,1,10,8, 6,2, 13,4, 12,2, 10,1, 12,1, 10,1, 12,1, 13,4, 12,2, 9,4, 10,1, 12,1, 10,8, 7,1,6,7,7,1,6,7, 0xff }; uchar code gequ3[]{ //花心 10,2, 12,2, 0,1, 12,12, 0,1, 12,2, 13,2, 12,2, 10,8, 9,2, 10,2, 0,1, 9,12, 6,4, 8,10, 0,1, 5,4, 0,1, 5,4, 6,4, 0,2, 8,2, 9,2, 10,4, 8,4, 9,2, 0,1, 9,1, 10,1, 9,2, 8,2, 7,4, 8,4, 0,1, 8,10, 0,2, 12,2, 0,1, 12,4, 13,4, 0,1, 15,2, 0,1, 15,2, 0,1, 15,4, 12,4, 13,2, 0,1, 13,1, 15,1, 13,2, 12,2, 10,4, 12,4, 0,1, 12,10,0,1, 5,2, 0,1, 5,2, 6,2, 8,2, 0,1, 8,2, 9,2, 10,4, 8,4, 9,2, 10,2, 15,4, 13,2, 12,2, 0,1, 12,8, 10,4,12,4,0,1,10,2,0,1,10,2,0,1,10,2,9,2,10,2, 9,2,8,2,0,1,9,2,0,1,9,2,0,1,9,2,10,2,9,4,8,2,7,2, 7,2,0,1,7,2,0,1,7,2,0,1,7,2,0,1,7,2,8,2,9,2,8,2,0,1,8,10,0,1,12,2,13,2,15,2,0,1, 15,2,16,2,15,4,13,2,12,2,0,1,12,6,13,2,12,2,10,4,12,4,0,1,10,2,0,1,10,2,0,1,10,2,0,1,10,4,9,2, 8,2,0,1,9,2,0,1,9,2,0,1,9,2,10,2,9,4,8,2,7,2,0,1,7,2,0,1,7,2, 0xff }; uchar gequ0;//指定播放歌曲 uint times0;//节拍数 uint num0;//计数 uchar a0xfc,b0x18;//定时器初值 uint first1;//公共变量 uint time0; //计时 uchar shunxu0;//显示控制 // uchar miao0,fen1,sec0;//倒计时 uchar mode0;//模式 uchar start0; uchar disp[]00:00; void delay(uint i)//延时 { uchar k; while(i--) for(k0;k110;k); } //主函数 void main() { init_1602();//初始化 write_string(2,0,shi jian zhuyu); TMOD0X11;//定时器0工作方式1。 TH00XFC; //定时1ms TL00X18; TH10X3C; //定时50ms TL10XB0; ET01;//打开定时器0中断允许 ET11; TR11; EA1;//打开总中断 while(1) { if(!TR0) { if(!S1)//乐曲1 { beep1;delay(1000);gequ0;num0;ge_num1; write_string(2,0,shi jian zhuyu); while(!K1); } if(!S2)//乐曲2 { beep1;delay(1000);gequ1;num0;ge_num2; write_string(2,0,Yi Jian Mei ); while(!K2); } if(!S3)//乐曲3 { beep1;delay(1000);gequ2;num0;ge_num3; write_string(2,0,Hua Xin ); while(!K3); } } if(!S4)//停止 { TR00;beep1; num0; } if(!K1)//设置 { mode1; //TR11; } if(!K2)//加 { if(mode0) { fen5; miao0; start1; } else { if(fen60) fen; } while(!K2); } if(!K3)//减 { if(mode0) { fen10; miao0; start1; } else { if(fen1) fen--; } while(!K3); } if(!K4)//设置完成 { if(mode0) { fen20; miao0; } else { mode0; start1; } while(!K4); } //led闪烁 if(start) { if(sec10) led0; else led1; } else led1; } } //定时器0中断 void Timer0() interrupt 1 { TH0a; //给定时器赋初值 TL0b; switch(gequ) { case 0: if(gequ1[num]!0) beep!beep; if(timesfirst)//节拍数未到计数1 times; //计时 else { times0; //节拍清零 num2; //下一个音符 if(gequ1[num]0xff) //结束 { num0; TR00;//关闭定时器 beep1; } a(65536-music[gequ1[num]])/256; //设置初值 b(65536-music[gequ1[num]])%256; firstgequ1[num1]*pai16[gequ1[num]]; } break; case 1: if(gequ2[num]!0) beep!beep; if(timesfirst)//节拍数未到计数1 times; //计时 else { times0; //节拍清零 num2; //下一个音符 if(gequ2[num]0xff) //结束 { num0; TR00;//关闭定时器 beep1; } a(65536-music[gequ2[num]])/256; //设置初值 b(65536-music[gequ2[num]])%256; firstgequ2[num1]*pai16[gequ2[num]]; } break; case 2: if(gequ3[num]!0) beep!beep; if(timesfirst)//节拍数未到计数1 times; //计时 else { times0; //节拍清零 num2; //下一个音符 if(gequ3[num]0xff) //结束 { num0; TR00;//关闭定时器 beep1; } a(65536-music[gequ3[num]])/256; //设置初值 b(65536-music[gequ3[num]])%256; firstgequ3[num1]*pai16[gequ3[num]]; } } } //定时器1中断 void Timer1() interrupt 3 { if(sec20)//1s sec; else { sec0; if(start) { if(miao0)//倒计时 miao--; else { if(fen0) { miao59; fen--; } else { TR01;//启动音乐 start0;//停止计时 } } } } //显示 disp[3]miao/100x30; disp[4]miao%100x30; if(mode) write_string(1,3,SET ); else write_string(1,3,TIME); write_string(1,7,disp); TH10X3C; //定时50ms TL10XB0; }六、全套资料包含七项目资源获取需要完整的资料可以点击下面的名片关注回复“资料”↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓