当前位置:文档之家› 单片机实现发光二极管的循环点亮控制讲解

单片机实现发光二极管的循环点亮控制讲解

桂林电子科技大学单片机最小应用系统




指导老师:***
学生:钟静茹
学号:09210202
机电工程学院
2010年6月
单片机最小应用系统设计报告
目录
一、设计题目 (3)
二、设计内容与要求 (3)
三、设计目的意义 (3)
四、系统硬件电路图 (4)
五、程序流程图与源程序 (6)
5.1流程图 (6)
5.2源程序 (7)
5.2.1程序设计思想 (7)
5.2.2源程序清单 (7)
六、系统功能分析与说明 (9)
6.1系统主要组成部分 (9)
6.2指示灯显示部分 (10)
6.3 电路板的制作 (10)
6.3.1 PCB图的制作 (11)
6.3.2 电路板的腐蚀、钻孔和元器件的焊接 (13)
七、设计体会 (11)
八、参考文献 (12)
一、设计题目
用8031单片机实现发光二极管的循环点亮控制。

采用3个按键分别控制发光二极管的启动、停止及每个灯点亮的时间的更换,定时时间有软件控制。

二、设计内容与要求
用8031单片机控制8个发光二极管循环点亮。

要求用按键控制点亮时间(如每个灯点亮0.5秒或者1秒等,各灯点亮时间相同)。

按启动键开始循环点亮;按停止键后停止。

三、设计目的意义
1、掌握单片机系统中扩展简单I/O接口的方法。

2、掌握单片机的硬件接口电路、8031单片机的内部结构及其编程方法。

3、掌握单片机的最小系统的设计。

4、掌握电路板的设计与制作。

5、了解程序编写与调试的方法和技巧。

6、综合掌握所学的单片机指令系统和硬件接口电路知识,进行简单的最小系统开发。

四、系统硬件电路图
系统硬件图(图1)包括单片机最小系统(复位电路、晶振电路和相关的控制信号)、外电路接通显示部分、及电源显示部分。

设计硬件电路图时,其基本思想:先通过万能板搭建试验平台,将编好的程序下载到51中,等可以达到预期要求后,最后在PROTEL中设计原理图与PCB,做出电路板。

图1 系统硬件图
五、程序流程图与源程序
5.1流程图
5.2源程序
5.2.1程序设计思想
单片机通入电源后,一直让单片机对8031的P1和P3口进行采集,将8031的P3口开关信号送入8031,以控制流水灯的亮灭及时间。

5.2.2源程序清单
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit KEY1 = P3^2;
sbit KEY2 = P3^3;
sbit KEY3 = P3^4;
uchar Count = 0,i,k;
uchar code table[8] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void Delay(uint del)
{
uint i,j;
for(i=0; i<del; i++)
for(j=0; j<1827; j++)
;
}
void Time0_Init()
{
TMOD = 0x01;
TH0 = 0x4c;
TL0 = 0x00;
TR0 = 1;
IE=0x82;
}
void Time0_Int() interrupt 1
{
TH0 = 0x4c;
TL0 = 0x00;
Count++;
}
void Outside1_Init(void)
{
IT0 = 1;
EX0=1;
EA=1;
}
void Outside1_Int(void) interrupt 0 {
EX0 = 0;
Delay(3);
if(KEY1 == 0)
{
while(1)
{
P0 = table[k];
if(KEY2==0)
{
break;
}
}
}
Delay(30);
EX0 = 1;
}
void Main(void)
{
uint i = 0,j=0;
Time0_Init();
Outside1_Init();
while(1)
{ for(i=0;i<8;i++)
{
P0 = table[i];
k=i;
if(KEY3 == 0)
{
Delay(1);
if(KEY3== 0) {
j++;
}
Delay(50);
}
if(j%2==1)
{
while(1)
{
if(Count == 20)
{
Count = 0;
break;
}
}
}
else
{
while(1)
{
if(Count == 10)
{
Count = 0;
break;
}
}
}
}
}
}
六、系统功能分析与说明
6.1系统主要组成部分
(1)单片机的最小系统部分包括晶振电路、复位电路、主电源引脚Vss和Vcc、控制引脚/EA。

