单片机_课程设(烟炯).docVIP

  • 9
  • 0
  • 约6.99千字
  • 约 12页
  • 2016-10-21 发布于广东
  • 举报
单片机_课程设(烟炯)

电子信息工程学院课程设计报告 (模板) 课程名称:单片机C语言课程设计 系 部: 电子系 专业班级:10电气(3)班 学生姓名:张学友 完成时间:2010年6月20日 报告成绩: 摘要:交通灯控制器实例使用了89C51单片机的定时器/计数器,首先分定时器初始化,定时器中断服务程序两个部分介绍定时器计数器的软件编程, 关键字: 89C51单片机的定时器,交通灯等 交通灯 一、任务设计: 1、设计任务4.电路图及仿真设计 4.1设计完成原理图如下 在电路连接完成后,将写好的程序放入单片机,运行。 4.2在初始状态南北绿灯,东西红灯,持续时间为25s 4.3南北跳转到黄灯5s,东西仍为红灯 在南北转换为红灯的同时,东西灯转换到绿灯持续25s;东西转换为黄灯持续5s,南北红灯不变;如此循环,从而实现交通灯的作用。 五、源代码: #include REGX51.H #define uchar unsigned char #define uint unsigned int uchar n=0,temp=0; uchar code segcode0[]={0x5b,0x06,0x3f,0x5b,0x06,0x3f,0x5b,0x06,0x3f}; uchar code segcode1[]={0x6f,0x7f,0x07,0x7d,0x6d,0x66,0x4f,0x5b,0x06,0x3f}; //uchar code segcode0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(x) { while(x--); } void timer0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; n++; temp=temp%61; if(n==20) { temp++; n=0; } if(temp25) P1=0x21; if((temp=25)(temp28)) P1=0x22; if((temp=28)(temp30)) P1=0x24; if((temp=30)(temp55)) P1=0x0c; if((temp=55)(temp58)) P1=0x14; if((temp=58)(temp60)) P1=0x24; } main() { uint i=0; //P1_0=0; //P1_7=0; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; //while(1) //{//i=temp; // } // TH1=256-125; // TL1=256-125; EA=1; ET0=1; // ET1=1; TR0=1; while(1) { P2_0=0; P2_1=1; P0=segcode0[temp/10]; delay(3000); P2_0=1; P2_1=0; P0=segcode1[temp%10]; delay(3000); P2_1=1;//TR1=1; } } 六.设计心得; 作为一名专业的大学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。 在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。 其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:CAD制图、汇编语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。周的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、

文档评论(0)

1亿VIP精品文档

相关文档