单片机课程设计十字路口的交通灯控制电路_第1页
单片机课程设计十字路口的交通灯控制电路_第2页
单片机课程设计十字路口的交通灯控制电路_第3页
单片机课程设计十字路口的交通灯控制电路_第4页
单片机课程设计十字路口的交通灯控制电路_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《单片机原理及应用课程设计》报告——交通灯设计专 业:班 级:姓 名:学 号:20135月课程设计目的巩固和加深对单片机原理和接口技术知识的理解;培养根据课题需要选学参考书籍、查阅手册和文献资料的能力;学会方案论证的比较方法,拓宽知识,初步掌握工程设计的基本方法;掌握常用仪器、仪表的正确使用方法,学会软、硬件的设计和调试方法;用计算机绘制电路图和流程图。课程设计要求设计一个十字路口交通灯控制器。用单片机控制 LED灯模拟指示。模拟东西方向的十字路口交通信号控制情况。东西向通行时间为 80s,南北向通行时间为60s,缓冲间为3s。黄灯亮时,要求每秒闪亮一次。行显示(采用计时的方法)。护车通过。硬件设计设计思想中断按键 数码显示

LED显示单片机选型:AT89C52AT89C52CMOS88kbytes的可反复擦写的Flash256bytes器件采用ATMELMCS-518位中央处理器和FlashAT89C52具有以下标准功能:8k字Flash,256RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个628位微控制器8K字节在系统可编程FlashROM在访问外部数据存储器或程序存储器时,P0口被分时转换地址(低8位)和数据总P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入端用。在访问外部数据存储器或程序存储器时,P0口被分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。线复用,在访问期间激活内部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/OP1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P1.0P1.2分别作定时器/计数器2(P1.0/T2)和时器/数器2(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1收低8位地址字节。P1端口引脚号第二功能:P1.0T2(/计数器T2),时钟输出P1.1T2EX(/计数器T2的捕捉/重载触发信号和方向控制)P2P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引Flash编程或校验时,P2亦接收高位地址和一些控制信号。P3P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3口将用上拉电阻输出电流(IIL)P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。P3端口引脚第二功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)PSEN在此期间,当访问外部数据存储器,将跳过两次PSENEA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFHEA端必须保持低电平(接地)。需注意的是:如果加密位 LB1被编程,复位时内部会锁存EA端状态。EA(接Vcc),CPUFLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。系统原理图复位电路:上电+按钮。图中,上电时,接通电源,电容器CRST/VPD8051+5V到了RST/VPD路之一。数码管显示:7SEG-MPX2-CC、、D、CBA七个端口是输入端口,对其各2两端口用来控制高位和低位的选通显示,只要对端口置位,便可以选择该端口,并对其所代表的位进行赋值,显示。发光二极管显示每个路口都采用了三个LED灯来显示,分别代表了红黄绿三种灯,来模拟路口交通灯的变换。键盘:独立键盘+中断应的改变,已处理紧急情况下的车辆通行。软件设计开始中断初始化开始中断初始化调南北方向通行子程序调南北方向黄灯闪烁子程调东西方向通行子程序调东西方向黄灯闪烁子程判断是否有开关中断?NOYES中断处理中断处理(到子程序处)紧急中断子程序流程图开始始开始始断点入栈保护状态参数设置送状态字至端口状态响应断点返回循环流程控制思路:东西绿灯东西绿灯南北红灯东西黄灯闪南北红灯亮中断东西红灯亮南北黄灯闪东西红灯南北绿灯源程序#include<reg52.h>#include<intrins.h>#defineuintunsigned#defineucharunsignedcharuchartemp,aa,nn;sbitrn=P2^0;sbitnb=P2^1;sbitgn=P2^2;sbitrw=P2^3;sbitdx=P2^4;sbitgw=P2^5;sbitshi=P3^6;sbitge=P3^7; */bitflag=0;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelay(uintz);voiddisp(uintn);voidvoidvoid xint0();voidtimer0();void void xint1();void voidnanbei();voiddongxi();voidmain(){

/*将数字0123456789的16进制数定义成数组用以显示*//*将所使用的子函数定义*/uintnum=0;aa=0;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;EX0=1;IT0=0;EX1=1;IT1=1;

/*中断初始化*/while(1){nanbei();nb_flash();dongxi();dx_flash(); /**/}}voiddelay(uint{

/*延时子函数*/uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidtimer0()interrupt{

/*定时器初始化*/TH0=(65536-50000)/256;TL0=(65536-50000)%256;aa++;if(aa==18){aa=0;flag=1;}}voiddisp(uintn){

/*显示子函数*/while(!flag){ge=0;P0=table[n%10];delay(50);shi=1;ge=1;shi=0;P0=table[n/10];delay(50);shi=1;ge=1;}if(flag==1)flag=0;}voidnanbei() */{ uintnum;num=60;disp(num);while(num<=60&&num>0){ num--;P2=0xde;disp(num);}}voiddongxi() /**/{ uintnum=80;while(num<=80&&num>0){ P2=0xf3;disp(num);num--;}}voidnb_flash(void) */{uinta;for(a=3;a>0;a--){ P2=0xdd;nb=1;delay(100);nb=0;disp(a);}}voiddx_flash(void) */{uinta;for(a=3;a>0;a--){ P2=0xeb;dx=1;delay(100);dx=0;disp(a);}}void xint0() interrupt2 /*中断定义*/{TH0=(65536-50000)/256;TL0=(65536-50000)%256;LED_ON();}voidLED_ON() */{ uintb;rn=0;rw=0;gn=1;gw=1;nb=1;dx=1;for(b=5;b>0;b--){ge=0;shi=1;P0=table[b];delay(1000);ge=1;shi=1;}return;}调试运行正常运行状态中断运行状态黄灯闪烁状态设计心得体会发现提出,,.随着科学技术发展的日新日异纪的大学来说掌握单片机的开发技术是十分重要的。同努力下我们顺利地完成了本次单片机课程设计,同时也学到了很多东西。们也更好地掌握了对数码管的使用,这都是课堂上学不到的知识。这次的单片机课程设计是通过实践操作和理论相结合,提高动手实践能力,提高科学的思维能力。与此同时,我们也对分工合作有了进一步的认识,只有通过合理的分工合作,我们们才能够在短短一周的时间内完成设计任务,相信这对以后在社会上工作和学习会有很多帮助,们以后的学习中会有更多的帮助。问题的机会。当然要做好一个课程设计也不是很简单的,我认为有以下几步:些资源;要有一个清晰的思路和一个完整的的软件流程图数来实现;的必经之路;白你的思路,方便资料的保存和交流;的;力才得

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论