第一篇:交通灯的设计心得体会总结
通过此次课程设计,使我更加扎实的掌握了有关电子线路方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会极大人的认可。
课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了NI Multisim软件的使用方法,了解了红绿灯的实际控制过程,以及如何提高电路的性能等等。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
第二篇:交通灯的设计心得体会总结
交通灯的设计心得体会总结
通过此次课程设计,使我更加扎实的掌握了有关电子线路方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过自己亲手实践,是我们掌握的知识不再是纸上谈兵。
过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检测调试环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在老师的指导下,终于游逆而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会极大人的认可。
课程设计诚然是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了NI Multisim软件的使用方法,了解了红绿灯的实际控制过程,以及如何提高电路的性能等等。
我认为,在这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。这对于我们的将来也有很大的帮助。以后,不管有多苦,我想我们都能变苦为乐,找寻有趣的事情,发现其中珍贵的事情。就像中国提倡的艰苦奋斗一样,我们都可以在实验结束之后变的更加成熟,会面对需要面对的事情。
回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,但可喜的是最终都得到了解决。
第三篇:交通灯设计心得体会
设计心得,一个简单的交通灯控制系统终于做完,总的来说就只实现两个功能,1 红绿黄灯的交替点亮。2,显示每种灯的倒计时,其实,就是一个的状态机,四个状态的变换,刚开始。我按照书上的程序将代码输进去,只输的过程中发现不少错误。定义灯的显示错了。多个地方判断语句IF的判断部分都写成赋值语句“《=”最严重的是最后的结果既然仿真不出来,我试图将错误的揪出来,没想到自己自己的思维也陷进去了。按着书上的注解一点都没错,就是仿真不出来。在这时候,我决定按照自己的思路来修改,书上的原程序有7个进程,我将,p5 p6,p7, 压缩成一个程序p5 ,同样也可以实现书要求的所有功能,书上的计数器是通过十六输出端,分别接到两个数码管,考虑到我们的实验板上带有bcd/七段led译码器。故我直接将计数器的输出,按照bcd码接到译码器上,做了这些算是有点点成就感,我觉得这个课设,不仅需要很好的dea基本功,更需要周密的思维。耐心和细心的做事态度,当看到大篇幅的程序是,正是验证理论知识的时刻,我是以为自己还有必要加强,平时判断上升沿时一般习惯用clk’event and(cke=1), 一下子看到wait语句时,我顿时不知书上的语句是对是错,只能查阅课本,做事态度面,我有时候特心急,一下子十几行的错误提示,看着心都凉了,要不是为了一组的荣誉的我真的没耐心看了,当把一条一条的错误改正后,才知道自己能行的。
我们设计的东西最终目标就是能真正应用到生活中去,因此,需要对平时的生活常识有一定了解,善于观察生活,看需要什么,就设计什么出来。也不一定要做已经有了的东西,或者自己写出更高效的程序。
总的来,我对这是很感兴趣的。我能在做的过程中找到快乐,觉得学到的东西有用处,我以后更加深刻地学习课本知识,做事会更有耐心,平时多关注生活,多思考。既然选择这个专业,就不仅学习专业知识,也要学习专业精神。
第四篇:交通灯控制器设计实验报告
设计性实验项目名称
交通灯控制器设计
实验项目学时:3学时
实验要求:■ 必修
□ 选修
一、实验目的
1、学习与日常生活相关且较复杂数字系统设计;
2、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法;
3、学习二进制码到BCD码的转换;
4、学习有限状态机的设计应用。
二、实验原理
交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又 有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很 简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北 和东西直行的情况。
要完成本实验,首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通灯的燃灭规律为:初始态是两个路口的红灯全亮之后,主干道的绿灯亮,乡间道路的红灯亮,主干道方向通车,延时一段时间后,乡间公路来车,主干道绿灯灭,黄灯开始闪烁。闪烁若干次后,主干道红灯亮,而同时乡间公路的绿灯亮,延时一段时间后,乡间公路的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到主干道方向,重复上述过程。
三、设计要求
完成设计、仿真、调试、下载、硬件测试等环节,在型EDA实验装置上实现一个由一条主干道和一条乡间公路的汇合点形成的十字交叉路口的交通灯控制器功能,具体要求如下:
1、有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;
2、交通灯由绿转红前有4秒亮黄灯的间隔时间,由红转绿没有间隔时间;
3、乡间公路右侧各埋有一个串连传感器,当有车辆准备通过乡间公路时,发出请求信号S=1,其余时间S=0;
4、平时系统停留在主干道通行(MGCR)状态,一旦S信号有效,经主道黄灯4秒(MYCR)状态后转入乡间公路通行(MRCG)状态,但要保证主干道通行大于一分钟后才能转换;
5、一旦S信号消失,系统脱离MRCG状态,即经乡道黄灯4秒(MRCY)状态进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于20秒钟;
6、控制对象除红绿灯之外,还包括分别在主干道和乡间公路各有一个两位十进制倒计时数码管显示。
四、主要仪器设备
1、微机
1台
1套 1套
2、QuartusII集成开发软件
3、EDA实验装置
五、实验步骤
源程序:
0module traffic1(clk,s,rst,light,sel,SG);input clk,s,rst;output[5:0] light;
output [2:0]sel;output [7:0]SG;reg [5:0] light;reg clk1;reg [3:0] sc;
reg [7:0] count;reg [7:0] cnt,SG;reg [2:0] sel;reg [3:0]a;parameter s0=0,s1=1,s2=2,s3=3,s4=4;initial
begin
count<=8'b01100000;
light<=6'b001100;
sc=s0;
end
always @(posedge clk)begin
begin cnt=cnt+1;
if(cnt==100)begin clk1=1'b1;cnt=0;end
else clk1=1'b0;//100分频,CLK为数码管扫描频率,CLK1为计数频率
if(sel<7)sel=sel+1;else sel=6;
end //sel为数码管选择
begin
case(sel)
7: a=count[3:0];//0数码管为个位
6: a=count[7:4];//1数码管为十位
default: a=0;
endcase
case(a)
0:SG<=8'b00111111;1:SG<=8'b00000110;
2:SG<=8'b01011011;3:SG<=8'b01001111;
4:SG<=8'b01100110;5:SG<=8'b01101101;
6:SG<=8'b01111101;7:SG<=8'b00000111;
8:SG<=8'b01111111;9:SG<=8'b01101111;//8段译码值
default: SG=8'b11111111;
endcase
end end
always @(posedge clk1 or negedge rst)
begin
if(!rst)begin count = 0;sc=s3;end // count set nothing but else 0
else if(count == 0)
begin
case(sc)
s0: begin if(s)begin sc=s1;count = 8'b00000100;light=6'b010100;end else begin sc=s4;count = 8'b01100000;end end
s1: begin count = 8'b00100000;sc=s2;light=6'b100001;end
s2: begin count = 8'b00000100;sc=s3;light=6'b100010;end
s3: begin count = 8'b01100000;sc=s0;light=6'b001100;end
s4: begin if(s)begin sc=s1;count = 8'b00000100;light=6'b010100;end else begin sc = s4;count = 8'b01100000;light<=6'b001100;end end
default begin sc=s0;count =8'h60;end
endcase
end
else
if((sc==s2)&(s==0))begin sc=s3;count = 8'b00000100;light=6'b100010;end
else
if((sc==s4)&(s==1))begin sc=s1;count = 8'b00000100;light=6'b010100;end
else if(count[3:0] == 4'b0000)
begin count = count-7;end
else
begin count = count-1;end
end endmodule
管脚锁定
六、波形仿真
主干道60s倒计时
s信号为1时
七、实验心得
通过本次实验,让我进一步掌握了软件quartus的使用流程,一开始实验时波形仿真是正确的,但在电路上实现时主干道亮黄灯时,乡间道路亮的是绿灯,这显然是不对的,后面发现是管脚锁定时出现了问题,改回来之后就没问题了。管脚锁定时不能粗心,不然很容易出现问题。
曹军
生医121班
第五篇:基于单片机的交通灯设计
基于单片机的交通灯设计
设计程序:
#include
//共阳极
uchar
code table1[5]={0xf3,0xf5,0xde,0xee,0xf6};/*各种状态下红绿灯段选码, 状态1:A绿灯,B红灯;状态2:A黄灯亮,B红灯;状态3:A红灯,B绿灯;状态4:A红灯,B黄灯亮;状态5:A红灯,B红灯;*/ uchar
code tab[4]={0x1E,0x2D,0x4E,0x8D};//数码管显示位选码 sbit key1=P1^0;//放行A sbit key2=P1^1;//放行B sbit key3=P1^2;//禁止通行
uchar EW=40,SN=30,K1_T=15,K2_T=15,K3_T=20;//初始化交通灯时间 uchar count;//计时中断次数 uchar i,j;//循环控制变量 char Timer;//子程序说明语句 void Process();void Display(uchar j);void Delay(uchar a);/**************************主程序**************************/ main(){ IP=0X02;//设置定时器中断为高优先级//成为中断嵌套
TMOD=0x01;//定时器工作方式
TH0=0x3C;//定时器初始化
TL0=0xB0;IT0=1;//中断触发方式为下降沿触发
EA=1;//CPU开中断
ET0=1;//开定时中断
TR0=1;//启动定时
EX0=1;//启动外部中断0 while(1)
{
Process();
} } /*************************交通灯显示子程序*************************/ void Display(uchar j)//j控制显示table中连续位的起始点 {
char h,l;
h=Timer/10;//EW通行时间十位
l=Timer%10;//EW通行时间个位
for(i=0;i<4;)//按位显示通行状况及时间 {
P0=table1[j];//通行状况显示
P3=tab[i];//位选显示
i++;
//j++;
if(i%2)//两位计时显示
{
P2=table[l];
Delay(400);
}
else
{
P2=table[h];
Delay(400);
} } Delay(5);
//设置扫描时间
} /*********键控*******/ void Keyboard()interrupt 0 using 0 {
if(key1==0)
{ Timer=K1_T;
while(Timer>0)
{
j=0;
Display(0);
//显示一次
}
if(key2==0)
{
Timer=K2_T;
while(Timer>0)
{
j=2;
Display(j);
}
if(key3==0)
{
Timer=K3_T;
while(Timer>0)
{
j=4;
Display(j);
}
} } /**************************延时子程序**************************/ void Delay(uchar a)//循环a次 { uchar x;x=a;while(x--){;} }
/************************TO计时中断服务程序************************/ void timer0(void)interrupt 1 using 1//T0中断 { TH0=0x3C;TL0=0xB0;//定时计数初值
count++;//中断溢出一次count+1 if(count==20){
Timer--;
count=0;//中断次计数,count回,倒计时时间
} } /**************************亮灯控制**************************/ void Process(){ Timer=EW;//初始化方向通行时间
while(Timer>3)//状态:A绿灯,B红灯;{
j=0;
Display(j);//调用显示函数
} while(Timer>0)//状态:A黄灯亮,B红灯;{
j=1;
Display(j);
} Timer=SN;while(Timer>3)//状态:A红灯,B绿灯;{
j=2;
Display(j);} while(Timer>0)//状态:A红灯,B黄灯亮;{
j=3;
Display(j);
}
}
电路图如下: