89c51单片机课程设计1由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“89c51单片机课程设计”。
单片机课程设计
一、项目目的:
通过软件对单片机进行控制,实现电子广告牌的显示过程。即:使第一个点阵依次显示“L”“O”“V”“E”然后第二个点阵再一次显示“L”“O”“V”“E”
二、项目原理图:
单片机控制点阵显示“L”“O”“V”“E”的硬件电路如上图所示,包括单片机、点阵、复位电路、时钟电路、电源电路、晶振电路及驱动电路。
三、元件清单:
四、程序分析:
#include//头文件 void delay();
unsigned char i,k;//自定义变量声明
unsigned char led0[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};unsigned char led1[]={0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x81,0x81};//L unsigned char led2[]={0xc3,0x81,0x99,0x99,0x99,0x99,0x81,0xc3};//O
unsigned char led3[]={0x99,0x99,0x99,0x99,0x99,0x99,0xc3,0xe7};//V
unsigned char led4[]={0x81,0x81,0xf9,0x81,0x81,0xf9,0x81,0x81};//E
unsigned char led5[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};
main()
{ while(1)
{
for(i=0;i
{ for(k=0;k
{P2=led0[k];
P0=led1[k];
delay();}}
for(i=0;i
{ for(k=0;k
{P2=led0[k];
P0=led2[k];
delay();}}
for(i=0;i
{ for(k=0;k
{P2=led0[k];
P0=led3[k];
delay();}}
for(i=0;i
{ for(k=0;k
{P2=led0[k];
P0=led4[k];
delay();}}
for(i=0;i
{ for(k=0;k
{P2=led0[k];
P0=led5[k];
delay();}}
for(i=0;i
{ for(k=0;k
{P3=led0[k];
P1=led1[k];
delay();}}
for(i=0;i
{ for(k=0;k
{P3=led0[k];
P1=led2[k];
delay();}}
for(i=0;i
{ for(k=0;k
{P3=led0[k];
P1=led3[k];
delay();}}
for(i=0;i
{ for(k=0;k
{P3=led0[k];
P1=led4[k];
delay();}}
for(i=0;i
{ for(k=0;k
{P3=led0[k];
P1=led5[k];
delay();}}
}}
void delay()//定时器定时10ms
{
unsigned char i;
for(i=0;i
{
TH1=(65535-10000)/256;
TL1=(65535-10000)%256;
TR1=1;
while(!TF1);
TF1=0;
}
}
a:输入并编译源程序。
b:将目标程序下载到单片机芯片中。
c:接通电路,观察显示结果是否正确。
五、总结分析:
用8×8的点阵屏来实现广告字的滚动显示可以用于各大商店的电子广告牌的制作,让商店的广告牌在夜间也可以让顾客们很醒目地看到!同时也可以用于各种标语的制作,对环保、节能也有重大意义。本项目也存在着一些不足之处,例如:点阵的颜色过于单调,导致显示效果不佳;制作硬件图时,为了保证作图的美观,导致4个点阵之间的距离过大,使显示效果不太明显!由此可以设想:如果一种虚拟软件可以由制作人任意设置点阵的个数,那么这次我们就可以自己设置一个8×32 LED的点阵!
单片机应用十一单片机为核心,配以输入输出、显示等外用接口电路和软件,能实现一种或多种功能的实用用系统。单片机实质上是一个芯片。它具有结构简单,控制功能强,可靠性高,体积小,价格低等优点,单片机技术作为计算机技术的一个重要分支,广泛的应用于工业控制,智能化仪器仪表,家用电器,电子玩具等领域。