单片机c语言灯

上传人:无*** 文档编号:159396754 上传时间:2022-10-09 格式:DOC 页数:18 大小:504KB
返回 下载 相关 举报
单片机c语言灯_第1页
第1页 / 共18页
单片机c语言灯_第2页
第2页 / 共18页
单片机c语言灯_第3页
第3页 / 共18页
点击查看更多>>
资源描述
课程设计报告2010 2011学年第 2 学期课程名称 数字电路课程设计设计题目 交通灯 学生姓名 何丹 学 号 0120909330333 专业班级 电子0903班 指导教师 吴友宇 一前言3二功能概述3三设计思路3四硬件介绍4五软件程序设计7六电路图及仿真实现10七总结11八源程序12参考文献14 一前言摘 要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用单片机设计交通灯控制器,. 关键词: 单片机 交通灯 闯红灯 检测车流量Abstract In recent years, with the rapid development of science and technology, the application of SCM is unceasingly thorough, it causes the traditional control test technology increasingly updates. In real-time detection and automatic control of microcomputer application system, often as a core component single-chip microcontroller, only to use knowledge is not enough, should according to specific hardware structure, software and hardware combined with improved. Crossroads transports, pedestrian roar, driveways, garage, orderly pedestrian humanitarian. So what to achieve this by an orderly order? Lean is the traffic lights automatic command system. The traffic lights control many ways. The system USES the microcontroller to designing traffic light controller. keyword microcontroller affic lights jaywalk traffic volume二功能概述2.1设计任务:交通灯的硬件和软件设计2.2设计目的1.进一步熟悉和掌握单片机的结构和工作原理。2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5.通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应工作打下基础。三设计思路交通灯的变化规律按照常规我们假设一个十字路口为东西南北走向。初始状态为状态1,南北方向绿灯通车,东西方向红灯。经过过一段时间(max-5)s转换状态2,南北方向绿灯闪几次转亮黄灯,延时5S,东西方向仍然红灯。再转换到状态3,东西方向绿灯通车,南北方向红灯。过一段时间(25S)转换到状态4,东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯。最后循环至南北绿灯,东西红灯。在这些状态下,有时钟倒数计时。25S5S25S5S。东西道红灯亮红灯亮绿灯亮黄灯闪烁。南北道绿灯亮黄灯闪烁红灯亮红灯亮。四硬件介绍基础知识交通灯控制器实例主要使用了89C51单片机的定时器,基础知识主要包括交通灯的变化规律、定时器概念和工作方式、以及数码管的动态显示方式。4.1定时器定时器是单片机中最常用、最重要的功能模块之一,本节通过交通灯控制器实例来演示定时器的使用。首先介绍交通灯以及定时器计数器的基础知识,接着介绍本实例的硬件电路构成,然后逐步分析定时器的变成以及程序的全貌,最后总结一下本实例的技巧与注意点。4.2定时器计数器的概念89C51单片机内有两个可编程的定时器计数器T0、T1。当定时器计数器用作“定时器”时,每经过1个机器周期(12个时钟周期),计数器加1。当定时器计数器用作“计数器”时,计数器在对应的外部输入管脚(T0为P3.4引脚,T1为P3.5引脚)上每发生一次1到0的跳变时加1。使用“计数器”功能时,外部输入每个机器周期被采样一次。当某一周期管脚状态采样为高电平而下一周期采样为低电平时,计数器加1。由于检测下降沿跳变需要两个机器周期(24个时钟周期)的时间,所以技术频率最大值只能为时钟周期的124。计数器对外部输入信号的占空比并无限制,但为了保证给定的电平信号在其改变之前至少被采样一次,外部输入信号必须至少保持一个完整的机器周期。4.3定时器计数器的相关寄存器与定时器计数器相关的寄存器有定时器计数器工作方式寄存器(TMOD)、定时器计数器控制寄存器(TCON)。TCON已经在2.5节受控输出实例中介绍过,因此,在本例中主要介绍TMOD寄存器。定时器计数器工作方式寄存器(TMOD),字节地址89H,不可进行位寻址。定时器计数器工作方式寄存器(TMOD)的8位分为两组,高4位控制T1,低4位控制T0。TMOD每一位的功能如下。GATE:门控位。GATE0,仅由运行控制位TRX(X0,1)1来启动定时器计数器运行;GATE1,由运行控制位TRX(X0,1)1和外部中断引脚上的高电平共同来启动定时器计数器运行。CT:定时器模式和计数器模式选择位。CT0,为定时器模式;CT1,为计数器模式。M1、M0:工作方式选择位。M1、M0的4中编码对应4种工作方式,对应关系见表210。4.5定时器计数器的4种工作方式定时器计数器的4种工作方式下的逻辑结构如表所示。M1M2工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,为初值自动重装的8位定时器/计数器11方式3,仅T0有效,将T0分为两个8位定时器/计数器(1)方式0。定时器计数器的工作方式0称为13位定时器计数器的。它由TLX的低5位和TLX的8位构成13位的计数器,此时TLX的高3位未使用。改工作方式是为了和48系列单片机兼容而设计的一种工作方式,一般情况不使用方式0进行定时计数。方式0的控制方式与方式1完全相同,下面重点介绍方式1的控制方式 。(2)方式1定时器计数器的工作方式1称为16位定时器计数器。它由TLX和THX构成,TLX计数溢出向THX进位,THX计数溢出置位TCON中溢出标志位TFX。GATE位的状态定时器计数器运行控制取决于TRX一个条件还是TRX和INTX引脚这两个条件。当GATE=0时,则只要TRX被置为1,定时器计数器即被允许计数(定时器计数器的计数控制仅由TRX的状态确定,TRX=1计数,TRX=0停止计数)。当GATE=1时,定时器计数器是否计数由INTX输入的电平和TRX的状态共同确定:当TRX=1,且INTX=1时,才允许定时器计数器计数(定时器计数器的计数控制由TRX和INTX两个条件控制)。(3)方式2定时器计数器的工作方式0和方式1再计数溢出后,计数器的值为0,需要通过程序重新装入计数初值。定时器计数器的工作方式1称为初值自动重装的8位定时器计数器。在该工作方式下,TLX作为计数器,当TLX计数溢出时,在置1溢出标志TFX的同时,还自动的将THX中的常数送至TLX,使TLX从该常数开始重新计数。这种工作方式可以省去用户软件中重装常数的程序,简化定时常数的计算方法(确定计数初值),可以相当精确地确定定时时间。(4)方式3工作方式3仅对定时器计数器0有效,在该工作方式之下,定时器计数器的0被拆成2个独立的定时器计数器:TL0、TF1。TL0使用T0的状态控制CT、GATE、TR0、INT0,而TH0被固定位一个8位定时器(不能作外部计数方式),并使用定时器计数器1的状态控制位TR1、和TF1,同时占用定时器T1的中断源。此时,定时器计数器1可设定为方式0、方式1和方式2,作为串行口的波特率发生器。4.5 定时器计数器的编程(1)初始化定时器计数器的初始化编程包括以下几个部分。根据要求给定时器计数器方式寄存器(TMOD)送一个方式控制字,以设定定时器计数器的工作方式。根据需要给TH和TL寄存器送初值,以确定需要的定时时间或计数的初值。根据需要给中断允许寄存器(IE)送中断控制字,以开放相应的中断和设定中断优先级。给TCON寄存器送命令字以启动或禁止定时计数器的运行。(2)定时器计数器初值的计算。计数器初值:设计算器的模值位M,所需的计数值为C,计数初值设定为TC,则TC=M-C (M等于2的13次方,16次方,8次方)。定时器初值:设定时器的模值为M,需要的定时时间为T,定时器的初值设定为TC,则TC=M-T/t(M等于2的13次方,16次方,8次方)。五软件程序设计交通灯控制器实例使用了89C51单片机的定时器,首先分定时器初始化,定时器中断服务程序两个部分介绍定时器计数器的软件编程,其次在画出程序流程图的基础上编写软件程序,并给出完整的交通灯控制器程序实例。5.1定时器初始化为了使定时器时间准确,避免因为定时器重装而引起的累计误差,应将定时器设置为初值自动装置的8位定时器/计数器,即定时器工作在工作方式2.在12MHz晶振条件下,8位定时器的最长定时时间是0.256ms,为了方便计算取定时时间为0.25ms,所以,定时0.5s需要定时器中断2000次。下面计算定时器的初值。定时器初值TH0=(65536-50000)/256;TL0=(65536-50000)%256;5.2定时器中断服务程序void time() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;i+; if(i=10)i=0;num+;if(num=2*max)num=0;flag=flag;每0.5ms定时器中断发生,num+1,程序跳转到中断服务程序T0-INT开始执行。中断服务程序每次将定时器中断计数变量减1,但定时器中断计数变量为0时,0.5s定时时间到,将位变量SECOND-FLAG置为1.定时器中断服务程序通过RETI指令返回,程序将跳转到进入中断前的断点继续执行。六电路图及仿真设计6.1设计完成原理图如下在电路连接完成后,将写好的程序放入单片机,运行。6.2在初始状态南北绿灯,东西红灯,持续时间为25s6.3南北跳转到黄灯5s,东西仍为红灯 在南北转换为红灯的同时,东西灯转换到绿灯持续25s;东西转换为黄灯持续5s,南北红灯不变;如此循环,从而实现交通灯的作用。七总结回顾起此次单片机课程设计,我仍感慨颇多,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我发现单片机原理应用行很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多的原理,程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。在设计完成之际再次衷心感谢李泉溪老师的指导!八源程序#include#define uchar unsigned char#define uint unsigned intsbit kai=P30;sbit jia=P31;sbit jian=P32;bit guan=1,flag=0,ci=0;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar i,num;uchar max=30;void delay(uchar z)uchar x,y;for(x=0;xz;x+)for(y=0;y30)max=30;while(!add)add=(bit)(P3&0x02);if(bit)(P3&0x04)=0)delay(5);if(bit)(P3&0x04)=0)sub=(bit)(P3&0x04);max-;if(max6)max=6;while(!sub)sub=(bit)(P3&0x04);void main()TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;while(1)key();if(guan)ET0=1;TR0=1;if(!flag) if(num2*(max-5) P2=0xde;P0=0XF2;P1=table(max-num/2)/10; delay(1);P1=0xff; P0=0xf1;P1=table(max-num/2)%10;delay(1);P1=0xff;else if(num2*max)if(num%2)P2=0x2e;else P2=0x3e;P0=0XF2;P1=table(max-num/2)/10;delay(1);P1=0xff;P0=0XF1;P1=table(max-num/2)%10;delay(1);P1=0xff; if(flag)if(num2*(max-5)P2=0xf3;P0=0XF2;P1=table(max-num/2)/10;delay(1);P1=0xff;P0=0XF1;P1=table(max-num/2)%10;delay(1);P1=0xff;else if(num2*max)if(num%2)P2=0x35;else P2=0x37;P0=0XF2;P1=table(max-num/2)/10;delay(1);P1=0xff;P0=0XF1;P1=table(max-num/2)%10;delay(1);P1=0xff; elseTR0=0;num=0;tiao();P0=0XF2;P1=tablemax/10;delay(1);P1=0xff;P0=0xF1;P1=tablemax%10;delay(1);P1=0xff;void time() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;i+; if(i=10)i=0;num+;if(num=2*max)num=0;flag=flag;参考文献【1】单片机的C语言应用程序设计 马忠梅 籍顺心 北京航空航天大学出版社2007【2】51单片机应用开发案例精选 王为青 邱文勋 人民邮电出版社 2007【3】51系列单片机设计实例 楼然苗 李广飞 北京航空航天大学出版社 2003【4】单片机原理与接口技术 胡汉才 清华大学出版社 2006【5】单片机原理与应用 丁元杰 机械工业出版社 2007 18
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!