单片机节日彩灯设计
1、 课设目的
单片机课程设计是配合电子技术基础课程与实验教学的一个非常重要的教学环节。 它不但能巩固我 们已所学的单片机技术的理论知识, 而且能提高我们的电子电路的设计水平, 还能加强我们综合分析问 题和解决问题的能力,进一步培养我们的实验技能和动手能力,启发我们的创新意识几创新思维。节日彩灯应用于各种场合,如学校,企事业单位,家庭等可以应用于节日彩灯的控制、广告灯控制等场所。通过这个实验,能够对同学们的动手能力有所提高和培养,提高同学对单片机的基本原理的理解,学会一些单片机的简单应用。
总体设计本系统采用AT89C51单片机作为中央处理器。其主要任务收集按键的信息,判断按 键时否按下来执行相应彩灯的点亮方式 在本系统中, AT89C51单片机的 P1口用于接按键,方便使用者选择方式。P0口接 的时LED彩灯。下面将从硬件电路设计和软件电路设计及仿真效果三个方面详细阐述。通过这个实验,能够对同学们的动手能力有所提高和培养,提高同学对单片机的基本原理的理解,学会一些单片机的简单应用。了解单片机的基本原理以及基本应用;提高动手制作单片机开发板的能力;掌握基本I/O口的输入输出方法;掌握中断的处理方法以及编程方法;掌握焊接单片机开发板所需要的最基本的最小系统电路。
在设计中用到单片机最小系统:复位电路以及时钟(晶振)电路、以及各种颜色的彩灯。
复位电路:
复位是单片机的初始化操作,目的是使CPU以及各个寄存器处于一个确定的初始状态。分为手动复位方式和上电自动方式。
时钟电路:
51单片机的时钟信号可由芯片内部的震荡电路产生,也可以由外部产生。 程序烧写电路:
在使用串口进行烧写电路时,用到MAX232芯片以及几个104瓷片电容。用STC软件进行程序烧写。 硬件所用器件:
3.1电路图
3.2 AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
主要管脚说明: VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口同时为闪烁编程和编程校验接收一些控制信号。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
4、软件设计
首先单片机执行四种方案的程序等待中断。中断中判断是第几次执行相应的程序。
4.1 程序流程图如图所示:
图4-1 程序流程图
4.2 系统调试
问题:在系统软件调试中,中断执行时不能返回程序
解决方法:在中断中灯的延时指令for(i=0;i
4.3 程序清单
#include #define uint unsigned int #define uchar unsigned char unsigned int i,j,y,n,m=0; uint c,d,e; uint p=0xff; void delay() { }
void main() { uint a=0x7f;
for(i=0;i
uint b=0x7f; uint x;
EA=1;EX0=1;IT0=1;
//第一次
while(1)
**********************************************************************
{for(x=0;x>x; delay(); }
for(x=0;x>x; delay(); } { P1=a>>x; delay(); }
//P2控制N的 \ 流水显示 1~7
//P1控制N的 第二个| 流水显示 7~0
for(x=0;x
delay();
//第二次
**********************************************************************
P0=0xff; P2=0xff; P1=0xff;
//全灭
delay();delay();delay(); P0=0x0f; P0=0x00; P2=0x1f; P2=0x01; P1=0x0f; P1=0x00; P2=0x00; delay();
//第三次
//P0.7~0.4 亮 //P0.0~0.7 亮 //P2.7~2.5 亮 //P2.7~2.1 亮 //P1.7~1.4 亮 //P1.0~1.7 亮
//P2 口控制全亮 目的控制P2.0
delay();delay();delay(); delay();delay();delay(); delay();delay();delay(); delay();delay();delay(); delay();delay();delay(); delay();delay();delay();
**********************************************************************
P0=0xff; P2=0xff; P1=0xff; delay(); P0=0x00; P2=0x01; P1=0x00;
//P0 控制的 第一个| 全亮 //P2 控制的 \ 全亮 //P1 控制的 第二个| 全亮
//全灭
delay();delay();delay(); delay();delay();delay();
}
P2=0x00;
//P2 控制的 第三个1 亮 //第四次
delay();delay();delay();
**********************************************************************
P0=0xff; P2=0xff; P1=0xff;
//全灭 //闪烁3次
delay();delay();delay(); for(x=0;x
//全亮
delay();delay();delay();
//全灭
delay();delay();delay();
void int0() interrupt 0 {
EX0=0; IT0=0; EA=0; c=P0; d=P1; e=P2; m++; if(m==1) {
//关中断
//保护现场
//中断次数 第几次中断
m=m%3;
//第一次中断
}
{
for(y=0;y
for(n=0;n
//全灭
for(i=0;i
P0=0x00; //全亮 for(i=0;i
for(n=0;n
for(y=0;y
P1=p>y;P0=p
P1=p>>y;P2=p>y; for(i=0;i
//第二次中断
//第三次中断
for(j=0;j
}} }
P1=d; P2=e;
P0=c; //恢复现场 EA=1;IT0=1;EX0=1; //开中断
}
结束语
通过本次课程设计,加强了我的动手操作能力,将课堂上所学的知识应用到实践中来,并且了解了单片机的基本工作原理和使用方法,在实践过程中练习了IO口的输入输出方式,熟练的掌握了中断的处理及其编程方法,掌握焊接单片机开发板所需要的最基本的最小系统电路。通过本次课设,使我对51单片机个C语言有了进一步了解。使我能够综合运用以前在课堂中学到的知识做一些简单的电子产品的仿真。初步掌握了这些元件,可以编写一个较完整的实用程序。
参考文献
1、《单片机基础》 李广弟 北京航空航天大学
2、《MCS-51系列单片微型计算机原理与接口技术》 曹素芬 东北大学出版社 3、《单片微型计算机原理、应用及接口技术》 张迎新 编著 国际工业出版社
节日彩灯使生活中常常用到的装饰物品。它集中地运用了单片机、LED、 等技术,是典型的基于单片机的电子产品。本文以 AT89C51 单片机为控制核心,采用模 块化的设计方案,运用 LED 彩灯、按键等组成电路,实现彩灯在开启时满足不一样的闪亮 方法。按键可以在彩灯使用的时候选择不同的亮法,使彩灯变化多样。通过按键能方便使用者选择不同样的亮法。
关键词: 节日彩灯 AT89C51 循环
1、 课设目的…„„„„„„„„„„„„„„„„„„„„„„„„1 2、 总体设计„„„„„„„„„„„„„„„„„„„„„„„„„2 3、 硬件设计„„„„„„„„„„„„„„„„„„„„„„„„„„3 3.1 电路图„„„„„„„„„„„„„„„„„„„„„„„„„„„„3 3.2 AT89C51简介„„„„„„„„„„„„„„„„„„„„„„„„4 4、 软件部分的程序流程图„„„„„„„„„„„„„„„„„„„6 4.1 程序流程„„„„„„„„„„„„„„„„„„„„„„„„„„6 4.2 系统调试„„„„„„„„„„„„„„„„„„„„„„„„„„„6 4.3 程序清单„„„„„„„„„„„„„„„„„„„„„„„„„„„7 结束语„„„„„„„„„„„„„„„„„„„„„„„„„„„„„12
参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„13
《单片机原理及接口技术》课程设计
题目: 节日彩灯设计
班 级:
姓 名: 学 号: 指导教师: 时 间:
课程设计成绩评定表