1、1 单 片 机 课 程 设 计 报 告 单 片 机 课 程 设 计 报 告 2 用单片机设计节日彩灯控制器用单片机设计节日彩灯控制器 一、设计任务与要求 本实验中采用汇编语言和 89C51 单片机实现几日彩灯控制器,在 Keil uVision 软件环境中编辑和调试节日彩灯程序,并在 Proteus 软件环境下仿真节 日彩灯的硬件电路。可编程节日彩灯系统采用 8 个 LED 灯来模拟彩灯的显示,设 计要求 8 个 LED 灯能以多种不同的方式变换的亮灭,以达到节日彩灯的效果。 本实验中彩灯具体的变换方式采用以下四种方式: 方式一:启动彩灯运行,按下与 89C51 单片机 P1.2 相连接的按钮
2、,则彩灯 按照由上而下的顺序依次点亮。 方式二:停止彩灯运行,按下与 89C51 单片机 P1.3 相连接的按钮,则彩灯 全部熄灭。 方式三:向下依次点亮彩灯,按下与 89C51 单片机 P1.4 相连接的按钮,则 彩灯按照由上向下的顺序依次点亮。 方式四:向上依次点亮彩灯,按下与 89C51 单片机 P1.5 相连接的按钮,则 彩灯按照由下向上的顺序依次点亮。 二、设计方案 以 80C51 单片机为控制核心,采用模块化的设计方案,运用 LED 彩灯、按键 等组成电路,实现彩灯在开启时满足不一样的闪亮方法。按键可以在彩灯使用的 时候选择不同的亮法,使彩灯流动的方向改变,键一可以使彩灯由上而下开
3、始流 动,键二可以使彩灯停止,三号键可以使彩灯由上而下流动,四键则可以使彩灯 由下而上流动。通过按键能方便使用者选择节日彩灯的开启、流动方向和停止。 系统框图如下: 三、单片机设计节日彩灯控制器的硬件电路设计 ATC89C51 彩灯显示电路 按键电路 时钟电路 3 单片机设计过程中用到的管脚说明: 1、 VCC(40) :供电电压。 2、 GND(20) :接地。 3、 P1 端口(P1.0-P1.7) :P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高 电平,可用作输入,P1 口被外部下拉为低电平
4、时,将输出电流,这是由于内 部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。 4、 P2 端口(P2.0-P2.7) :P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口 缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部 上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低, 将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时, P2 口输出地址的高八位。 在给出地址 “1” 时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊
5、功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地 址信号和控制信号。 5、 P3 端口(P3.0-P3.7) :P3 口管脚是一个带有内部上拉电阻的 8 位的双向 I/O 端口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉 为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3 口将输 出电流(ILL) 。P3 口也可作为 AT89C51 的一些特殊功能口,其中 P3.3 可作 为外部中断 1 输入。 6、 XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入。 7、 XTAL2(18):来自反向振荡器的输出。 8、 EA
6、(31) :外部程序存储器访问允许控制端。 打开PROTEUS的ISIS编辑环境, 从PROTEUS中选取该电路所需要的元器件, 放置元器件、放置电源和地、连线得到下图所示的电路原理图,再点菜单栏工具 下拉的电气规则检查,当规则检查出现: “NETLIST GENERATED OK NO ERC ERRORD FOUND” ,表示通过检查。电路设计完成。 4 PROTEUS 硬件电路原理图 四、单片机设计节日彩灯控制器的软件设计 单片机设计节日彩灯控制器的软件设计流程图如下: XTAL2 18 XTAL1 19 ALE 30 EA 31 PSEN 29 RST 9 P0.0/AD0 39 P0.1/AD1 38 P0.2/AD2 37 P0.3/AD3 36 P0.4/AD4 35 P0.5/AD5 34 P0.6/AD6 33 P0.7/AD7 32 P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P3.0/RXD 10 P3.1/TXD 11 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 1