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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机课程设计0.docx

1、单片机课程设计0 烟台南山学院单片机课程设计院 (系): 计算机及电气自动化学院 专业班级: 电气自动化技术 学生姓名: 学 号: 指导教师: 目 录第一章 摘要.2第二章 设计目的.3第三章 总体设计.4第四章 硬件电路设计.6第五章 主程序设计8第六章 源程序9第七章 总结.17参考文献.18第一章 摘要课程设计是单片机课程的一个教学环节,该实验课程的目的旨在使学生能够理论联系实际,提高学生的动手能力,加深对课程的理解。单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(

2、可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 众所周知,单片机已经越来越广泛的应用于智能仪表、工业控制、日常生活等许多领域。可以说单片机的应用已经渗透到人类生活、工作的每一个角落。随着城市的发展,交通指挥系统越来越重要,也越来越庞大和复杂。交通信号灯是交通管理部门设在路口,用来合理指挥调动车辆及行人交通的主要装置,对其控制的好坏直接影响到交通状况。本课程设计一个简单的交通信号灯单片机顺序控制系统,能够实现十字路口红、黄、绿灯的定时交替转换。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日

3、益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用可编程并行I/O接口芯片89C51为中心器件来设计交通灯控制器,红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);遇到紧急情况需要转换交通灯状态的可以通过强制将交通灯进行状态切换!本系统实用性强、操作简单、扩展功能强。 关

4、键词:单片机 交通灯 紧急通行 第二章 设计目的掌握I/O口德综合应用技术;掌握延时子程序编写与使用;掌握单片机系统的仿真过程。重点在程序,也就是指令得应用和理解!经本次实训,提高学生的动手实践能力,并与实际相联系!用所学的知识来解决现实中的一些问题,从而认识到知识的重要性! 1.通过试验进一步理解和消化了书本知识,分析每个语句的含义,运用所学知识进行简单的程序设计。 了解了在单片机系统中扩展简单I/O接口的方法. 外部中断技术的基本使用方法,掌握了中断处理程序的编程方法。 2.通过在图书馆查阅各种单片机资料,培养了我自学和独立思考的能力。与同学交流研究,让我懂得了更多以前不明白的知识. 3.

5、在课程设计过程中,不断调试程序和修改程序,提高了对单片机的应用能力,分析问题和解决问题的能力。 4. 这样就可以实现按车流量规模给定绿灯时长,达到最大限度的有车放行,减少十字路口的车辆滞流,缓解交通拥挤、实现最优控制,从而提高了交通控制系统的效率第三章 总体设计3.1 设计任务 个十字路口交通灯控制器。用单片机控制LED灯模拟指示。模拟东西方向的十字路口交通信号控制情况。东西向通行时间为25s,南北向通行时间为30s,缓冲时间为5s。,模拟交通灯管理。在一个交通十字路口有一条主干道(南北方向),一条从干道(东西方向),主干道的通行时间比从干道通行时间长,四个路口安装红,黄,绿,灯各一盏;图1-

6、13.2 设计要求1、设计一个十字路口的交通灯控制电路,要求东西方向(主干道)车道和南北方向(从干道)车道两条交叉道路上的车辆交替运行,时间可设置修改。2、在绿灯转为红灯时,要求黄灯闪烁,才能变换运行车道3、黄灯亮时,要求每秒闪亮一次。3.3 设计方案本课程设计是基于AT89C51设计的红绿交通灯。用AT89C51与电阻、电容、开关等组成单片机的最小系统,AT89C51单片机的P1口驱动其中三个作为驱动端口驱动红绿交通灯亮与灭。P1口是单纯的通用8位准双向I/O端口,每位可驱动4个TTL负载。作为通用I/O端口,与P0端口的区别在于内部具有上拉电阻,所以输出时不用外接上拉电阻。根据设计的要求可

7、知,系统的硬件原理框图如下图1-2所示。图 1-2系统硬件框图单片机可选用AT89C51,它与8051系列单片机全兼容,但其内部带有4KB的FLASH ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。南北向和东西向各采用2个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO口不够用时,可以考虑扩展8255或8155满足系统的要求。3.4 软件方案 根据设计要求,程序框图如图所示。软件可由汇编语言完成,也可由C语言完成。软件设计可以分为以下几个功能模块:主程序:初始化及键盘监控。计时程

