单片机原理及应用实验报告.docx
《单片机原理及应用实验报告.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用实验报告.docx(8页珍藏版)》请在冰点文库上搜索。
单片机原理及应用实验报告
单片机原理及应用实验报告
一、选题意义2
二、单片机AT89C52结构介绍2
三、实验内容3
四、实验步骤3
五、在uvision环境下软件程序设计3
六、Proteus仿真6
七、实验器件8
八、焊接电路实物图9
九、实验心得9
一、选题意义
1.熟悉使用AT89C52单片机进行系统设计;
2.通过对单片机工作原理的深入理解,运用所学知识解决实际问题;
3.通过实际系统的设计,加深对单片机的微计算机系统设计的理解和掌握。
二、单片机AT89C52结构介绍
AT89C52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,256×8bit内部RAM,低功耗空闲和省电模式,32个双向I/O口,3个16位可编程定时/计数器,全双工UART串行中断口线,2个外部中断源。
图2-2是AT89C52引脚图。
三、实验内容
本实验利用单片机的计数器原理,通过采用protuas仿真软件来模拟实现。
利用AT89C52单片机芯片实现计数功能(0~10)并显示当前计数值,还能够实现秒表的启动/暂停,复位功能。
四、实验步骤
1、先确定好设计的内容,用protuas设计电路图。
2、编写代码,编译并调试正确。
将生成的.hex文件加载到单片机中,运行电路并调试使电路功能正确。
3、设计完成后,制作计数器实物,并使得运行正确。
五、在uvision环境下软件程序设计
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitK1=P3^7;
uchari,Second_Counts,Key_Flag_Idx;
bitKey_State;
charDSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//delay
voidDelayMS(uinttime)
{
while(time--)
{
uchart;
for(t=0;t<120;t++);
}
}
//handlebuttonevents,处理按键事件
voidKey_Event_Handle()
{
if(Key_State==0)//Triggerkeyfunctionwhenkeypressed
{
Key_Flag_Idx=(Key_Flag_Idx+1)%3;
switch(Key_Flag_Idx)
{
case1:
EA=1;ET0=1;TR0=1;break;
case2:
EA=0;ET0=0;TR0=0;break;
case0:
P0=0x3f;P2=0x3f;i=0;Second_Counts=0;
}
}
}
//main,主程序
voidmain()
{
P0=0x3f;//initialstateofLED显示00
P2=0x3f;
i=0;
Second_Counts=0;
Key_Flag_Idx=0;//timesofthepress(Firstr,second,thirdrespectivelystandfordifferentmeanings)按键次数
Key_State=1;//按键状态
TMOD=0x01;//T0workinmode1定时器0方式1
TH0=(65536-50000)/256;//Set50mstimer定时器0:
50ms
TL0=(65536-50000)%256;
while
(1)
{
if(Key_State!
=K1)//Keyispressedorreleased
{
DelayMS(10);
Key_State=K1;//updatekeystate
Key_Event_Handle();
}
}
}
//T0interruptfunction
voidDSY_Refresh()interrupt1
{
TH0=(65536-50000)/256;//恢复定时器0初值
TL0=(65536-50000)%256;
if(++i==2)//100ms//50ms*2=0.1s转换状态
{
i=0;
Second_Counts++;
P0=DSY_CODE[Second_Counts/10];
P2=DSY_CODE[Second_Counts%10];
if(Second_Counts==100)
Second_Counts=0;//满100(10s)后显示00
}
}
六、Proteus仿真
1、初始值
2、按下第一次按钮,记时截图
3、按下第二次按钮,计数器停止
4、按下第三次按钮,数值清零初始
七、实验器件
器件清单
数码管
2个
开关
1个
10kΩ电阻
1个
AT89C52
1个
30pF电容
2个
12MHz晶振
1个
1Nf极性电容
1个
200Ω电阻
8个
导线
若干
八、焊接电路实物图
九、实验心得
通过这次试验,让我对单片机有了新的认识。
在原有的理论基础上又增加了不少实践经验。
这次试验最重要的是培养我们的创新意识和动手能力,再选题方面我们小组经过激烈的讨论,最终选定一个方向:
通过单片机来实现0-9简单的计时作用。
这是我第一次做单片机实验,说起来有一些紧张和新奇。
在此之前我并没有接触过单片机,我本以为与之前的光学实验及其它实验差不多,可我进到实验室之后,我就改变了这个看法。
通过组内人员的团结协作,最终快速效率的完成了这次试验的目标,由此可以说明合作的力量是不可小视的。