ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:283.98KB ,
资源ID:4033047      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4033047.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机c语言灯.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机c语言灯.docx

1、单片机c语言灯课程设计报告2010 2011学年第 2 学期课程名称 数字电路课程设计设计题目 交通灯 学生XX何丹学 号 33专业班级电子0903班指导教师吴友宇一前言3二功能概述3三设计思路3四硬件介绍4五软件程序设计7六电路图及仿真实现10七总结11八源程序12参考文献14一前言摘 要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然

2、秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用单片机设计交通灯控制器,.关键词: 单片机 交通灯 闯红灯 检测车流量AbstractIn 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 a

3、utomatic control of microputer application system, often as a core ponent single-chip microcontroller, only to use knowledge is not enough, should according to specific hardware structure, software and hardware bined with improved. Crossroads transports, pedestrian roar, driveways, garage, orderly p

4、edestrian humanitarian. So what to achieve this by an orderly order? Lean is the traffic lights automatic mand system. The traffic lights control many ways. The system USES the microcontroller to designing traffic light controller. keywordmicrocontrolleraffic lightsjaywalktraffic volume二功能概述2.1设计任务:

5、交通灯的硬件和软件设计2.2设计目的1.进一步熟悉和掌握单片机的结构和工作原理。2.掌握单片机的接口技术及相关外围芯片的外特性,控制方法。3.通过课程设计,掌握以单片机为核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。4.通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。5.通过完成一个包括电路设计和程序开发的完整过程,为我们今后从事相应工作打下基础。三设计思路交通灯的变化规律按照常规我们假设一个十字路口为东西南北走向。初始状态为状态1,南北方向绿灯通车,东西方向红灯。经过过一段时间(max-5)s转换状态2,南北方向绿灯闪几次转亮黄灯,延时5S,东西方向仍然红灯。再转

6、换到状态3,东西方向绿灯通车,南北方向红灯。过一段时间(25S)转换到状态4,东西方向绿灯闪几次转亮黄等,延时5S,南北方向仍然红灯。最后循环至南北绿灯,东西红灯。在这些状态下,有时钟倒数计时。25S5S25S5S。东西道红灯亮红灯亮绿灯亮黄灯闪烁。南北道绿灯亮黄灯闪烁红灯亮红灯亮。四硬件介绍基础知识交通灯控制器实例主要使用了89C51单片机的定时器,基础知识主要包括交通灯的变化规律、定时器概念和工作方式、以及数码管的动态显示方式。4.1定时器定时器是单片机中最常用、最重要的功能模块之一,本节通过交通灯控制器实例来演示定时器的使用。首先介绍交通灯以及定时器计数器的基础知识,接着介绍本实例的硬件

7、电路构成,然后逐步分析定时器的变成以及程序的全貌,最后总结一下本实例的技巧与注意点。4.2定时器计数器的概念89C51单片机内有两个可编程的定时器计数器T0、T1。当定时器计数器用作“定时器”时,每经过1个机器周期(12个时钟周期),计数器加1。当定时器计数器用作“计数器”时,计数器在对应的外部输入管脚(T0为P3.4引脚,T1为P3.5引脚)上每发生一次1到0的跳变时加1。使用“计数器”功能时,外部输入每个机器周期被采样一次。当某一周期管脚状态采样为高电平而下一周期采样为低电平时,计数器加1。由于检测下降沿跳变需要两个机器周期(24个时钟周期)的时间,所以技术频率最大值只能为时钟周期的124

8、。计数器对外部输入信号的占空比并无限制,但为了保证给定的电平信号在其改变之前至少被采样一次,外部输入信号必须至少保持一个完整的机器周期。4.3定时器计数器的相关寄存器与定时器计数器相关的寄存器有定时器计数器工作方式寄存器(TMOD)、定时器计数器控制寄存器(TCON)。TCON已经在2.5节受控输出实例中介绍过,因此,在本例中主要介绍TMOD寄存器。定时器计数器工作方式寄存器(TMOD),字节地址89H,不可进行位寻址。定时器计数器工作方式寄存器(TMOD)的8位分为两组,高4位控制T1,低4位控制T0。TMOD每一位的功能如下。GATE:门控位。GATE0,仅由运行控制位TRX(X0,1)1

9、来启动定时器计数器运行;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位

10、定时器计数器的。它由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

11、的状态确定,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从该常数开始重新计数。这种工作方式可以省去用户软件中重装常数的程序

12、,简化定时常数的计算方法(确定计数初值),可以相当精确地确定定时时间。(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)送一个方式控

13、制字,以设定定时器计数器的工作方式。根据需要给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单片机的定时器,首先分

14、定时器初始化,定时器中断服务程序两个部分介绍定时器计数器的软件编程,其次在画出程序流程图的基础上编写软件程序,并给出完整的交通灯控制器程序实例。5.1定时器初始化为了使定时器时间准确,避免因为定时器重装而引起的累计误差,应将定时器设置为初值自动装置的8位定时器/计数器,即定时器工作在工作方式2.在12MHz晶振条件下,8位定时器的最长定时时间是0.256ms,为了方便计算取定时时间为0.25ms,所以,定时0.5s需要定时器中断2000次。下面计算定时器的初值。定时器初值TH0=(65536-50000)/256; TL0=(65536-50000)%256;5.2定时器中断服务程序void

15、time() interrupt 1 TH0=(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设计完成原理图如下在电路连接完成后,将写好的程

16、序放入单片机,运行。6.2在初始状态南北绿灯,东西红灯,持续时间为25s6.3南北跳转到黄灯5s,东西仍为红灯 在南北转换为红灯的同时,东西灯转换到绿灯持续25s;东西转换为黄灯持续5s,南北红灯不变;如此循环,从而实现交通灯的作用。七总结回顾起此次单片机课程设计,我仍感慨颇多,学到了很多的东西。同时不仅巩固了以前所学过的知识,而且还学到了很多在书本上所没有学到过的知识。在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于单片机

17、设计,其硬件电路是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此可以说单片机的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我发现单片机原理应用行很强,只有老师的讲解不行,只看也不中,只有自己动手去做才会发现自己确实有太多的不足,许多的原理,程序看似简单,真正去做才知道知识并没有自己想象的那样扎实。从而懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。树立了对自

18、己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。而且大大提高了动手的能力,使我充分体会到了在创造过程中探索的艰难和成功时的喜悦。在设计完成之际再次衷心感谢李泉溪老师的指导!八源程序#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;u

19、char 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)%2

20、56; 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; P

21、1=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(

22、max-num/2)%10; delay(1); P1=0xff; else TR0=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 1 TH0=(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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1