8、序模块:为定时器的中断服务子程序,完成0.1秒(或其他时间)和1秒的时间定时。 显示程序模块:完成12个发光二极管和2个LED数码管的显示驱动。第四章 硬件电路设计4.1单片机的最小系统 ATMEL公司生产的AT89C51单片机它是硬件电路的核心部分,时钟电路晶振使用12MHz,复位电路采取按键复位方式。具体连接图2.1和图2.2单片机系统的时钟电路4.2电源电路设计电源用5V直流变压器直接供电。4.3数码管显示电路显示电路采用2个共阴数码管,P1口作为数码管的输入。 数码管显示电路4.4交通信号灯单片机顺序控制系统硬件原理图如下所示:第五章 主程序设计 主程序设计 系统程序流程图 第六章 源

9、程序*第一个状态:主干道、支干道均亮红灯5S *第二个状态:主干道亮绿灯27S、支干道亮红灯 *第三个状态:主干道黄灯闪烁、支干道红灯闪烁 *第四个状态:主干道亮红灯、支干道亮绿灯22S *第五个状态:主干道红灯闪烁、支干道黄灯闪烁 *返回到第二个状态 *其中外部中断INTO、INT1分别控制主、支干道亮绿灯 * */* 11.0592MHz晶振*/#include/头文件#include/头文件#define uchar unsigned char/宏定义#define uint unsigned int/宏定义sbit RED_ZHU = P10;sbit YELLOW_ZHU = P11

10、;sbit GREEN_ZHU = P12;sbit RED_ZHI = P13;sbit YELLOW_ZHI = P14;sbit GREEN_ZHI = P15; uint aa, bai,shi,ge,bb;/*数码管显示0-9*/uint code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*子函数声明*/void delay(uint z);void delay0(uint z);void display(uint ge,uint shi);void xtimer0();void check();void in

11、it1();void init2();void init3();void init4();void init5();void xint0();void xint1();void GREEN_ZHU_ON();void GREEN_ZHI_ON();/* 主函数*/void main() EA=1;/开中断 EX0=1;/允许外部中断INT0中断 IT0=0;/定义INT0触发方式 PX0=1;/中断优先级高 EX1=1;/允许外部中断INT1中断 IT1=0;/定义INT1触发方式 PX1=1;/中断优先级高 check();/开机自检 init1();/第1个状态 while(1) init

12、2();/第2个状态 init3();/第3个状态 init4();/第4个状态 init5();/第5个状态 void init1()/第一个状态:主干道、支干道均亮红灯5S int temp; temp=6;/变量赋初值 TMOD=0x01;/定时器T0工作于方式1 TH0=0x4c; TL0=0x00;/定时器赋初值 EA=1;/开中断 ET0=1;/开定时中断 TR0=1;/开定时器T0 while(1) RED_ZHU=0; RED_ZHI=0; GREEN_ZHU=1; GREEN_ZHI=1; YELLOW_ZHU=1; YELLOW_ZHI=1; if(aa=20)/定时20*

13、50MS=1S aa=0;/定时完成一次后清0 temp-;/变量自减 if(temp0) break; shi=temp%100/10;/显示十位 ge=temp%10;/显示个位 display(ge,shi); void init2()/第二个状态:主干道亮绿灯27S、支干道亮红灯 int temp; temp=31;/变量赋初值 TMOD=0x01;/定时器T0工作于方式1 TH0=0x4c; TL0=0x00;/定时器赋初值 EA=1;/开中断 ET0=1;/开定时中断 TR0=1;/开定时器T0 while(1) RED_ZHU=1; RED_ZHI=0; GREEN_ZHU=0;

14、 GREEN_ZHI=1; YELLOW_ZHU=1; YELLOW_ZHI=1; if(aa=20)/定时20*50MS=1S aa=0;/定时完成一次后清0 temp-;/变量自减 if(temp=3) break; shi=temp%100/10;/显示十位 ge=temp%10;/显示个位 display(ge,shi); void init3()/第三个状态:主干道黄灯闪烁、支干道红灯闪烁 int temp; temp=4;/变量赋初值 TMOD=0x01;/定时器T0工作于方式1 TH0=0x4c; TL0=0x00;/定时器赋初值 EA=1;/开中断 ET0=1;/开定时中断 T

15、R0=1;/开定时器T0 while(1) GREEN_ZHU=1; if(aa=20)/定时20*50MS=1S aa=0;/定时完成一次后清0 temp-;/变量自减 YELLOW_ZHU=YELLOW_ZHU; RED_ZHI=RED_ZHI; if(temp0) break; shi=temp%100/10;/显示十位 ge=temp%10;/显示个位 display(ge,shi); void init4()/第四个状态:主干道亮红灯、支干道亮绿灯22S int temp; temp=26;/变量赋初值 TMOD=0x01;/定时器T0工作于方式1 TH0=0x4c; TL0=0x0

