数字电路课程设计八路彩灯.docx
《数字电路课程设计八路彩灯.docx》由会员分享,可在线阅读,更多相关《数字电路课程设计八路彩灯.docx(15页珍藏版)》请在冰豆网上搜索。
数字电路课程设计八路彩灯
\
J
西安郵電學院
数字电路课程设计报告书
题目:
多路彩灯控制系统
实习报告
一、课程设计题目
多路彩灯控制器
实验目的:
1:
熟悉几种常用集成数字芯片,并掌握其工作原理。
2:
熟悉几种常用集成数字芯片的功能和应用,并掌握其工作原理,进一步学会使用其进行电路设计。
3:
了解一般科学实验的基本步骤,学会用科学精神去处理实际问题。
4:
初步培养了科学严谨的工作作风和实事求是的工作态度。
5:
会合理布线和调配,布线完成后会用万用表等工具来查找错误。
6:
增强动手实践能力;
任务:
设计一个8路彩灯控制器:
1.能演示至少三种花型;
2.彩灯用发光二极管LED模拟。
3.彩灯明暗变化两种节拍交替运行;
4:
用可编程的单片机实现三种花型以及频率的更替;
要求:
1.设计电路实现题目要求;
2.电路在功能相当的情况下设计越简单,用的器件越少越好;
3.注意用电安全,所加电压不能太高,以免烧坏芯片和面包板。
二、总体方案
设计所需元件:
74LS161(四位二进制同步计数器)----------------------2个;
74LS194(移位寄存器)------------------------------4个;
74LS08(四2输入与门)----------------------------1个;
74LS32(四2输入或门)------------------------------------1个
74LS04(六非门)------------------------------------2个;
555(脉冲发生器)-----------------------------------------1个;
发光二极管---------------------------------------------16个;
电容:
4.7μf---------------------------------------1个;
0.01μf--------------------------------------1个;
电阻:
150kΩ--------------------------------------------------1个;
4.7kΩ-----------------------------------1个;
100Ω---------------------------------------1个;
面包板一个;
导线若干。
工具:
万用表一个;
钳子一个。
三种花型设计
花型1:
8路灯分两半。
从左至右渐亮,全亮后,再分两半从左至右渐灭。
循环两次;
花型2:
从中间到两边对称地逐次渐亮,全亮后仍由中间到两边逐次渐灭。
循环两次;
花型3:
从左至右顺次渐亮。
全亮后逆序渐灭。
循环两次。
三、总体方案
彩灯控制系统应该要有信号的输入,然后还要通过161控制花型和节拍,151和74控制输出地频率(节拍变化由151八选一数据选择器完成,节拍的快慢变化可有74双上升沿D触发器完成,它可实现二分频),还要通过194来控制LED的信号输出。
而为了实现花型频率的自动改变,就要在161到达64拍的时候自动的将信号反馈给节拍控制器,所以总体的方案为:
四、主要单元电路的基本原理:
1、时钟产生电路
本课题要求用单一频率的节拍显示彩灯花型,因此,时钟产生电路只需要产生一种节拍。
故用555来实现
2、花型演示电路
由二片移位寄存器194实现。
其八个输出信号端连接八个发光二极管,用其输出信号控制发光二级管的亮灭实现花型演示。
而花型之间的变化通过花型控制电路的输出即161级联的计数器输出控制(它们由同一个CP脉冲控制)。
三种花型:
移存器输出状态编码表
节拍序号
花型1
花型2
花型3
1
00000000
00000000
00000000
2
10001000
00011000
10000000
3
11001100
00111100
11000000
4
11101110
01111110
11100000
5
11111111
11111111
11110000
6
01110111
11100111
11111000
7
00110011
11000011
11111100
8
00010001
10000001
11111110
9
11111111
10
01111111
11
00111111
12
00011111
13
00001111
14
00000111
15
00000011
16
00000001
要用194实现三个花型的连续显示必须对两片194的S1、S0和SL、SR一句节拍的变化进行相应的改变,通过161的输出反馈来控制经过观察每16个CP低位片输出Q1—Q4变化比较频繁,根据变化的花型频率选用高位片的Q5—Q6去控制194的SL、SR、S1、S0的变化从而实现滑行的变化。
现将两片194分为低位片1和高位片2,再将其输出端从低位到高位记为L1~L8。
列出各花型和其对应的194的S1、S0、SL、SR的输入信号及节拍控制信号列表如下:
(用^Li表示Li的取非)
花型
低位片
节拍控制信号
SL
SR
S1
S0
SL
SR
S1
S0
QEQF
1
X
^L8
0
1
X
^L8
0
1
00
2
^L8
X
1
0
X
^L8
0
1
10
3
X
^L8
0
1
X
L4
0
1
01
X
^L8
0
1
x
L4
0
1
11
列出卡诺图分析
194低位片
QE
QF
0
1
QE
QF
0
1
0
X
^L8
0
0
1
1
X
X
1
0
0
SL=^L8S1=QE.^QF
QE
QF
0
1
QE
QF
0
1
0
^L8
X
0
1
0
1
^L8
^L8
1
1
1
SR=^L8S0=^(QE.^QF)
194高位片
QE
QF
0
1
QE
QF
0
1
0
X
X
0
^L8
^L8
1
X
X
1
L4
XL4
SL=XSR=^QF.^L8+QF.L4
QE
QF
0
1
QE
QF
0
1
0
0
0
0
1
1
1
0
0
1
1
1
S1=0S0=1
由上图分析可以得到控制194高、低位片的左移右移变化控制端S1、S0以及串行输入端的由161的输出端QE、QF和本身输出端L4和^L8控制。
用去QA—QH表示161从低位到高位的个输出端。
控制结果表达式如下:
194低位片
194高位片
S1=QE.^QF
S1=0
S0=^S1
S0=1
SL=^L8
SL=X
SR=^L8
SR=QF.L4+^QF.^L8
3花型控制信号电路
由二片161级联的模128(三种花型节拍每种显示两遍,再总体重复一遍的总节拍数)计数器。
161的级联用的是同步,并用^QH清零。
当三种花型全新显示一遍后(总共64拍)161的输出变为00000100所以将161高位片的Q2(即QG)信号输给节拍控制电路的151的A来通过节拍控制电路改变第二遍花型显示的频率。
161的CP脉冲来自节拍控制电路中74的输出端Y。
4节拍控制电路
151A端接的是161的高位片的QG即当到达第64拍时QG为1接下来的65~128拍为变慢半拍后的脉冲输出
当A端输入为0的时候74端Q0-Q4为1111,当A端输入为1的时候Q0-Q4变为1010,节拍变慢一半。
5单片机STM32对彩灯的控制
通过stm32的推挽输出信号,给彩灯高低电平1和0来控制彩灯的亮和灭,通过设计彩灯的代号依次是p0—p7依次接PAO0-PAOl6,PAO11和实现对彩灯电平信号的控制,用delay()ms来控制电平信号输入的快慢,从而控制节拍频率的变换。
五总体仿真电路图
STM32单片机实现彩灯控制的代码为:
#include"sys.h"
#include"usart.h"
#include"delay.h"
#include"led.h"
#include"key.h"
#include"stdlib.h"
#include"lcd.h"
//#include"sd.h"
//ALIENTEKMiniSTM32开发板范例代码2
//按键输入实验
//技术支持:
//广州市星翼电子科技有限公司
//voidTURNTOONE(void);
intmain(void)
{
u8t;
Stm32_Clock_Init(9);//系统时钟设置
uart_init(72,9600);
delay_init(72);//延时初始化
LED_Init();//初始化与LED连接的硬件接口
KEY_Init();//初始化与按键连接的硬件接口
LCD_Init();
LED0=0;LED1=0;LED2=0;LED3=0;LED4=0;LED5=0;LED6=0;LED7=0;//点亮LED
//LCD_ShowString(30,40,200,24,24,"MiniSTM32^_^");
//LCD_ShowString(30,70,200,16,16,"CAIDENGTEST");
//LCD_ShowString(30,90,200,16,16,"KEY1:
TWO");
//LCD_ShowString(30,110,200,16,16,"KEY0:
ONE");
//LCD_ShowString(30,130,200,16,16,"PLEASESELECT");
while
(1)
{
t=KEY_Scan
(1);//得到键值
switch(t)
{
caseKEY0_PRES:
//LCD_ShowString(30,150,200,16,16,"ONE:
WATING......");
LED0=1;LED4=1;delay_ms(1000);//第一种花型
LED1=1;LED5=1;delay_ms(1000);
LED2=1;LED6=1;delay_ms(1000);
LED3=1;LED7=1;delay_ms(1000);
LED0=0;LED4=0;delay_ms(1000);
LED1=0;LED5=0;delay_ms(1000);
LED2=0;LED6=0;delay_ms(1000);
LED3=0;LED7=0;delay_ms(1000);
LED3=1;LED4=1;delay_ms(1000);//第二种花型
LED2=1;LED5=1;delay_ms(1000);
LED1=1;LED6=1;delay_ms(1000);
LED0=1;LED7=1;delay_ms(1000);
LED3=0;LED4=0;delay_ms(1000);
LED2=0;LED5=0;delay_ms(1000);
LED1=0;LED6=0;delay_ms(1000);
LED0=0;LED7=0;delay_ms(1000);
LED0=1;delay_ms(1000);//第三种花型
LED1=1;delay_ms(1000);
LED2=1;delay_ms(1000);
LED3=1;delay_ms(1000);
LED4=1;delay_ms(1000);
LED5=1;delay_ms(1000);
LED6=1;delay_ms(1000);
LED7=1;delay_ms(1000);
LED0=0;delay_ms(1000);
LED1=0;delay_ms(1000);
LED2=0;delay_ms(1000);
LED3=0;delay_ms(1000);
LED4=0;delay_ms(1000);
LED5=0;delay_ms(1000);
LED6=0;delay_ms(1000);
LED7=0;delay_ms(1000);
break;
caseKEY1_PRES:
//LCD_ShowString(30,150,200,16,16,"TWO:
WATING......");
LED0=1;LED4=1;delay_ms(500);
LED1=1;LED5=1;delay_ms(500);
LED2=1;LED6=1;delay_ms(500);
LED3=1;LED7=1;delay_ms(500);
LED0=0;LED4=0;delay_ms(500);
LED1=0;LED5=0;delay_ms(500);
LED2=0;LED6=0;delay_ms(500);
LED3=0;LED7=0;delay_ms(500);
LED3=1;LED4=1;delay_ms(500);
LED2=1;LED5=1;delay_ms(500);
LED1=1;LED6=1;delay_ms(500);
LED0=1;LED7=1;delay_ms(500);
LED3=0;LED4=0;delay_ms(500);
LED2=0;LED5=0;delay_ms(500);
LED1=0;LED6=0;delay_ms(500);
LED0=0;LED7=0;delay_ms(500);
LED0=1;delay_ms(500);
LED1=1;delay_ms(500);
LED2=1;delay_ms(500);
LED3=1;delay_ms(500);
LED4=1;delay_ms(500);
LED5=1;delay_ms(500);
LED6=1;delay_ms(500);
LED7=1;delay_ms(500);
LED0=0;delay_ms(500);
LED1=0;delay_ms(500);
LED2=0;delay_ms(500);
LED3=0;delay_ms(500);
LED4=0;delay_ms(500);
LED5=0;delay_ms(500);
LED6=0;delay_ms(500);
LED7=0;delay_ms(500);
break;
default:
delay_ms(10);
}
}
}
五实验心得
在设计电路的时候存在很多的问题,开始的时候,一直把状态卡诺图画错,导致再设计电路的过程中出现了很多的问题,比如:
灯只亮一半,或者花型特别的乱,没有规律,细心地检查后来才知道这是由于161节拍变换那块的线接错了。
还有就是布线,起初考虑不周全,芯片分布不够合理,出现了许多“特长线”。
不但影响布线速度,而且也会给后来的调试带来不必要的麻烦。
后来只能把板子拆了,重新连接了一遍。
设计好,连接成功后,但是花型还是有问题,于是就通过万用表把每一条线重新测了一遍,结果发现自己有三根线没接,真是粗心惹的祸。
用STM32单片机做彩灯的控制时候,代码就好写多了,但是之前由于编译器没有初始化很多的参数,导致编译一直出错。
在用代码实现多路彩灯的控制的时候,实现了多种想要的花型,感觉单片机,很实用,也很好用,但是还得多加掌握。
通过这次的课程设计我学到了很多书本上没有的知识,真是受益匪浅。
六:
参考文献
1.王锍银主编,《数字电路逻辑设计》,高等教育出版社
2.高书莉主编,《数字系统设计》,北京邮电学院出版社
:
西安邮电学院信息与控制系电子设计过程考核表
学生姓名
杨海坪
班级/学号
测控050406052119
实习单位
实验中心
所在实习部门
3#---511
课程设计时间
07年6月25日—07年7月6日
具体实习内容
第一周
周一:
听老师讲授数字电路的设计方法及需要注意的问题;
周二:
选定题目,并设计电路,完成电路设计;
周三:
领取元器件,开始组装电路;
周四:
组装电路;
周五:
组装电路;
第二周
周一:
组装电路;
周二:
组装电路;
周三:
组装电路;
周四:
组装电路;
周五:
撰写实验报告;
。
。
。
。
。
。
指导师傅(教师)姓名
职务或职称
讲师
指导师傅(教师)
对学生的评价
实习态度
□认真□一般□不认真
实习纪律
□全勤□偶尔缺勤□经常缺勤
实践能力
□很强□一般□较差
指导师傅(教师)对学生专业知识与社会实践能力相结合情况的建议
指导师傅(教师)签字
年月日
西安邮电学院通信工程系电子设计成绩鉴定表
学生姓名
杨海坪
班级/学号
测控050406052119
实习时间
2007年6月25日—2007年7月6日
实习成绩鉴定
实习内容(20分)
与毕业设计结合程度(10分)
与专业结合程度(6分)
其它(4分)
实习单位评价
(20分)
实践能力(10分)
实习态度(6分)
实习纪律(4分)
实习报告鉴定
(60分)
报告内容与实习单位资料紧密结合,且资料详实(8分)
报告内容与毕业设计内容紧密结合(8分)
其它内容(4分)
报告质量(主题、结构、观点、逻辑、资料、字数40分)
评阅教师姓名
职称
实习成绩
评语
评阅教师签字
年月日