项目四和项目六设计说明书_第1页
项目四和项目六设计说明书_第2页
项目四和项目六设计说明书_第3页
项目四和项目六设计说明书_第4页
项目四和项目六设计说明书_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目四+项目六设计说明书任务一 音乐门铃一、任务设计要求1、实现“滴 、滴”报警声要求:产生频率为500Hz,扬声器响0.25s,停0.25s,反复循环2、实现“滴 、滴”报警门铃要求:在1的基础上增加按钮动作。按钮按下一次,“滴、滴”声持续约3秒。3、技能提高任选一首歌曲,编制歌谱表,由单片机演奏,实现音乐门铃。二、设计过程1、设计方案确定2、硬件电路设计3、软件设计实现“滴 、滴”报警声步骤1:定时参数的计算1) 要产生频率为500Hz的方波信号,方波信号的周期为2ms 。电路采用12MHz的晶振,利用定时器T0的方式1,产生1ms的定时,在P1.7上输出周期为2ms的方波。(a) T0的

2、方式控制字TMOD: (b) 计算计数初值X由于晶振为12MHz,机器周期T=,要产生产生1ms的定时,计数初值为将 分别预置给TH0、TL0。(1)、绘制流程图(2)、编写源程序:共3个程序(1)#include<reg52.h>sbit OUT=P30;sbit OUT1=P31;main() TMOD = 0x02; while(1) OUT=0; TH0=106; TL0=106; TR0=1;while(!TF0); TF0=0; OUT=1; TH0=(255-25)/256; TL0=(255-25)%256; TR0=1;while(!TF0);TF0=0; (2)

3、#include<reg51.h>#define uint unsigned int#define uchar unsigned charuchar code tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0x77,0x7c,0x39,0x5e,0x79,0x71;void delays(uint t) uint i,j; for(i=t;i>0;i-) for(j=110;j>0;j-); main() uchar key,a,b; P2=0x00; while(1) /置列为0,行为1,读行值 0000

4、 1111 P1=0x0f; a=P1; delays(10); /置行为0,列为1,读列值1111 0000 P1=0xf0; b=P1; delays(10); key=a+b; if(key=0xee) /第0行P2=tab0;if(key=0xde) /P2=tab1;if(key=0xbe) /P2=tab2;if(key=0x7e) /P2=tab3; if(key=0xed) /第1行P2=tab4;if(key=0xdd) /P2=tab5;if(key=0xbd) /P2=tab6;if(key=0x7d) /P2=tab7; if(key=0xeb) /第2行P2=tab8

5、;if(key=0xdb) /P2=tab9;if(key=0xbb) /P2=tab10;if(key=0x7b) /P2=tab11; if(key=0xe7) /第3行P2=tab12;if(key=0xd7) /P2=tab13;if(key=0xb7) /P2=tab14;if(key=0x77) /P2=tab15; (3)#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit Key = P10;sbit DoorBell = P17;uint p = 0 ;void dela

6、yms(uint xms) uint i,j; for(i=xms;i>0;i-) for(j=110;j>0;j-);void T0_time() interrupt 1 DoorBell=DoorBell; p+; if(p<400) TH0=(65536-750)/256; TL0=(65536-750)%256; else if(p<800) TH0=(65536-1000)/256; TL0=(65536-1000)%256; else TR0=0; p=0; main() IE=0x82; TMOD=0x01; TH0=(65536-750)/256; TL

7、0=(65536-750)%256; while(1) if(Key=0) delayms(10); if(Key=0) while(!Key); TR0=1; 4、软、硬件调试仿真(效果图)任务二 简易演奏器一、任务设计要求1、基本要求利用定时器的定时功能,分别产生三个声音的方波,驱动扬声器发音,由三个按键控制演奏DO、RE、MI 三个声音。2、利用定时器的定时功能,分别产生三个声音的方波,驱动扬声器发音,由查询式键盘的8个按键控制演奏DO、RE、MI、Fa、SO、LA、XI、D0(高音) 8个声音。二、设计过程1、设计方案确定2、硬件电路设计3、软件设计(1)、绘制流程图(2)、编写源程序

