1、单片机系统综合设计任务书一、题目:艺术彩灯控制系统设计二、内容:1设计并实现具有复位功能的单片机小系统;2利用单片机进行灯光的场景开关控制;3利用单片机进行灯光的循环点亮控制及速度变化控制;4利用单片机进行灯光的色彩连续变化效果控制。5利用单片机进行灯光的三色联动定时控制。三、要求1能启动、停止;2能通过开关进行功能选择;3要体现循环、组合和色彩变化的控制功能和效果,实现三色联动定时控制,控制变化规律的类型或功能不少于 5 种;3要有完善的系统综合设计报告,每人须提交 1 份 A4 纸的报告;4如为电子版,另将设计报告的电子版发送到指导教师的邮箱(cy-)中,要求文件名格式为:XXX(指报告人
2、姓名)-XXX(指同组人姓名,若为多人,可连写)-单片机课程设计报告。四、地点:实验 2 号楼 4 楼单片机实验室五、实验环境PC 机 Keil 开发软件环 启动单片机实验箱 仿真器 编程器各种必须的元器件 万用表等测试仪表5V 直流电源- 1 -七、指导老师:陈莹目 录一 概述 .3(一)设计背景及意义 .3(二)设计内容与要求 .3二 单片机说明 .4(一)单片机简介 .4(二)AT89C51 引脚功能说明 .4三 硬件电路设计及描述 .5(一) 系统总框图 .5(二) 系统的主要功能 .6四 软件设计流程及描述 .9(一)软件设计流程图 .9(二)源程序代码 .10五 设计中遇到的问题及
3、解决方法 .11六 系统综合设计体会 .12(一)本人所作的工作 .12(二)课程设计体会 .12七 参考文献 .132艺术彩灯控制系统的设计一 概述(一)设计背景及意义随着人们生活环境的不断改善和美化, 在许多场合可以看到艺术彩灯。艺术彩灯由于其丰富的灯光色彩, 低廉的造价以及控制简单等特点而得到了广泛的应用, 用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式样的艺术彩灯控制器大多数用全硬件电路实现, 电路结构复杂、功能单一, 这样一旦制作成品只能按照固定的模式闪亮, 不根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电
4、路复杂、功率损耗大等缺点。本文提出了一种基于AT89C51单片机的艺术彩灯控制方案,实现对艺术彩灯的控制。通过艺术彩灯控制系统的设计,可以很好地了解到M51系列单片机AT89C51单片机中断状态转换技术的综合使用方法。艺术彩灯结构简单,并且具备了最小实用单片机系统的基本构成。通过本次设计,可以清楚设计和实现一个单片机实用系统需要哪些外围设备的基本电路,以及如何使用单片机系统中断功能。此次设计也可以进一步学习和领会单片机应用系统的设计、开发和调试的思路、技巧和思路和方法。(二)设计内容与要求1、设计内容1设计并实现具有复位功能的单片机小系统;2利用单片机进行灯光的场景开关控制;3利用单片机进行灯
5、光的循环点亮控制及速度变化控制;4利用单片机进行灯光的三色联动定时控制。2、设计要求1能启动、停止;2能通过开关进行功能选择;3要体现循环、组合和色彩变化的控制功能和效果,实现三色联动定时控制,控制变化规 律的类型或功能不少于 5 种;3二 单片机说明(一)单片机简介单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和 I/O 接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过 1
6、、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发展,它们的 CPU 功能在增强,内部资源在增多,引脚的多功能化,以及低电压底功耗(二)AT89C51 引脚功能说明AT89C51 是一个低电压,高性能单片机,片内含 4k bytes 的可反复擦写的只读程序存储器(PEROM )和 128 bytes 的随机存取数据存储器,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器和 Flash 存储单元。AT89C51 是一个低功耗高性能单片机,40 个引脚,32 个外部双向输入/输出( I/O)端口,同时内含 2 个外中断口,2 个 16 位可编程定时计数器,2 个全双工串行通
7、信口。图 1 AT89C51 引脚排列图4如图 1 所示 P0 口:它是一个三态双向口,可以作为地址/数据分时复用接口,也可以作为通用的 I/O 接口。应当注意的是:当 P0 口输出数据时,必须外接上拉电阻。P1 口:P1 口是一个内部提供上拉电阻的 8 位准双向 I/O 口,P1 口缓冲器能接收输出 4TTL门电流,它只能作通用 I/O 接口使用。P2 口:P2 口为一个内部上拉电阻的 8 位准双向 I/O 口,P2 口缓冲器可接收,输出 4 个TTL 门电流。 P2 口还可以作为高 8 位地址线,用于外部程序存储器或 16 位地址外部数据存储器进行存取。P3 口:P3 口管脚是 8 个带内
8、部上拉电阻的准双向 I/O 口,可接收输出 4 个 TTL 门电流。P3 口的每一个引脚还具有第二种功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)RST:复位输入,该引脚为单片机上电复位或掉电保护端。/V pp: 程序存储器的内外部选通线XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入XTAL2:来自反向振荡器的输出LE/PROG:地址
9、锁存信号输出端。当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。一般情况下,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。三 硬件电路设计及描述(一) 系统总框图5AT89C51按键电路复位电路时钟振荡电路LED 显示电路图 2 系统设计框图 (二) 系统的主要功能图 3 系统硬件电路图系统主要实现五个功能:1.通过复位电路开关来实现系统的复位功能;2.通过开关 P0.0 来控制灯光。当开关打开时,系统开始工作;当开关关闭时,系统停止工作;3 开关 P0.1 控制灯光的循环点亮,从 P1.0 开始 LED
10、彩灯依次点亮;4.开关 P0.3、P0.4 控制灯的亮灭速度,使彩灯有速度的变化;5.开关 P0.2 控制灯光的三色联动。6(三) 硬件系统各部分功能描述(1) 时钟振荡电路图 4 时钟振荡电路图系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89C51 单片机内部有一个用于构成振荡器的高增益反相放大器。引脚 XTAL1 和 XTAL2 分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容 C1 和 C2 构成并联谐振电路,接在放大器的反馈回路中。此系统电路的晶体振荡器的值为 12MHz,电容值约为 30F。(
11、2)复位电路图 5 复位电路图复位是由外部的复位电路来实现的。片内复位电路是复位引脚 RST 通过一个斯密特触发器与复位电路相连,复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是按键复位电路,如图所示。当时钟频率选用 6MHz 时,C 取 22F,Rs 约为200,Rk 约为 1K。若要复位,只需按图中的 RESET 键,此时电源 VCC 经过 R1、R2 分压,在 RST 端产生一个复位高电平。(3)按键电路7图 6 按键电路图 本设计用到 P0.0P0.5 五个 I/O 口作为输入口,按键输入均采用低电平有效。独立式按键的软件可采用中断方式和查询方式,本设计中按键程序的就
12、是采用中断方式。图中 P0.0的按键是场景开关,即控制整个系统的状态,P0.1 的按键控制灯光的循环点亮,P0.2 的按键控制循环加速,P0.3 的按键控制循环减速,P0.4 的按键控制三色联动。(4)LED 显示电路图 7 LED 显示电路图此次采用发光二极管与单片机的 P1 口相连接,其电路图如图所示。发光二极管接+5V电源,其他管脚分别接 P1 口的 8 个端口.此次设计发光二极管可显示两种状态,适合用于显示系统状态。此处用到 8 个,红、绿、黄三种颜色的发光二极管,以便于观察循环点亮和三色联动的实验现象。8四 软件设计流程及描述(一)软件设计流程图开 始赋初始值有开关按下?5 个开关判
13、断? 调用 START 程序YYYYNNNNNNN按键释放?结束循环点亮三色联动加速减速Y开关 1 按下?开关 0 按下?Y开关 2 按下?Y开关 3 按下?Y开关 4 按下?场景开关按下?NN9(二)源程序代码ORG 0000HAJMP START ;指向 START 程序ORG 0010HMAIN: MOV P1,#0FFH ;“设置 P1 口为输出口“START: MOV P0,#0FFH 设置 P0 口为输入口JNB P0.0,KEY0 ; 检测场景开关状态,若按键断开则将全部电灯熄灭SJMP START ; 返回开始处,继续检测场景开关KEY0: JNB P0.1, KEY1 JNB
14、 P0.2, KEY2JNB P0.3, KEY3JNB P0.4, KEY4 ;检测是否是否按下SJMP STARTSTART1: MOV P0, #0FFHACALL DELAYMOV A, P1JNB ACC.1, KEY1 ;“ACC.0=?若为 0 则 P0.0 对应的键按下转向执行JNB ACC.2, KEY2 ;“ACC.0=?若为 0 则 P0.1 对应的键按下转向执行JNB ACC.3, KEY3 ;“ACC.0=?若为 0 则 P0.2 对应的键按下转向执行JNB ACC.4, KEY4 ;“ACC.0=?若为 0 则 P0.3 对应的键按下转向执行SJMP START1
15、;“返回 START1 处,继续检测按键状态“KEY1: MOV R2,#08H ;“设置循环点亮次数“MOV R5,#0FEH ;“点亮 P1.0 口灯“NEXT0: MOV A,P0 ;检测按键 0 的状态,若断开则返回程序头JNB ACC.3,KEY4 JNB ACC.4,KEY3 ;检测加速减速按钮是否按下JB ACC.0,MAIN ;检测开关是否按下MOV A,R5MOV P1,AACALL DELAYMOV A,R5RL A ;“循环左移 “MOV R5,ADJNZ R2,NEXT0SJMP KEY1 ;继续执行程序KEY2: MOV A,P0 ;按键 2,三色联动, JB ACC.0,MAINJNB ACC.4, KEY3JNB ACC.3, KEY4; 判断场景开关和加速减速开关MOV P1,#0DAH ;“先点亮 P1.0,P1.2,P0.5 口灯“ACALL DELAY2MOV P1,#0C7H ;“点亮 P1.3,P14,P1.5 口灯“