单片机实现发光二极管的循环点亮控制
XXXX 电子科技大学电子科技大学 指导老师:指导老师: . 单片机最小应用系统单片机最小应用系统 设设 计计 报报 告告 吴 兆 华 学学生:生:钟 静 茹 学学号:号:0921020209210202 机电工程学院机电工程学院 20102010 年年 6 6 月月 单片机最小应用系统设计报告单片机最小应用系统设计报告 目录目录 一、设计题目 3 二、设计容与要求 3 三、设计目的意义 3 四、系统硬件电路图 4 五、程序流程图与源程序5 5.1 流程图 5 5.2 源程序 6 5.2.1 程序设计思想 6 5.2.2 源程序清单 6 六、系统功能分析与说明9 6.1 系统主要组成部分 9 6.2 指示灯显示部分 10 6.3 电路板的制作 10 6.3.1 PCB 图的制作 11 6.3.2 电路板的腐蚀、钻孔和元器件的焊接12 七、设计体会 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 流程图 开始 结束 是 判断是否进 入循环 否 初始化 判断选择循 环间隔时间 延迟 500ms 控制二极管延迟 500ms 循环亮 延迟 1000ms 控制二极管延迟 1000ms 循环亮 . 5.2 源程序 5.2.1 程序设计思想 单片机通入电源后,一直让单片机对 8031 的 P1 和 P3 口进行采集,将 8031 的 P3 口开关信号送入 8031,以控制流水灯的亮灭及时间。 5.2.2 源程序清单 #include #define uchar unsigned char #define uintunsigned int sbit KEY1 = P3^2; sbit KEY2 = P3^3; sbit KEY3 = P3^4; uchar Count = 0,i,k; uchar code table[8] = {0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f}; void Delay(uint del) { } void Time0_Init() . uint i,j; for(i=0; idel; i++) for(j=0; j1827; j++) ; { } void Time0_Int() interrupt 1 { } void Outside1_Init(void) { } void Outside1_Int(void) interrupt 0 { EX0 = 0; Delay(3); IT0 = 1; EX0=1; EA=1; TH0 = 0 x4c; TL0 = 0 x00; Count++; TMOD = 0 x01; TH0= 0 x4c; TL0= 0 x00; TR0 = 1; IE=0 x82; . } 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;i8;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 图,首先应按照原理图的要求认真准确地填好每一个电器元件的封