8、:2个程序(1)#include<reg51.h>#define uint unsigned int#define uchar unsigned charsbit speaker=P30;uchar num;uchar code KEY_TABLE =0xee,0xde,0xbe,0x7e, 0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b, 0xe7,0xd7,0xb7,0x77;uchar code TABLE =0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0

9、xa1,0x86,0x8e;uint code TABLE1 =0xfa15,0xfa67,0xfb04,0xfb90,0xfc0c,0xfc44,0xfcac,0xfd09, 0xfd34,0xfd82,0xfdc8,0xfe06,0xfe22,0xfe56,0xfe85,0xfe9a;void delay(uint t) uint i,j; for (i=t;i>0;i-) for(j=110;j>0;j-);void time_0() interrupt 1 TH0=TABLE1num/256; TL0=TABLE1num%256; speaker=speaker;main(

10、) uchar X,Y,key,k; P1=0xff; TMOD=0x01; ET0=1; EA=1; while(1) P1=0xf0; if(P1!=0xf0) delay(10); if(P1!=0xf0) X=P1; P1=0x0f; Y=P1; key=X|Y; for(k=0;k<16;k+) if(key=KEY_TABLEk) num=k;break; TH0=TABLE1num/256; TL0=TABLE1num%256; TR0=1; P2=TABLEnum; delay(200); TR0=0;P2=0xff; 4、软、硬件调试仿真(效果图)任务三 电子密码锁一、

11、任务设计要求1、基本要求: (1)用单片机控制查询式键盘的8个按键,当按下1-8号按键时,分别在1位数码管上依次显示数字“1”-“8”(2)用单片机控制矩阵式键盘的16个按键,当按下1-16号按键时,分别在1位数码管上依次显示数字“0”-“9”和字符“A”-“F”。2、技能提高:(1)控制要求:用单片机控制查询式键盘,输入一位密码,为0-3之间的数字,密码正确,显示字符“P”3秒,同时开锁LED亮,若错误,则显示字符“E”3秒,再继续输入;(2)要求:用单片机控制矩阵式键盘,矩阵式键盘采用列扫描方式,输入一位密码,为0-15之间的数字,密码正确,显示字符"P"3秒,同时开锁

12、LED亮,若错误,则显示字符"E"3秒,再继续输入。二、设计过程1、设计方案确定2、硬件电路设计3、软件设计(1)、绘制流程图(2)、编写源程序:共4个程序#include<reg51.h>(简易)#define uint unsigned int /宏定义,用unit代替unsigned int范围0-65535#define uchar unsigned char sbit P3_0=P30;sbit P3_1=P31; void delayms(uint xms);void main() uchar button; uchar code tab7=0xbf

13、,0x86,0x8c; P0=0xff; while(1) P1=tab0; P3_0=1; P3_1=1; button =P0; switch(button) case 0xfe: P3_1=0;P1=tab1;delayms(300);break;case 0xfd: P3_1=0;P1=tab1;delayms(300);break;case 0xfb: P3_0=0;P1=tab2;delayms(300);break;case 0xf7: P3_1=0;P1=tab1;delayms(300);break;case 0xef: P3_1=0;P1=tab1;delayms(300)

14、;break;case 0xdf: P3_1=0;P1=tab1;delayms(300);break;case 0xbf: P3_1=0;P1=tab1;delayms(300);break;case 0x7f: P3_1=0;P1=tab1;delayms(300);break;default:break; void delayms(uint xms)/带参数的延时子函数uint i,j;for(i=xms;i>0;i-) /i=xms即延时约xms毫秒for(j=110;j>0;j-);(矩阵)#include<reg51.h>#define uint unsig

15、ned int /宏定义,用unit代替unsigned int范围0-65535#define uchar unsigned char sbit P3_0=P30;sbit P3_1=P31;uchar code KEY_TABLE=0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77;uchar code TABLE = 0x86,0x86,0x8c,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86;void delay(uint t) uint i,j; for(i=t;i>0;i-) for(j=110;j>0;j-);main() uchar temp,key,num,i; P1=0xff; while(1) P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论