- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机课程设计报告范本
51单片机课程设计报告
专业班级: 通信1001
姓 名:
指导教师:
设计时间: 2013.6.13
目录
1.设计任务及要求
2.总原理图及元器件清单
3.设计思路
4.软硬件调试
5.实验心得
51单片机课程设计
一、设计任务与要求
任务:制作并调试51单片机学习板
要求:
了解单片机的设计方案及设计步骤;
了解单片机系统的基本结构组成及设计过程中注意的问题;
熟悉单片机调试软件的全过程,学会处理调试过程中出
现的现象;
单片机功能及反引脚的接法和作用,要全面的掌握操作。
二、总原理图及器件清单
1.总原理图
2.元件清单
At89C51 晶振 电阻 按键 电解电容 发光二极管 焊板 三极管 蜂鸣器 IC插座 晶体振荡器 并行口排针 排线 三、设计思路
通过控制定时器的时间产生不同频率的方波,来驱动蜂鸣器发出不同的音频的声音,再利用晶振频率来控制音谱的长短,即可控制节拍。把乐谱中的音符和相应节拍变换成定常数和延迟常数。作为数据表格存放在储存器中,由程序查表得到定时常数和延时常数,分别用控制定时器产生方波的频率和发出该频率方波的持续时间。当时间到时再查下一个音符的定时常数和延时常数,依次下去。
实现方法:用定时器T0以方式1来产生各音符对应频率的方波,由P3.0输出驱动蜂鸣器。节拍控制通过用延时子程序D200(延伸200ms)次数来实现,以每拍800ms节拍时间为测,一拍需循环调用延时200ms子程序4次,半拍就需要2次。设晶振频率为8mHZ,乐曲中的音符,频率,半周期,定时值如下表;
音符 5 6 7 1 2 3 4 5 6 7 频率HZ 392 440 494 524 588 660 698 784 880 988 半周期ms 1.28 1.14 1.01 1.95 0.85 0.76 0.72 0.64 0.57 0.51 定时值 FD80 FD06 FE07 FE25 FE57 FE84 FE94 FE00 FE63 FF01
||565-|323-|5321|35|32-1|
|565431|565431|151-1|151-1|
OxFe,OxCo
四、硬件调试
1、是否短路
用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。
2、焊接顺序#include reg51.h
#define uchar unsigned char
sbit Tone=P3^0;
uchar a=0;
uchar code B1[]={0Xfe,0xc0,0X02,0xFe,0xe3,0x02,0xfe,0xc0,0x02,0xfe,0x84,0x02,
0xfe,0x57,0x02,0xFe,0x84,0x02,0x00,0x00,0x02,0Xfe,0Xc0,0X02,
0xFe,0x84,0x02,0xfe,0x57,0x02,0xfe,0x25,0x02,0xfe,0x84,0x02,
0xFe,0xc0,0x02,0xFe,0x84,0x02,0Xfe,0X57,0X02,0x00,0x00,0x02,
0xfe,0x25,0x02,0xfe,0xc0,0x02,0xfe,0xe3,0x02,0Xfe,0Xc0,0X02,
0xfe,0x98,0x02,0xfe,0x84,0x02,0xfe,0x25,0x02,0xfe,0xc0,0x02,
0xfe,0xe3,0x02,0xfe,0xc0,0x02,0xfe,0x98,0x02,0xfe,0x84,0x02,
0xfe,0x25,0x02,0xfe,0x25,0x02,0xfe,0xc0,0x02,0xfe,0x25,0x02,
0x00,0x00,0x02,0xfe,0x25,0x02,0xfe,0xc0,0x02,0xfe,0x25,0x02,
0x00,0x00,0x02};
void delay200ms(void)
{ unsigned char i,j,k;
for(i=5;i0;i--)
for(j=132;j0;j--)
for(k=150;k0;k--);
}
void main()
{uchar c;
TMOD=0x01;
IE=0x82;
while(1)
{
for(;a20;a++)
{TR0=1;
文档评论(0)