(2)晶振电路为单片机正常工作时提供的时钟信号,由两个30pf的无极性电容和晶体压电瓷片组成外部振荡电路,把单片机的XTAL1和XTAL2分别接到外晶体的两端,使电容的另外一端接地就完成了单片机的晶振电路部分的设计。

(3)复位电路,当振荡器正常工作时,在单片机的复位引脚连续保持出现两个机器周期以上的高电平时,就会使单片机复位。

AT89S51单片机复位电路主要有上电复手动复位和自动复位两种,在本次试验中我采用手动复位。

按键手动复位的工作原理是:当按下按键时,电源对外接电容进行充电,使RST端为高电平,复位键松开后,电容通过内部下拉电阻放电,逐渐使RST端恢复低电平。

具体电路见图2复位电路。

图2 手动复位电路
6.2指示灯显示部分
输入信号由3个开关提供,信号的输出采用8个发光二极管显示,相应的信号灯对应相应的开关,用共阴极的连接方法,输入低电平导通。

电源上电显示部分用一个1K的电阻串联一个发光二极管来显示,灯亮表示有电,反之,则电路板没电。

6.3电路板的制作
6.3.1 PCB图的制作
采用了PROTEL DXP 电路绘图软件进行原理图和PCB图的制作,首先,安装此软件,安装完成后,打开该软件,新建工程(DOCUMENT)文件,而以后所建立的原理图文件(*.SCH)、PCB文件(*.PCB)及生成的网路文件(*.NET)都在此工程内。

建立原理图文件时,首先,调用库文件中常用的元器件库文件(MISCELLANEOUS DEVICES.LIB)可以调入常用的电阻、电容、开关、晶振、继电器等常用的电器元件,通过ADD/REMOVE 按钮可以调入库文件(以INTEL为开头的库文件),从而调入80S51芯片以及其它电子元件。

原理图建立后,再生成网路图,这一步骤只要通过DESIGN---CREATE NETLISTS 即可生成网络图。

建立PCB图,首先应按照原理图的要求认真准确地填好每一个电器元件的封装,系统没有封装的,必须根据实物画出特别元件的封装,而且,注意元器件的管脚号必须与封装的管脚号相同(比如说,三极管发元器件的管脚是B、E、C,而封装库中的管脚却是1、2、3,必须改变其中之一,使两者一致),否则出错,生成的PCB图不正确。

通过检查PCB图,如果没有元器件丢失、管脚丢失和网络连接正确便可以合理地布线,最终生成和覆铜板尺寸一致的PCB图。

最终生成的PCB图如下图所示。

图3 PCB电路图
6.3.2 电路板的腐蚀、钻孔和元器件的焊接
将生成好的PCB 图,用电熨斗印刷在基板上,再用FECL3 进行腐蚀、钻孔、焊接相对应的元器件。

便完成了电路板的制作。

七、设计体会
1、通过此次单片机最小系统的应用开发,增加了我对电路控制专业的兴趣,尤其是通过单片机进行自动控制方面,在设计及单片机最小系统中,加深了对所学过的知识认识(主要是编程指令的灵活应用、单片机最小系统的理解和PROTEL DXP 软件的灵活使用),还提高了自己的分析问题和解决问题的能力和方法(主要是在调试程序),最后提高了动手能力(主要是在电路板的制作上面),尤为可贵的是学会了查阅相关的资料,并进行独立的原理图设计,电路板的制作和程序的独立调整,以及出现问题时候,独立思考分析解决问题的能力。

虽然很辛苦,但是最终能够达到设计课题的要求。

2、初步学会了独立设计电路图的能力。

我首先在图书馆查找并综合与课题相关的资料,在头脑中形成一个感性的认识,并渐渐地用所学过的单片机指令(主要是汇编语言)编程,然后再借助试验台,将自己编好的程序一步一步地调试出来,用能够成功程序所需要的硬件电路来返回来设计自己的电路板。

初步养成了自己独立解决问题的方法
与能力。

八、参考文献
[1] 张毅刚彭喜元姜守达乔立岩新编MCS-51单片机应用设计.哈尔滨工业大学出版
社,2003.
[2] 黄海萍汇编语言与微机接口技术实验教程.国防工业出版社,2007.
[3] 何光明童爱红王国全 C语言实用培训教程.人民邮电出版社,2003.。

相关主题