51单片机课程设计报告
专业班级: 通信1001 姓 名: 李奥 指导教师: 徐敏 设计时间: 2012.6.13
目录
1.设计任务及要求 2.总原理图及元器件清单 3.设计思路 4.软硬件调试 5.实验心得
51单片机课程设计
一、设计任务与要求
1. 任务:制作并调试51单片机学习板 2. 要求:
(1) 了解单片机的设计方案及设计步骤;
(2) 了解单片机系统的基本结构组成及设计过程中注意的问题; (3) 熟悉单片机调试软件的全过程,学会处理调试过程中出 (4) 现的现象;
(5) 单片机功能及反引脚的接法和作用,要全面的掌握操作。
二、总原理图及器件清单
1.总原理图
U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RST293031PSENALEEA12345678Q1NPNP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7ATC51LS1C133uFSPEAKER 2.元件清单
AtC51 发光二极管 晶振 焊板 并行口排针 电阻 三极管 排线 按键 蜂鸣器 电解电容 IC插座 晶体振荡器 三、设计思路
通过控制定时器的时间产生不同频率的方波,来驱动蜂鸣器发出不同的音频的声音,再利用晶振频率来控制音谱的长短,即可控制节拍。把乐谱中的音符和相应节拍变换成定常数和延迟常数。作为数据表格存放在储存器中,由程序查表得到定时常数和延时常数,分别用控制定时器产生方波的频率和发出该频率方波的持续时间。当时间到时再查下一个音符的定时常数和延时常数,依次下去。
实现方法:用定时器T0以方式1来产生各音符对应频率的方波,由P3.0输出驱动蜂鸣器。节拍控制通过用延时子程序D200(延伸200ms)次数来实现,以每拍800ms节拍时间为测,一拍需循环调用延时200ms子程序4次,半拍就需要2次。设晶振频率为8mHZ,乐曲中的音符,频率,半周期,定时值如下表;
音符 频率HZ 5 392 6 440 1.14 7 494 1.01 1 524 1.95 FE25 2 588 0.85 FE57
3 660 0.76 FE84 4 698 0.72 FE94 5 784 0. FE00 6 880 0.57 FE63 7 988 0.51 FF01 半周期1.28 ms 定时值 FD80 FD06 FE07 ||565-|323-|5321|35|32-1| |565431|565431|151-1|151-1| OxFe,OxCo
四、硬件调试
1、是否短路
用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序
焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。 3、器件功能
1)检查原理图连接是否正确
2)检查原理图与PCB图是否一致
3)检查原理图与器件的DATASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象
5)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字
是否正确
6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的
7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。
1、详细描述硬件安装过程中出现的故障现象,并作故障分析,及解决方法。
四.软件调试
程序 #include #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;i>0;i--) for(j=132;j>0;j--) for(k=150;k>0;k--);}
void main() {uchar c; TMOD=0x01; IE=0x82; while(1)
{
for(;a<20;a++) {TR0=1;
1、设置硬件仿真环境
单片机应用系统程序的编译和仿真在KeilμVision环境下进行,在调试程序之前,需要对工程进行Debug设置,选择软件仿真或硬件仿真。软件仿真使用计算机来模拟程序的运行,不需要建立硬件平台就可以快速得到某些运行结果;硬件仿真是最准确的仿真方法,必须建立硬件平台,通过PC机→硬件仿真器→用户目标系统进行系统调试。采用硬件仿真的方法,硬件平台即为带有图1所示接口电路的单片机应用系统,设置硬件仿真环境的具体操作步骤如下:
首先,点击所建工程:Project菜单中的Options for Target„Targer 1‟,出现工程的配置窗口,点击Debug设置,选择KeilMcmitor-51 Driver,具体参数设置如图6所示。
图 1
然后,设置仿真器参数。建议波特率设置范围300~38 400。为避免程序中的中断和Keil硬件仿真环境中的中断互相冲突,不选择“Stop ProgramExecution with SerialInterrupt”。仿真器参数的设置如图7所示。
图2
完成51单片机在Keil μVision环境中的硬件仿真环境设置后,可以进行程序的调试仿真。
2、调试仿真
1) 导入测试代码:文件→打开→key and display.Uv2 2) 重建全部工程:工程→重建全部目标文件
重建结果为,“DA_5615” – 0 Error(s), 0 Warning(s). 3) 调试:调试→Start/Stop Debug session(Ctrl + F5)
调试结果为:Connected to Monitor_51 V3.4
Load “C:\\\\...\\\\...\\\\DA_5651
1、详细描述软件调试步骤。及各模块调试结果。
2、详细描述调试过程中出现的故障现象,并作故障分析,及解决方法
七、心得
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅
可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管PNP管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在徐敏老师的辛勤指导下,终于游逆而解。同时,在徐敏老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!