课程设计单片机99秒马表设计文档格式.docx
《课程设计单片机99秒马表设计文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计单片机99秒马表设计文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
2.2总体设计思路
系统板上硬件连线
〔1〕把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;
要求:
P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。
〔2〕把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;
P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。
〔3〕把“单片机系统“区域中的P3.5/T1用导线连接到”独立式键盘“区域中的SP1端口上;
总体设计思路图
2.3单元电路设计
本设计主要分为时钟电路模块,复位电路模块,显示模块和控制模块。
设计方案如下
时钟模块
图2.3时钟电路如上图所示
89C51单片机的时钟信号通常用内部振荡方法得到,在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方法。
由于单片机内部有一个高增益反相放大器,当外接晶振后就构成了自激振荡器并产生振荡时钟脉冲。
晶振通常选择6MHz、12MHz、24MHz。
本设计采用12MHz晶振。
图中电容C1、C2起到稳固振荡频率、快速起振的作用。
电容值一般为5—30pF。
本设计选用33pF电容。
复位电路模块
图2.4复位电路
复位操作完成电路的初始化,使单片机从一种确定的状态开始运行。
由上图可知,控制模块实际上就是单片机的最小系统。
本设计采用常用的上电且开关复位电路。
上电后,由于电容的充电,使RST持续一段高电平时间。
当单片机已在运行中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。
此处C3电容取10uF,R2=K。
2.3.3控制模块
图2.5控制电路
2.3.4显示模块
显示部分电路设计如下列图
图2.6显示模块电路图
三、软件设计
3.1程序设计思路〔流程图〕
主程序框图
T0中断服务程序框图
3.2源程序
#include<
AT89X51.H>
unsignedcharcodedispcode[]=
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x00};
unsignedcharsecond;
unsignedcharkeycnt;
unsignedinttcnt;
voidmain(void)
{
unsignedchari,j;
TMOD=0x02;
ET0=1;
EA=1;
second=0;
P0=dispcode[second/10];
P2=dispcode[second%10];
while
(1)
if(P3_5==0)
for(i=20;
i>
0;
i--)
for(j=248;
j>
j--);
keycnt++;
switch(keycnt)
case1:
TH0=0x06;
TL0=0x06;
TR0=1;
break;
case2:
TR0=0;
case3:
keycnt=0;
}
while(P3_5==0);
voidt0(void)interrupt1using0
tcnt++;
if(tcnt==400)
tcnt=0;
second++;
if(second==100)
}
四、仿真调试
总体仿真电路图如下列图所示
图4.1整体仿真原理图
4.1keil简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。
因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
4.2keil与protues联调与仿真实现
双击图标进入KeiluVision2编程环境,输入程序。
返回桌面双击图标进入PROTEUS仿真环境。
点击左上角选项设置keil和proteus的工作环境。
实现keil和proteus的连调。
4.3仿真结果
五、总结
本次课程设计的题目是99秒马表设计。
经过本组同学的共同努力,终于调试成功。
课程设计是培养学生综合运用所学知识,发现实际问题、提出实际问题、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际学习能力、动手能力的具体训练和考察过程。
在此次设计过程中,在学习新知识的同时,把在课程中学到的理论知识运用到实际作品设计、操作中更进一步地熟悉了单片机芯片的结构及掌握了其工作原理和具体的使用方法与相关元器件的参数计算方法、使用方法了解了电路的开发和制作及课程设计报告的编写。
加深了对相关理论知识及专业知识的掌握度,增强自身的动手能力,锻炼及提高了理解问题、分析问题、解决问题的能力,更深刻的体会到了理论联系实际的重要性。
最后我们组通过此次单片机课程设计不仅仅将我们一学期在单片机课程上的所学很好的应用到了实际设计中,更是将理论知识应用到了实践中。
这才是真正的学习:
讲知识与实践有机的结合。
也十分感谢老师为我们提供了这次单片机课程设计的时机。
我们也通过此次课程设计,更清晰更实际的接触到了单片机。