1、艺术彩灯的控制设计题目 艺术彩灯的控制 任务与要求1)以MCS-51系列单片机为核心器件,组成一个艺术彩灯控制系统。2)七彩灯的跳变、渐变控制。3)跳变、渐变时间的可调。装订线 艺术彩灯的控制摘要:本文介绍了用单片机芯片AT89S52,并用C语言编程所设计的艺术彩灯的控制,简要地说明电路图,并且给出了硬件组成及其功能。关键词:AT89S52、C语言、艺术彩灯硬件部分:本课程设计硬件主要是单片机芯片AT89S52。AT89S52主要性能:1.与MCS-51单片机产品兼容2. 8K字节在系统可编程Flash存储器3.32个可编程I/O口线4.三个16位定时器/计数器5. 八个中断源6.全双工UAR
2、T串行通道7.低功耗空闲和掉电模式8. 掉电后中断可唤醒9. 双数据指针l0. 掉电标识符AT89S52功能特性描述:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52部分引脚功能:VCC : 电源GND: 地P1 口:P1 口是一个具有内部上拉电阻的
3、8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 M
4、ISO(在系统编程用)P1.7 SCK(在系统编程用)P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。引脚号第二功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT0(外部中断0)P3.4 T0(定时器0外部输入)P3.
5、5 T1(定时器1外部输入)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器写选通)RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生
6、电路的输入端。XTAL2:振荡器反相放大器的输出端。 图一 89S52芯片引脚图硬件的两个基本电路:图二 时钟电路图三 复位电路其总的硬件电路图及实物图如下:软件部分由C语言编程控制彩灯的渐变及跳变,其流程如下:LED逐盏渐亮LED每两盏渐亮LED三盏一起渐亮具体程序如下:#include #define uchar unsigned char #define uint unsigned intuint time,time1,i,n=50; bit mode;sbit key1=P32; /加sbit key2=P33; /减uchar code table=0xfe,0xfd,0xfb,0x
7、fc,0xf9,0xfa,0xf8; /流水控制表格 void init() /外部中0,1断初始化 EA=1; IT0=1; EX0=1; IT1=1; EX1=1; void pwm() time+; if(time1=time) P1=tablei; if(timen) if(mode=0)time1+; if(mode=1)time1-; time=0; if(time1n) mode=1; if(time1400)n=400; void int1() interrupt 2 n=n-50; if(n100)n=50; 装订线 装订线 装订线 参考文献:单片机原理及接口技术(第三版) 李朝青 北京航空航天大学出版社C语言程序设计教程 朱鸣华 机械工业出版社 装订线 康华光主编,电子技术基础(数字部分),高等教育出版社,2006年1月第5版彭介华主编,电子技术课程设计指导,高等教育出版社,1997年10月第1版