单片机原理与接口技术课程设计-基于89C51单片机交通灯设计

上传人:aa****6 文档编号:29985594 上传时间:2018-01-26 格式:DOC 页数:13 大小:82.50KB
返回 下载 相关 举报
单片机原理与接口技术课程设计-基于89C51单片机交通灯设计_第1页
第1页 / 共13页
单片机原理与接口技术课程设计-基于89C51单片机交通灯设计_第2页
第2页 / 共13页
单片机原理与接口技术课程设计-基于89C51单片机交通灯设计_第3页
第3页 / 共13页
单片机原理与接口技术课程设计-基于89C51单片机交通灯设计_第4页
第4页 / 共13页
单片机原理与接口技术课程设计-基于89C51单片机交通灯设计_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《单片机原理与接口技术课程设计-基于89C51单片机交通灯设计》由会员分享,可在线阅读,更多相关《单片机原理与接口技术课程设计-基于89C51单片机交通灯设计(13页珍藏版)》请在金锄头文库上搜索。

1、单片机原理与接口技术课程设计题目:基于 89C51 单片机交通灯设计学院:信息工程学院专业班级:姓名:学号:- 1 -目 录一、设计题目:带有强制按钮的交通灯 .2二、实验设备: .2三、芯片介绍: .2四、设计内容: .2五、I/O 端口使用表: .5六、硬件原理图: .5七、程序流程图: .6八、C 语言程序: .7九、总结与体会: .9十、参考文献: .10- 2 -1、设计题目:带强制按钮的交通灯2、实验设备:装有 STC 下载软件、 Keil 编程软件的计算机;89C51 单片机开发板一块。3、芯片介绍:MCS-51 系列单片机是在一块芯片上集成了 CPU、RAM、ROM、定时/计数

2、器和多功能 I/O 口等基本功能部件的一台计算机。单片机必须配备部件外围元件才能使用,其系统核心是单片机芯片,芯片引脚按功能分为 3 类,即数据总线、地址总线、和控制总线。MCS-51 系列单片机的外形采用 40 引脚双列直插封装(DIP)或 LCC/QFP 封装,每条引脚有规定的序号和名称。DIP 封装的引脚排列和逻辑如下图:MCS-51 主要功能引脚说明如下:(1)主电源引脚 Vcc 和 GNDVcc 电源输入端。工作电源和编程校验为+5V。GND 共用接地段。(2)时钟电路引脚 XTAL1 和 XTAL2- 3 -XTAL1 和 XTAL2 分别用做晶体振荡电路的反响请输入端和输出端。(

3、3)控制信号引脚 RST,ALE,PSEN 非和 EA 非RST复位信号输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将是单片机复位。ALE当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。PSEN 非 程 序 储 存 允 许 ( PSEN) 输 出 是 外 部 程 序 存 储 器 的 读 选 通 信 号 ,当 AT89C52 由 外 部 程 序 存 储 器 取 指 令 (

4、 或 数 据 ) 时 , 每 个 机 器 周 期 两 次PSEN 有 效 , 即 输 出 两 个 脉 冲 , 在 此 期 间 , 当 访 问 外 部 数 据 存 储 器 , 将 跳 过两 次 PSEN 信 号 。EA外部访问允许,欲使 CPU 仅访问外部程序存储器(地址为 0000H-FFFFH) ,EA 端必须保持低电平(接地) 。(4)4 个 8 位 I/O 端口P0,P1,P2 和 P3P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动 8个 TTL 逻辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低

5、8 位地址/数据复用。在这种模式下, P0 具有内部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口,p1 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。在访问外部程序存储器或用 16 位地址读取外部数据存储器时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送 1。在使用 8 位地址访

6、问外部数据存储器时,P2 口输出 P2 锁存器的内容。P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口,P3 输出缓冲器能- 4 -驱动 4 个 TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。端口引脚 第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断 0)P3.3 INT1(外中断 1)P3.4 TO(定时/计数器 0)P3.5 T1(定时/计数器 1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)4、设计内容:1. 交通灯循环显示。2. 当按下按钮 K

