单片机课程设计报告跑马灯Word文档下载推荐.docx
《单片机课程设计报告跑马灯Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告跑马灯Word文档下载推荐.docx(9页珍藏版)》请在冰豆网上搜索。
一、设计任务
利用单片机制作让LED灯依次闪烁时间间隔为0.5S二次后时间加快为0.2S并循环闪烁的跑马灯.
二、设计要求
(1)采用单片机STC89C52来控制,下载器由芯片MAX232来对程序的下载。
(2)LED灯的闪烁间隔时间为0.5S-0.25S-1S,每循环两圈更改闪烁速度。
(3)供电采用USB方口的方式。
三、方案设计与论证
跑马灯电路的组成方框图为:
四,主要元件介绍
(1)单片机STC89C52引脚介绍
stc89c52的内核和AT51系列单片机一样,故引脚也相同:
1~8:
I/OP1口(P1.0~P1.7);
9:
复位脚(RST/Vpd);
10~17:
I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚;
18、19:
晶振(18=XTAL2,19=XTAL1);
20:
地(Vss);
21~28:
I/OP2口(P2.0~P2.7);
29:
-PSEN;
30:
ALE/-PROG;
31:
-EA/Vpp
32~39:
I/OP0口(P0.7~P0.0);
40:
+5V电源。
注:
引脚功能前加“-”,说明其是低电平有效。
如P3.2=-INT0。
(2)MAX232介绍
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
内部结构基本可分三个部分:
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;
DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚GND、16脚VCC(+5v)。
五、设计原理及电路图1、本电路,是利用单片机的中断定时来实现LED灯的闪烁。
控制器STC89C52与我们所学的ATML的单片机AT89C52的内部结构和资源是一样的,内部有8位的CPU处理器包含(运算部件和控制部件),片内有256B的数据存储器和8KB的程序存储器,3个定时器/计数器;
六个中断源(两个外部中断源INTO和INT1,两个定时/计数器T0和T1,一个串行口中断)。
四个输出口P0口、P1口、P2口、P3口,LED的八个灯的控制口由P0口来控制,而采用P3口第二功能且能够在线下载程序,硬件复位端9脚在高电平是单片机复位。
由于本次设计未用到其它内部资源因此就不过多的去分析。
(下附STC89C52单片机引脚图)
3、Max232产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。
该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。
该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平。
每一个发送器将TTL/CMOS电平转换成A-232-F电平TIA/EI
。
内部结构基本可分三个部分:
第一部分是电荷泵电路。
第二部分是数据转换通道。
由7、8、9、10、11
、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DP9插头;
DP9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
六、程序分析:
此设计主要是采用控制系统的定时中断来完成的,应为设计要求8LED灯循环点亮,而且第一圈的速度是0.5S走两圈后速度改成0.25S,继续两圈然后又改成1S走两圈后就回到开始状态。
依据这种思路就由定时器T0工作在方式1中并定时10ms。
然后由寄存器R2对10ms计数50次则P1口数据左移移位,再用一个寄存器对P1口的移位进行计数16次就是两圈,后面只要改变R2的值,就能够达到不同的速度了。
具体程序如下:
#include<
reg51.h>
//包含特殊功能寄存器库
unsignedchari,x,k,n,y,m,r,date;
voidmain()
{
TMOD=0x01;
TH0=0xD8;
TL0=0xF0;
EA=1;
ET0=1;
i=0;
date=0xfe;
x=0x64;
k=0x0;
n=0;
y=0;
m=0x11;
r=0x23;
P1=date;
TR0=1;
while
(1);
}
voidtime0_int(void)interrupt1//中断服务程序
i++;
if(i==x)
if(date==0xff)
{date=date<
<
1;
else
{date=(date<
1)+1;
++k;
if(k==m)
{x=0x32;
m=0x13;
k=0;
++n;
if(n==r)
{x=0x96;
r=0x12;
m=0x14;
++y;
if(y==2)
{x=0x64;
m==0x11;
}}
七、程序流程图
开始
初始化
开中断T0
执行中断
中断返回
计10ms定时100次
P1口左移一位
计数16次
计10ms定时50次
P1口左移一次
计10ms定时150次
中断结束返回
N
Y
元件序号
主要参数
元件个数
实验板
带串口和USB
1
单片机
STC89C52
MAX232
DB9
孔-串口
R1-R8
200Ω
8
R9
300Ω
R10
1KΩ
R11
LED
红色
9
开关1
四脚(无锁)
开关2
6脚(带锁)
C1
22uf
C2、C3
30pf
2
C4、C5、C6、C7
0.1uf
4
C8
10uf
40P、16P
底座
各1
串口线、USB方口
八、硬件制作与调试
组装时,因为不是PCB板焊接而是用导线布局,在焊接之前布局是关键,布局好看而且并不影响电路焊接是最为关键的,在布局之前还要确定的是六脚的电源开关和四脚按钮的引脚防止焊接后电源短路或断路。
因为是用导线焊接的在焊接的时候导线与原件的焊接是采用两孔相连的方法,因此焊接时防止虚焊或漏焊。
先焊接电阻和底座然后焊接其它原件,先每个原件焊接一个引脚以便查看布局和后面的导线布线。
焊接的时候一定要对着电路原理图仔细看好,防止焊错或漏焊,最后就是焊接电源。
焊接好后就是调试了,焊接完后应该用万用表电阻档测一下电源两端的电阻若不为零而为一个很小的值则表明电路没短路,否则电路有短路应该排除后再通电,接通电源后先看指示灯LED是否亮的,这时就先看单片机是否在工作具体就是用示波器观察控制器的控制线ALE端输出波形,若有正旋波输出则表示为单片机正常工作否则没运行就要检查电路是否连接正常。
焊接并通电成功后就要开始进行在线下载了,首先要安装好STC下载软件并连接好串口线,完成后就能够开始下载了。
如果下载不通先检查软件和串口线,若前面都可经过那就要看线路的焊接也就要检测硬件的问题。
九、设计总结
在设计此电路时首先遇到的是程序的问题,由于是刚学习单片机,先确定的是硬件经过查资料,绘制了电路原理图,然后就是软件而在编程的时候很困难而且对单片机了解不是很多经过查书和请教老师,慢慢的摸索相互合作最终还是把程序编译出来,然后就是电路的焊接而焊接是最重要的,而且也相对困难因为是用通用板线路都是用导线相互连接的布局就困难了,也加大了线路的焊接质量,如果那儿没有焊好就对后面的调试很有影响。
最后就是调试了,因为电路有软件和硬件使得在调试时排除错误很麻烦不低于前期的设计和编程。
总之需要理能加实践才能完成。