单片机测试报告.docx
《单片机测试报告.docx》由会员分享,可在线阅读,更多相关《单片机测试报告.docx(9页珍藏版)》请在冰豆网上搜索。
单片机测试报告
湖北大学
计算机与信息工程学院
2015——2016学年度
第二学期
单片机实验
测试报告
学生姓名:
__________________
班级:
__________________
学号:
__________________
任课老师:
__________________
一、实验项目
基于STC89C52的8*8点阵的应用
二、实验目的
使用STC89C52单片机驱动8*8点阵并显示“大”字
三、实验器材
两个底座,一个89C52单片机芯片,两个小电容,一个四角开关,一个晶振,一块洞洞板,导线若干
四、实验原理
通过52单片机的P1和P3口直接驱动8*8的点阵使其显示,再通过c语言编程使点阵显示出大字
五、硬件介绍
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,3个16位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。
另外STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
六、C语言程序
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineulunsignedlong
ucharcodetable[]=
{
0x84,0x64,0x34,0x0f,0x34,0x64,0x84,0x00,//大
};//列编码
uchari,temp,num,j;
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}//延迟函数
/*voidinit()
{
TMOD=0x01;//方式1,16位模式,不会自动清零。
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
EA=1;
ET0=1;
num=0;
j=0;
}*/
voidmain(void)
{
//init();
while
(1)
{
P1=0;
temp=0xfe;
for(i=0;i<8;i++)
{
P3=temp;
P1=table[i];
delay(3);
temp=0x1|(temp<<1);
}
}
}
/*voidtimer0()interrupt1
{
num++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(num==10)
{
num=0;
j++;
if(j==40)
j=0;
}
}*/
七、实验步骤
1.用keilC及protues进行程序的编程、设计电路图以及硬件的仿真;
2.按照原理图进行焊接;
3.通过开发板将程序烧录进芯片;
4.测试,验证是否能得到与仿真相同的结果。
八、软件测试
总电路图如下:
仿真结果:
九、硬件测试
实物图如下:
测试结果如下:
电路元件中没有大电容,因此可以不焊开关。
但是结果与仿真结果有部分不同,有两个点没有亮,可能是焊接过程中有线忘记连了。
十、错误分析
实物点阵的问题
上图以有字的一面对自己从左往右逆时针数编号依次为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16。
对应如下:
其中P3口为阴极P1口为阳极。
在焊接的过程中注意单片机的端口与点阵的对应,否则会出现点阵上显示乱码。
十一、心得体会
在学习单片机这门课程之前,就早早听各种任课老师和学长学姐们说过这门课程的重要性和学好这门课程的关键——多操作。
这学期除了在课堂上学习理论知识,还在实验室进行了实验。
在将理论知识运用到实践中发现的问题很多,但同时也拓宽了我们的知识面,同时强化了理论知识。
老师课堂上讲的很快,但是我们所学的单片机是基于C语言编程的,所以还比较好理解,比较容易看懂。
但是真正的难题是软件的使用,protues和keil都是我们没有接触过的软件,keil用于编程,protues用于电路的制作和仿真。
当时用keil编好程序后不知道该怎么把程序导入protues成了最大的问题,在网上查找资料后发现,原来需要在keil中生成HEX文件后再在单片机中导入HEX文件就可以进行仿真了。
焊接的过程中,由于电路比较密集,所以我们决定采用直接用导线连接的方法防止焊接中出现短路或虚焊等问题。
并且由于担心焊接错误,我们把线接在外面,这样比较丑但是为了以防万一还是决定这样焊。
单片机这门课程不仅融合了单片机的基本知识、C语言的复习,还融入了软件的学习和使用以及对芯片接线方法的学习,是一门综合性比较强的课程,是一门比较好的课程,谢谢李璋老师这一学期以来的教导,谢谢老师!