基于单片机彩灯控制.docx
- 文档编号:16534370
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:14
- 大小:1.94MB
基于单片机彩灯控制.docx
《基于单片机彩灯控制.docx》由会员分享,可在线阅读,更多相关《基于单片机彩灯控制.docx(14页珍藏版)》请在冰点文库上搜索。
基于单片机彩灯控制
电子工程课程设计报告书
课程名称智能电子小产品课程设计
课程设计总评成绩
学生姓名、学号
学生专业班级
指导教师姓名
课程设计起止日期2012.06.21---2012.07.09
一、课程设计项目名称
基于单片机彩灯控制
二、项目设计目的及技术要求
项目设计目的:
本设计以AT89C52单片机为核心并用它来控制发光二极管双灯点亮循环的实验装置,用AT89C52单片机控制16个发光二极管发光,实现亮点的循环移动。
通过Proteus软件设计、仿真、PCB制版,并能掌握通过软件控制发光二极管的思路和技巧。
这次设计重点就在于利用单片机的知识去控制系统的运行。
技术要求:
1:
彩灯至少有5种工作模式。
2:
当按下按键后,模式可以切换。
3:
同时数码管要显示此时是第几个模式。
三、项目设计方案论证(可行性方案、最佳方案、软件程序、硬件电路原理图和PCB图)
通过单片机控制二极管的闪烁,通过中断来改变模式同时串行输出数码管。
P0,P1口接16个二极管,P3口接扩展板的数码显示接口。
系统图
模式一是P1,P2口从左到右依次点亮。
模式二是P1,P216个二极管每隔三个亮着,每次亮着的灯向前移一位。
模式三是P1口全熄,P2全亮,P1口依次点亮后P2口依次熄灭。
模式四是P1口全亮,P2全熄,P1口依次熄灭后P2口依次点亮。
模式五是亮点从心型上端从两边移动下来。
主程序是从判断是哪个模式到进入模式运行不停循环,当外部中断0来了时响应中断,中断程序是模式加一并显示此时是模式几。
显示是用了单片机的串行输出,扩展板上是四个移位寄存器74LS164,和四个共阳极数码管。
单片机串型输出用的是工作方式0(移位寄存器方式)。
串型数据通过RXD输入输出,TXD输出频率为f/12的时钟脉冲。
数据格式为8位,地位在前高位在后。
单片机RTD接74LS164的AB,TXD接CLK。
74LS164内部结构图:
74LS164真值表及时序图
H-高电平L-低电平X-任意电平
↑-低到高电平跳变
QA0,QB0,QH0-规定的稳态条件建立前的电平
QAn,QGn-时钟最近的↑前的电平
单片机串行输出四组数据到寄存器中,使数码管对应四个数字。
输出的码字与具体的连接有关,此扩展板1-9的码字为0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09
程序流程图:
中断程序:
主程序:
四、项目设计结果分析(分析试验过程中获得的数据、波形、现象或问题的正确性和必然性,分析产生不正确结果的原因和处理方法)
开始时编写的程序思想是在主程序不停等待中断,在中断中执行彩灯模式的死循环模式,再来中断后响应中断跳出循环执行下一个模式,这样不断的通过中断进入死循环,不停的中断套中断。
后把程序烧到单片机后发现不能切换模式。
最后反观程序才明白一个中断时不能不停嵌套的。
小结:
本次课程设计耗时三个星期,让理论联系实际,真正的体会了单片机的应用。
同时让我掌握一部分的C语言编写程序能力,也巩固了以前所学的东西。
还有要感谢陈迪虎,汪波同学的帮助,在程序出现问题时,帮我指出了错误。
同时还要感谢指导老师们的帮助。
五、参考文摘(相关文摘不少于5篇,记录每篇文献的作者姓名.文献名称.文献发行城市:
文献出版社,出版年;文献内容摘要,每篇不少于100字)
[1]祈伟.单片微型计算机原理与接口技术教程[M]北京:
北京航空航天大学出版社,2007
[2]刘同法、陈忠平眭仁武等.单片机基础与最小系统实践[M]北京:
北京航空航天大学出版社,2007
[3]毛敏.MCS-51系列单片机系统及应用实践教程[M]高等教育出版社,2006
[4]陈忠平等.单片机原理及接口[M]北京:
清华大学出版社,2007
[5]林伸茂、管继等.《8051单片机彻底研究实习篇》第二版[M]北京:
人民邮电出版社,2004
[6]李广弟等.单片机原理机应用[M]北京:
北京航空航天大学出版社,2003
[7]潘永雄.《新单片机原理及应用》第三版[M]西安:
西安电子科技大学出版社,2003
[8]公茂法、马宝甫编著.单片机人机接口实例集[M]北京:
北京航空航天出版社,1998
附件:
1.程序:
#include
inti=0,j=0,g=0;
LEDIndex=0;
unsignedchartable[16]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xff};
unsignedchardisp_data;
sbitdisp=P3^1;
voiddelay(intms)
{
inti1,j1;
for(i1=0;i1 { for(j1=0;j1<1141;j1++); } } voiddip(inti) { PCON=0x00; SCON=0x00; ES=0; disp_data=table[i]; 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); } voidLEDShow(unsignedintLEDStatus) { P0=(LEDStatus&0x00FF); P1=((LEDStatus>>8)&0x00FF); } voidMode_1(void) { LEDShow(0xfffff< LEDIndex=(LEDIndex+1)%17; delay(10); } voidMode_2(void) { unsignedinta=0x77,b,c; for(i=0;i<4;i++) { b=a>>7; c=a<<1; a=c|b; P0=a; P1=a; delay(15); } } voidMode_3(void) {unsignedinta; P0=0xFF; P1=0x00; a=0xff; for(j=0;j<9;j++) { P0=a; a=a<<1; delay(15); } a=0xff; for(j=0;j<9;j++) { P1=~a; a=a<<1; delay(15); } } voidMode_4(void) {unsignedinta; P1=0xFF; P0=0x00; a=0xff; for(j=0;j<9;j++) { P0=~a; a=a<<1; delay(15); } a=0xff; for(j=0;j<9;j++) { P1=a; a=a<<1; delay(15); } } voidMode_5(void) {unsignedinta,b; P0=0xfe; delay(10); a=0x02; b=0x80; P0=~a; P1=~b; delay(10); for(j=0;j<7;j++) {a=a<<1; b=b>>1; P0=~a; P1=~b; delay(10); } } voidISR0(void)interrupt0 {g++; if(g==6) g=1; dip(g); } voidmain(void) { IT0=1; EX0=1; EA=1; dip (1); while (1) { switch(g) { case1: Mode_1();break; case2: Mode_2();break; case3: Mode_3();break; case4: Mode_4();break; case5: Mode_5();break; default: {g=1;Mode_1();}break; } } } 2.元件清单: 1.φ3(红绿各8个)16 2.1/4W470Ω16 3.排针1 4.排线1 5.电路板1 3.电路原理图: 4.PCB版图:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 彩灯 控制