16、0;/定时器赋初值 EA=1;/开中断 ET0=1;/开定时中断 TR0=1;/开定时器T0 while(1) RED_ZHU=0; RED_ZHI=1; YELLOW_ZHU=1; GREEN_ZHI=0; if(aa=20)/定时20*50MS=1S aa=0;/定时完成一次后清0 temp-;/变量自减 if(temp=3) break; shi=temp%100/10;/显示十位 ge=temp%10;/显示个位 display(ge,shi); void init5()/第五个状态:主干道红灯闪烁、支干道黄灯闪烁 int temp; temp=4;/变量赋初值 TMOD=0x01;/

17、定时器T0工作于方式1 TH0=0x4c; TL0=0x00;/定时器赋初值 EA=1;/开中断 ET0=1;/开定时中断 TR0=1;/开定时器T0 while(1) RED_ZHI=1; GREEN_ZHU=1; GREEN_ZHI=1; if(aa=20)/定时20*50MS=1S aa=0;/定时完成一次后清0 temp-;/变量自减 YELLOW_ZHI=YELLOW_ZHI; RED_ZHU=RED_ZHU; if(temp0) break; shi=temp%100/10;/显示十位 ge=temp%10;/显示个位 display(ge,shi); /*显示子函数*/void

18、display(uint ge,uint shi) P0=0xfd; P2=tableshi;/显示十位 delay0(5); P0=0xfe; P2=tablege;/显示个位 delay0(5);void xint0() interrupt 0 /外部中断INT0 GREEN_ZHU_ON();void xint1() interrupt 2 /外部中断INT1 GREEN_ZHI_ON();void GREEN_ZHU_ON()/外部中断INT0显示子程序 RED_ZHI=0; RED_ZHU=1; GREEN_ZHI=1; GREEN_ZHU=0; YELLOW_ZHI=1; YELL

19、OW_ZHU=1; P0=0x00; P2=0Xff; delay0(1000); return;void GREEN_ZHI_ON()/外部中断INT1显示子程序 RED_ZHI=1; RED_ZHU=0; GREEN_ZHI=0; GREEN_ZHU=1; YELLOW_ZHI=1; YELLOW_ZHU=1; P0=0x00; P2=0xff; delay0(1000); return;void check()/开机自检子程序 RED_ZHI=0; RED_ZHU=0; GREEN_ZHI=0; GREEN_ZHU=0; YELLOW_ZHI=0; YELLOW_ZHU=0; P0=0x

20、00; P2=0Xff; delay(2); RED_ZHI=1; RED_ZHU=1; GREEN_ZHI=1; GREEN_ZHU=1; YELLOW_ZHI=1; YELLOW_ZHU=1; P0=0xff; P2=0xff;/*定时中断子函数*/void xtimer0() interrupt 1 TH0=0x4c; TL0=0x00; aa+;/*延时子函数*/void delay0(uint z) uint i,j; for(i=0;iz;i+) for(j=0;j0;j-) for(i=1250;i0;i-) for(k=180;k0;k-); 第七章 总结单片机是微型计算机的一

21、个重要的分支。随着计算机技术的发展,单片机的应用领域也越来越广泛,它在工业控制、数据采集以及仪器仪表自动化等许多领域都起着十分重要的作用。通过做基于单片机的交通灯顺序控制设计,不断查阅资料,我对单片机的体系及它在各个领域的应用有了一定的了解,对它的软件系统也有了一定的认识,并且增强了我对编程及编程环境的了解。在总体上对单片机学习有了一定的提高,收获颇丰。本系统采用AT-89系列单片机89C51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过AT89C51芯片的P3口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过

22、P3口输出,显示时间直接通过8255的P0、P2口输出至双位数码管)。系统不足之处不能控制车的左、右转、以及自动根据车流改变红绿灯时间等。这是由于本身地理位子以及车流量情况所定,如果有需要可以设计扩充原系统来实现 。 通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。参考文献【1】李军等,51系列单片机高级实例开发指南,北京航空航天大学出版社,20046【2】何立民,单片机应用技术选编9【M】,北京航空航天大学出版社,20041【3】王幸之等,AT89系列单片机原理与接口技术,北京航空航天大学出版社,20045【5】李朝青,单片机原理及接口技术,北京航空航天大学出版社,19993【6】谢维成等,单片机原理与应用及C51程序设计,清华大学出版社,20068【7】边海龙等,单片机开发与典型工程项目,电子工业出版社,2008.10

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

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