基于单片机彩灯控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P1 = ((LEDStatus>>8)&0x00FF);
}
void Mode_1(void)
{
LEDShow(0xfffff<<LEDIndex);
LEDIndex = (LEDIndex+1)%17;
delay(10);
}
void Mode_2(void)
{
unsigned int a=0x77,b,c;
程序流程图:
中断程序:
主程序:
四、项目设计结果分析(分析试验过程中获得的数据、波形、现象或问题的正确性和必然性,分析产生不正确结果的原因和处理方法)
开始时编写的程序思想是在主程序不停等待中断,在中断中执行彩灯模式的死循环模式,再来中断后响应中断跳出循环执行下一个模式,这样不断的通过中断进入死循环,不停的中断套中断。后把程序烧到单片机后发现不能切换模式。最后反观程序才明白一个中断时不能不停嵌套的。
SBUF=disp_data;
while(TI==0)
TI=0;
for(j=0;j<3;j++)
{disp_data=0xff;
SBUF=disp_data;
while(TI==0)
TI=0;
}
delay(10);
}
void LEDShow(unsigned int LEDStatus)
{
P0 = (LEDStatus&0x00FF);
}
aFra Baidu bibliotek0xff;
for(j=0;j<9;j++)
附件:
1.程序:
#include <REG52.H>
int i=0,j=0,g=0;
LEDIndex=0;
unsigned char table[16]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff};
unsigned char disp_data;
[1]祈伟.单片微型计算机原理与接口技术教程[M]北京:北京航空航天大学出版社,2007
[2]刘同法、陈忠平眭仁武等.单片机基础与最小系统实践[M]北京:北京航空航天大学出版社,2007
[3]毛敏.MCS-51系列单片机系统及应用实践教程[M]高等教育出版社, 2006
[4]陈忠平等.单片机原理及接口[M]北京:清华大学出版社,2007
电子工程课程设计报告书
课程名称智能电子小产品课程设计
课程设计总评成绩
学生姓名、学号
学生专业班级
指导教师姓名
课程设计起止日期2012.06.21---2012.07.09
一、课程设计项目名称
基于单片机彩灯控制
二、项目设计目的及技术要求
项目设计目的:本设计以AT89C52单片机为核心并用它来控制发光二极管双灯点亮循环的实验装置,用AT89C52单片机控制16个发光二极管发光,实现亮点的循环移动。通过Proteus软件设计、仿真、PCB制版,并能掌握通过软件控制发光二极管的思路和技巧。这次设计重点就在于利用单片机的知识去控制系统的运行。
显示是用了单片机的串行输出,扩展板上是四个移位寄存器74LS164,和四个共阳极数码管。单片机串型输出用的是工作方式0(移位寄存器方式)。串型数据通过RXD输入输出,TXD输出频率为f/12的时钟脉冲。数据格式为8位,地位在前高位在后。单片机RTD接74LS164的AB, TXD接CLK。
74LS164内部结构图:
sbit disp=P3^1;
void delay(int ms)
{
int i1,j1;
for(i1=0;i1<ms;i1++)
{
for(j1=0;j1<1141;j1++);
}
}
void dip(int i)
{
PCON=0x00;
SCON=0x00;
ES=0;
disp_data=table[i];
[5]林伸茂、管继等.《8051单片机彻底研究实习篇》第二版[M]北京:人民邮电出版社, 2004
[6]李广弟等.单片机原理机应用[M]北京:北京航空航天大学出版社,2003
[7]潘永雄.《新单片机原理及应用》第三版[M]西安:西安电子科技大学出版社, 2003
[8]公茂法、马宝甫编著.单片机人机接口实例集[M]北京:北京航空航天出版社,1998
for(i=0;i<4;i++)
{
b=a>>7;
c=a<<1;
a=c|b;
P0=a;
P1=a;
delay(15);
}
}
void Mode_3(void)
{unsigned int a;
P0=0xFF;
P1=0x00;
a=0xff;
for(j=0;j<9;j++)
{
P0=a;
a=a<<1;
delay(15);
74LS164真值表及时序图
H-高电平 L-低电平 X-任意电平
↑-低到高电平跳变
QA0,QB0,QH0 -规定的稳态条件建立前的电平
QAn,QGn -时钟最近的↑前的电平
单片机串行输出四组数据到寄存器中,使数码管对应四个数字。输出的码字与具体的连接有关,此扩展板1-9的码字为0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09
技术要求:
1:彩灯至少有5种工作模式。
2:当按下按键后,模式可以切换。
3:同时数码管要显示此时是第几个模式。
三、项目设计方案论证(可行性方案、最佳方案、软件程序、硬件电路原理图和PCB图)
通过单片机控制二极管的闪烁,通过中断来改变模式同时串行输出数码管。P0,P1口接16个二极管,P3口接扩展板的数码显示接口。
小结:
本次课程设计耗时三个星期,让理论联系实际,真正的体会了单片机的应用。同时让我掌握一部分的C语言编写程序能力,也巩固了以前所学的东西。还有要感谢陈迪虎,汪波同学的帮助,在程序出现问题时,帮我指出了错误。同时还要感谢指导老师们的帮助。
五、参考文摘(相关文摘不少于5篇,记录每篇文献的作者姓名.文献名称.文献发行城市:文献出版社,出版年;文献内容摘要, 每篇不少于100字)
系统图
模式一是P1,P2口从左到右依次点亮。
模式二是P1,P2 16个二极管每隔三个亮着,每次亮着的灯向前移一位。
模式三是P1口全熄,P2全亮,P1口依次点亮后P2口依次熄灭。
模式四是P1口全亮,P2全熄,P1口依次熄灭后P2口依次点亮。
模式五是亮点从心型上端从两边移动下来。
主程序是从判断是哪个模式到进入模式运行不停循环,当外部中断0来了时响应中断,中断程序是模式加一并显示此时是模式几。
}
void Mode_1(void)
{
LEDShow(0xfffff<<LEDIndex);
LEDIndex = (LEDIndex+1)%17;
delay(10);
}
void Mode_2(void)
{
unsigned int a=0x77,b,c;
程序流程图:
中断程序:
主程序:
四、项目设计结果分析(分析试验过程中获得的数据、波形、现象或问题的正确性和必然性,分析产生不正确结果的原因和处理方法)
开始时编写的程序思想是在主程序不停等待中断,在中断中执行彩灯模式的死循环模式,再来中断后响应中断跳出循环执行下一个模式,这样不断的通过中断进入死循环,不停的中断套中断。后把程序烧到单片机后发现不能切换模式。最后反观程序才明白一个中断时不能不停嵌套的。
SBUF=disp_data;
while(TI==0)
TI=0;
for(j=0;j<3;j++)
{disp_data=0xff;
SBUF=disp_data;
while(TI==0)
TI=0;
}
delay(10);
}
void LEDShow(unsigned int LEDStatus)
{
P0 = (LEDStatus&0x00FF);
}
aFra Baidu bibliotek0xff;
for(j=0;j<9;j++)
附件:
1.程序:
#include <REG52.H>
int i=0,j=0,g=0;
LEDIndex=0;
unsigned char table[16]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff};
unsigned char disp_data;
[1]祈伟.单片微型计算机原理与接口技术教程[M]北京:北京航空航天大学出版社,2007
[2]刘同法、陈忠平眭仁武等.单片机基础与最小系统实践[M]北京:北京航空航天大学出版社,2007
[3]毛敏.MCS-51系列单片机系统及应用实践教程[M]高等教育出版社, 2006
[4]陈忠平等.单片机原理及接口[M]北京:清华大学出版社,2007
电子工程课程设计报告书
课程名称智能电子小产品课程设计
课程设计总评成绩
学生姓名、学号
学生专业班级
指导教师姓名
课程设计起止日期2012.06.21---2012.07.09
一、课程设计项目名称
基于单片机彩灯控制
二、项目设计目的及技术要求
项目设计目的:本设计以AT89C52单片机为核心并用它来控制发光二极管双灯点亮循环的实验装置,用AT89C52单片机控制16个发光二极管发光,实现亮点的循环移动。通过Proteus软件设计、仿真、PCB制版,并能掌握通过软件控制发光二极管的思路和技巧。这次设计重点就在于利用单片机的知识去控制系统的运行。
显示是用了单片机的串行输出,扩展板上是四个移位寄存器74LS164,和四个共阳极数码管。单片机串型输出用的是工作方式0(移位寄存器方式)。串型数据通过RXD输入输出,TXD输出频率为f/12的时钟脉冲。数据格式为8位,地位在前高位在后。单片机RTD接74LS164的AB, TXD接CLK。
74LS164内部结构图:
sbit disp=P3^1;
void delay(int ms)
{
int i1,j1;
for(i1=0;i1<ms;i1++)
{
for(j1=0;j1<1141;j1++);
}
}
void dip(int i)
{
PCON=0x00;
SCON=0x00;
ES=0;
disp_data=table[i];
[5]林伸茂、管继等.《8051单片机彻底研究实习篇》第二版[M]北京:人民邮电出版社, 2004
[6]李广弟等.单片机原理机应用[M]北京:北京航空航天大学出版社,2003
[7]潘永雄.《新单片机原理及应用》第三版[M]西安:西安电子科技大学出版社, 2003
[8]公茂法、马宝甫编著.单片机人机接口实例集[M]北京:北京航空航天出版社,1998
for(i=0;i<4;i++)
{
b=a>>7;
c=a<<1;
a=c|b;
P0=a;
P1=a;
delay(15);
}
}
void Mode_3(void)
{unsigned int a;
P0=0xFF;
P1=0x00;
a=0xff;
for(j=0;j<9;j++)
{
P0=a;
a=a<<1;
delay(15);
74LS164真值表及时序图
H-高电平 L-低电平 X-任意电平
↑-低到高电平跳变
QA0,QB0,QH0 -规定的稳态条件建立前的电平
QAn,QGn -时钟最近的↑前的电平
单片机串行输出四组数据到寄存器中,使数码管对应四个数字。输出的码字与具体的连接有关,此扩展板1-9的码字为0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09
技术要求:
1:彩灯至少有5种工作模式。
2:当按下按键后,模式可以切换。
3:同时数码管要显示此时是第几个模式。
三、项目设计方案论证(可行性方案、最佳方案、软件程序、硬件电路原理图和PCB图)
通过单片机控制二极管的闪烁,通过中断来改变模式同时串行输出数码管。P0,P1口接16个二极管,P3口接扩展板的数码显示接口。
小结:
本次课程设计耗时三个星期,让理论联系实际,真正的体会了单片机的应用。同时让我掌握一部分的C语言编写程序能力,也巩固了以前所学的东西。还有要感谢陈迪虎,汪波同学的帮助,在程序出现问题时,帮我指出了错误。同时还要感谢指导老师们的帮助。
五、参考文摘(相关文摘不少于5篇,记录每篇文献的作者姓名.文献名称.文献发行城市:文献出版社,出版年;文献内容摘要, 每篇不少于100字)
系统图
模式一是P1,P2口从左到右依次点亮。
模式二是P1,P2 16个二极管每隔三个亮着,每次亮着的灯向前移一位。
模式三是P1口全熄,P2全亮,P1口依次点亮后P2口依次熄灭。
模式四是P1口全亮,P2全熄,P1口依次熄灭后P2口依次点亮。
模式五是亮点从心型上端从两边移动下来。
主程序是从判断是哪个模式到进入模式运行不停循环,当外部中断0来了时响应中断,中断程序是模式加一并显示此时是模式几。