设计报告
课程名称:单片机与接口技术
项目名称:基于单片机的彩灯设计
专业:轨道交通信号与控制班级:轨道二班
学号:16310604姓名:刘琳
任课教师:孔德尉备注:
完成日期:2017年10 月10 日
‘
1 项目功能说明
本项目实现了16个发光二极管的驱动,共包含4种颜色,发光二极管依次排列,二极管依次被点亮,即完成实验。
2仿真电路设计
2.1电路图中选用的硬件:
一个AT89C51,两个CAP,一个CAP-ELEC,一个CRYSTAL,16个RES,9个LED-YELLOW,3个LED-BLUE,1个LED-GREEN,3个LED-RED,3个POWER,2个GROUND。
2.2电路图中选用的硬件特性:
1)AT89C51:与MCS-51兼容,4K字节可编程FLASH存储器,数据保存时间10年,全静态工作,三级程序存储器锁定,128*8位内部RAM,可编程串行通道。
2)CAP:
3)CAP-ELEC:
4)CRYSTAL:
5)RES:
6)LED:
7)POWER:
8)GROUND:
2.3硬件与单片机的连接引脚:
C1,C2,CRYSTAL分别连接单片机18,19引脚;C3,R9分别连接单片机9,31引脚,D3,D9,D6,D18,D2,D21,D13,D1分别连接引脚P1.7-P1.0;D20,D10,D17,D11,D14,D19,D16,D7分别连接引脚P3.0-P3.7。
2.4电路仿真图:
图2.1 小彩灯仿真电路图
3程序设计思路与程序流程
3.1设计思路
本文提出了一种基于AT89C51单片机的彩灯控制方案,实现对彩灯的控制。
本方案以AT89C51单片机作为主控核心,与显示、驱动等模块组成核心主控制模块,可以显示不同的花样。
3.2程序流程图
4程序清单
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
void delay( )
{
uchar i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
void main( )
{
uchar i,temp;
while(1)
{
temp=0xfe; //初值为11111110
for(i=0;i<16;i++)
{
P1=temp; //temp值送入P1口
delay( );//延时
temp=_crol_(temp,1);//temp值循环左移1位
P2=temp; //temp值送入P2口
delay( ); //延时
temp=_crol_(temp,1); //temp值循环左移1位
for(i=0;i<16;i++)
{
P1=temp;//temp值送入P1口
delay( ); //延时
temp=_crol_(temp,1); //temp值循环左移1位
P2=temp; //temp值送入P2口
delay( ); //延时
temp=_crol_(temp,1);//temp值循环左移1位
} }
}
5 问题与解决
通过这次的项目报告,使我对硬件电路的工作原理有进一步的认识和学习,在做的过程中也遇到了一些问题,用的keil软件,经过不断地调试终于使编译成功,然后将其加到protel中设计好的彩灯图中进行仿真,出现个别错误,在不断地改进下终于没有错误。
这个过程加强了我思考问题的完整性和实际生活联系的可行性,培养了综合应用的能力,对单片机的各个管脚的功能也有了进一步的认识。