7、1 触发时外部中断 0,控制东西绿灯强制;当按下按钮 K2触发时外部中断 1,控制南北绿灯强制。按钮 KEY 按下强制解除。 3. 定时计数器 0 控制绿灯显示时间,并用数码管显示时间。5、I/O 端口使用表:引脚 所接元件 功能P2.7 D0 东西黄灯P2.6 D1 东西红灯P2.5 D2 东西绿灯P2.2 D3 南北绿灯P2.1 D4 南北黄灯P2.0 D5 南北红灯P1 SMG1 时间十位P0 SMG2 时间个位P3.2 K1 东西绿灯强制P3.3 K2 南北绿灯强制- 5 -P3.7 KEY 强制解除6、硬件原理图:K1f2g3e4dc8DP7b9a0SpyAmrCR.TXLENVIW

8、BYG7、程序流程图:主程序流程图:开始初始化T0、 INT0、INT1 中断设置定时 50ms;T0 中断优先级为低交通灯显示子程序- 6 -交通灯显示子程序流程图:东西路口绿灯亮;南北路口红灯亮定时器定时 10s东西路口绿灯闪 5 次;南北路口红灯同时闪 5 次东西路口南北路口黄灯亮东西路口红灯亮;南北路口绿灯亮定时器定时 10s延时东西路口红灯闪 5 次;南北路口绿灯同时闪 5 次东西路口南北路口黄灯亮- 7 -外部中断 0 服务子程序: 外部中断 1 服务子程序:NO NOYES YES8、C 语言程序:#include#define uchar unsigned char #defi

9、ne uint unsigned int unsigned char code Table=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; /数码管显示表 uchar tur=0;uchar k=0;uchar j; sbit KEY=P37; /位定义sbit Yellow_E=P27;sbit Red_E=P26;开始东西路口绿灯亮;南北路口红灯亮KEY=1?返回开始KEY=1?东西路口红灯亮;南北路口绿灯亮返回- 8 -sbit Green_E=P25;sbit Yellow_S=P21;sbit Red_S=P20;sbit Gre

10、en_S=P22;Extra0() interrupt 0 /外部中断 0,东西绿灯强制while(KEY=1) Yellow_E=1;Red_E=1;Green_E=0;Yellow_S=1;Red_S=0;Green_S=1; Extra1() interrupt 2 /外部中断 1,南北绿灯强制while(KEY=1)Yellow_E=1;Red_E=0;Green_E=1;Yellow_S=1;Red_S=1;Green_S=0;Time0() interrupt 1 /定时计数器子程序TH0=(65536-50000)/256; /高位重装TL0=(65536-50000)%256;

11、 /低位重装void Delay(uint x) /延时子程序- 9 -uint i;while(x-)for(i=0;i=1000;i+);void Traffic_LED() /交通灯显示子程序uchar i;switch(tur)case 0:Yellow_E=1;Red_E=1;Green_E=0;/东西绿灯亮Yellow_S=1;Red_S=0;Green_S=1; /南北红灯亮j=0;while(j+)=10)for(k=0;k20;k+)TR0=1; /定时器开始计时while(!TF0);P1=Table(j)/10; /数码管十位P0=Table(j)%10; /数码管个位P

12、1=0xC0; /数码管复位P0=0xC0;- 10 -case 1:Yellow_E=1;Red_E=1;Green_E=0;/东西路口绿灯闪 5 次Yellow_S=1;Red_S=0;Green_S=1;/南北路口红灯闪 5 次for(i=0;i=10;i+)Green_E=!Green_E;Red_S=!Red_S;Delay(20);case 2:Yellow_E=0;Red_E=1;Green_E=1;/东西路口黄灯亮Yellow_S=0;Red_S=1;Green_S=1; /南北路口黄灯亮Delay(50); /延时case 3:Yellow_E=1;Red_E=0;Green_E=1; /东西路口红灯亮Yellow_S=1;Red_S=1;Green_S=0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号