单片机课程设计8255.docx

上传人:b****6 文档编号:4790142 上传时间:2022-12-09 格式:DOCX 页数:15 大小:154.95KB
下载 相关 举报
单片机课程设计8255.docx_第1页
第1页 / 共15页
单片机课程设计8255.docx_第2页
第2页 / 共15页
单片机课程设计8255.docx_第3页
第3页 / 共15页
单片机课程设计8255.docx_第4页
第4页 / 共15页
单片机课程设计8255.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

单片机课程设计8255.docx

《单片机课程设计8255.docx》由会员分享,可在线阅读,更多相关《单片机课程设计8255.docx(15页珍藏版)》请在冰豆网上搜索。

单片机课程设计8255.docx

单片机课程设计8255

 

单片机课程设计

 

学校:

经济技术学院

系别:

电子信息系

专业:

应用电子技术

学号:

1015002

导师:

胡老师、唐老师

课题:

道路交通的设计

日期:

2012年12月12

 

第一章课题的阐述2

1、容摘要2

2、课题的意义3

3、课题的容3

第二章系统分析3

2.1、元件的介绍3

2.1.1、8255的简介4

2.1.2、LED的介绍6

2.1.3AT89C52的介绍8

2.1.474LS373简介10

2.2、解决问题的思路11

2.3、总体方案12

2.4、设计原理图12

第三章系统设计13

1、硬件设计13

2、软件设计13

3.元件清单16

第四章总结16

第五章参考文献17

 

第一章课题的阐述

1、容摘要

随着我国社会经济的发展,城市化、城镇化进程的加快,道路交通堵塞问题日趋严重,如何对交通进行合理的管理和调度而尽可能减少堵车现象成为目前我国很多地方尤其是特大城市急需解决的问题,显然交通灯在其中起着不可缺少的作用。

该课题研究的容主要是单片机,单片机是微型计算机的一个重要分支,也是颇具生命力的机种。

单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

随着单片机在各个领域的广泛应用,单片机以其自身的特点,已广泛的应用于智能仪器、工业控制、家用电器、电子玩具等各个领域。

这种将单片机嵌入到对象体系中的嵌入式式系统已渗透到每个单位、每个家庭和个人。

随着社会需求的不断增长,单片机的应用有着广泛的和稳定增长的市场通常,单片机由单块集成电路芯片构成,部包含有计算机的基本功能部件:

中央处理器、存储器和I/O接口电路等。

因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

由单片机和交通等模组即可构成交通灯,在单片机运行适当的程序即构成了交通灯控制系统。

2、课题的意义

(1)加强对单片机和汇编语言的认识以及加深对高级语言的理解,充分掌握和理解设计各个部分的工作原理,模块化编程等多项知识。

(2)用单片机模拟实现具体应用,使个人设计能够真正应用。

(3)把理论知识与实践相结合,充分发挥个人能力,在实践中锻炼自己,提高利用已学知识分析和解决问题的能力。

3、课题的容

道路交通灯的设计的任务是用52系列单片机控制8255做输出口,控制12个发光二极管的然灭,模拟交通灯的管理。

硬件电路要求:

在试验箱上利用程序控制实现模拟控制12只发光二级管,模拟交通管理。

通过对交通灯控制的设计加强实践能力,综合运用专业知识及基础知识,解决工程技术问题的能力。

设计要求:

设计中必须根据程序,

第二章系统分析

2.1、元件的介绍

2.1.1、8255的简介

8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。

具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。

其各口功能可由软件选择,使用灵活,通用性强。

8255可作为单片机与多种外设连接时的中间接口电路。

8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。

同时必须具有与外设连接的接口A、B、C口。

由于8255可编程,所以必须具有逻辑控制部分,因而8255部结构分为3个部分:

与CPU连接部分、与外设连接部分、控制部分。

1)与CPU连接部分根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。

由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。

此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。

各信号的引脚编号如下:

(1)数据总线DB:

编号为D0~D7,用于8255与CPU传送8位数据。

(2)地址总线AB:

编号为A0~A1,用于选择A、B、C口与控制寄存器。

(3)控制总线CB:

片选信号、复位信号RST、写信号、读信号。

当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。

2)与外设接口部分  根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。

各通道的引脚编号如下:

(1)A口:

编号为PA0~PA7,用于8255向外设输入输出8位并行数据。

(2)B口:

编号为PB0~PB7,用于8255向外设输入输出8位并行数据。

(3)C口:

编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。

 3)控制器  8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。

如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:

  

(1)A组控制器:

控制A口与上C口的输入与输出。

  

(2)B组控制器:

控制B口与下C口的输入与输出。

  

8255管脚

 

 特性:

(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.  

(2)具有24个可编程设置的I/O口,即3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.

 RESET:

复位输入线,当该输入端处于高电平时,所有部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。

CS:

芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.RD:

读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。

WR:

写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。

  D0~D7:

三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。

8255具有3个相互独立的输入/输出通道端口,用+5V单电源供电,能在以下三种方式下工作。

方式0—基本输入输出方式;方式1—选通输入/出方式;方式2—双向选通输入/输出方式;PA0~PA7:

端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。

工作于三种方式中的任何一种;PB0~PB7:

端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。

不能工作于方式二; PC0~PC7:

端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。

端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。

'不能工作于方式一或二。

  A1,A0:

地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器. 当A1=0,A0=0时,PA口被选择;当A1=0,A0=1时,PB口被选择;当A1=1,A0=0时,PC口被选择;  当A1=1.A0=1时,控制寄存器被选择.

2.1.2、LED的介绍

发光二极管(英语:

Light-EmittingDiode,简称LED是一种能发光的半导体电子元件。

这种电子元件早在在1962年出现,早期只能发出低光度的红光,之后发展出其他单色光的版本,时至今日能发出的光已遍及可见光、红外线及紫外线,光度也提高到相当的光度。

而用途也由初时作为指示灯、显示板等;随着白光发光二极管的出现而续渐发展至被用作照明。

LED只能往一个方向导通(通电),叫作正向偏置(正向偏压),当电流流过时,电子与空穴在其复合而发出单色光,这叫电致发光效应,而光线的波长、颜色跟其所采用的半导体材料种类与掺入的元素杂质有关。

具有效率高、寿命长、不易破损、开关速度高、高可靠性等传统光源不及的优点。

白光LED的发光效率,在近几年来已经有明显的提升,同时,在每千流明的购入价格上,也因为投入市场的厂商相互竞争的影响,而明显下降。

虽然越来越多人使用LED照明作办公室、家具、装饰、招牌甚至路灯用途,但在技术上,LED在光电转换效率(有效照度对用电量的比值)上仍然低于新型的荧光灯。

发光二极管

它是半导体二极管的一种,可以把电能转化成光能;常简写为LED。

发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。

当给发光二极管加上正向电压后,从P区注入到N区的空穴和由N区注入到P区的电子,在PN结附近数微米分别与N区的电子和P区的空穴复合,产生自发辐射的荧光。

不同的半导体材料中电子和空穴所处的能量状态不同。

当电子和空穴复合时释放出的能量多少不同,释放出的能量越多,则发出的光的波长越短。

常用的是发红光、绿光或黄光的二极管。

 发光二极管的反向击穿电压约5伏。

它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过管子的电流。

限流电阻R可用下式计算:

R=(E-UF)/IF式中E为电源电压,UF为LED的正向压降,IF为LED的一般工作电流发光二极管。

物理特性发光二极管的两根引线中较长的一根为正极,应接电源正极。

有的发光二极管的两根引线一样长,但管壳上有一凸起的小舌,靠近小舌的引线是正极发光二极管与小白炽灯泡和氖灯相比,发光二极管的特点是:

工作电压很低(有的仅一点几伏);工作电流很小(有的仅零点几毫安即可发光);抗冲击和抗震性能好,可靠性高,寿命长;通过调制通过的电流强弱可以方便地调制发光的强弱。

由于有这些特点,发光二极管在一些光电控制设备中用作光源,在许多电子设备中用作信号显示器。

把它的管心做成条状,用7条条状的发光管组成7段式半导体数码管,每个数码管可显示0~9十个数目字。

发光原理:

50年前人们已经了解半导体材料可产生光线的基本知识,第一个商用二极管产生于1960年。

LED是英文lightemittingdiode(发光二极管)的缩写,发光二极管它的基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧树脂密封,起到保护部芯线的作用,所以LED的抗震性能好。

发光二极管的核心部分是由P型半导体和N型半导体组成的晶片,在P型半导体和N型半导体之间有一个过渡层,称为PN结。

在某些半导体材料的PN结中,注入的少数载流子与多数载流子复合时会把多余的能量以光的形式释放出来,从而把电能直接转换为光能。

PN结加反向电压,少数载流子难以注入,故不发光。

这种利用注入式电致发光原理制作的二极管叫发光二极管,通称LED。

当它处于正向工作状态时(即两端加上正向电压),电流从LED阳极流向阴极时,半导体晶体就发出从紫外到红外不同颜色的光线,光的强弱与电流有关。

分类:

发光二极管还可分为普通单色发光二极管、高亮度发光二极管、超高亮度发光二极管、变色发光二极管、闪烁发光二极管、电压控制型发光二极管、红外发光二极管和负阻发光二极管。

  以下是传统发光二极管所使用的无机半导体物料和所它们发光的颜色

  铝砷化镓(AlGaAs)-红色及红外线

  铝磷化镓(AlGaP)-绿色

  磷化铝铟镓(AlGaInP)-高亮度的橘红色,橙色,黄色,绿色

  磷砷化镓(GaAsP)-红色,橘红色,黄色

  磷化镓(GaP)-红色,黄色,绿色

  氮化镓(GaN)-绿色,翠绿色,蓝色

  铟氮化镓(InGaN)-近紫外线,蓝绿色,蓝色

  碳化硅(SiC)(用作衬底)-蓝色

  硅(Si)(用作衬底)-蓝色(开发中)

  蓝宝石(Al2O3)(用作衬底)-蓝色

  zincselenide(ZnSe)-蓝色

  钻石(C)-紫外线

  氮化铝(AlN),aluminiumgalliumnitride(AlGaN)-波长为远至近的紫外线

2.1.3AT89C52的介绍

AT89C52是一个低电压,高性能CMOS8位单片机,片含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

89C59的主要功能特性兼容MCS51指令系统、8k可反复擦写(大于1000次)FlashROM、32个双向I/O口、256x8bit部RAM、3个16位可编程定时/计数器中断时钟频率0-24MHz、2个串行中断,可编程UART串行通道;、2个外部中断源,共8个中断源;2个读写中断口线,3级加密位、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能、有PDIP,PQFP,TQFP及PLCC等几种封装形式,以适应不同产品的需求。

引脚功能及管脚电压AT89C52为8位通用微处理器,采用工业标PDIP封装的准的C51核,在部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:

XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。

RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。

P0~P3为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1是一个带部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash编程和程序校验期间,P1接收低8位地址。

引脚号

功能特性

P1.0

T2,时钟输出

P1.1

T2EX(定时/计数器2)

P2是一个带有部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口P2写“1”,通过部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口输出P2锁存器的容。

Flash编程或校验时,P2亦接收高位地址和一些控制信号。

P3口是一组带有部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被部上拉电阻拉高并可作为输入端口。

此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

 RST 复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条 MOVX和MOVC指令才能将ALE激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数 据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP 外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时部会锁存EA端状态如EA端为高电平(接Vcc端),CPU则执行部程序存储器中的指令Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1:

振荡器反相放大器的及部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出端。

2.1.474LS373简介

概述:

74lsT373是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。

74HC164、74HCT164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。

数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。

两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。

 时钟(CP)每次由低变高时,数据右移一位,输入到Q0,Q0是两个数据输入端(DSA和DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。

主复位(MR)输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。

器件功能作用:

8位串入,并出移位寄存器

 特性:

门控串行数据输入;

  异步中央复位符合JEDEC标准no.7A;

  静电放电(ESD)保护;

  HBMEIA/JESD22-A114-B超过2000V;

  MMEIA/JESD22-A115-A超过200V;

  多种封装形式;

额定从-40°C至+85°C和-40°C至+125°C

引脚说明

  74LS164是八位并出串行移位寄存器.功能是将数据串行移入,并行输出.

P4=VCC,P7=GND.P1=A,P2=B,两脚是数据串行移入口.P8=时钟.P9=清除.P3=QA,P4=QB,P5=QC,P6=QD,P10=QE,P11=QF,P12=QG,P13=QH是并行输出口.

2.2、解决问题的思路

利用89C52单片机控制交通灯系统工作。

8255有单片机AT89C52控制而8255的PA0-PA7口控制L5-L12,PB口的PB0-PB3控制L1-L4;其中L1-L3控制南方向,L7-L9控制北方向的;L4-L6控制西方向,L10-L12控制向。

PA0

PA1

PA2

PA3

PA4

PA5

西向绿灯

西向红灯

北向黄灯

北向绿灯

北向红灯

东向黄灯

PA6

PA7

PB0

PB1

PB2

PB3

东向绿灯

东向红灯

南向黄灯

南向绿灯

南向红灯

西向黄灯

图交通灯与p口之间的关系

通过软件编程控制Pa口、Pb口的高低电平来实现交通灯的亮灭,通过调用延时程序来设定时间以确定各个路口红绿灯亮灭的时间,各个路口交通灯的状态如表2-2所示。

南北干道

东西干道

时间(s)

红灯亮,禁止通行

红灯亮,禁止通行

0.8

红灯亮,禁止通行

绿灯亮,允许通行

0.8

红灯亮,禁止通行

黄灯亮,停车

0.04

红灯亮,禁止通行

灯不亮,禁止通行

0.04

绿灯亮,允许通行

红灯亮,禁止通行

0.8

黄灯亮,停车

红灯亮,禁止通行

0.02

灯不亮,禁止通行

红灯亮,禁止通行

0.02

图表示各个路口的交通灯的亮灭情况

2.3、总体方案

交通灯控制系统总体设计方案共有四个部分组成,分别是:

单片机AT89C52、发光二级管、8255扩展、74LS164移位寄存器。

该设计的设计方框图如图

交通灯的总设计图

2.4、设计原理图

第三章系统设计

1、硬件设计

利用了AT89C52和8255芯片的I/O引脚。

系统采用MSC-51系列单片机89C52和可编程并行I/O接口芯片8255为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8255芯片的PA口和PB口设置红、绿灯燃亮时间的功能。

2、软件设计

软件在硬件平台上构筑,完成各部分硬件的控制和协调。

系统功能是由硬件和软

件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。

因此,软件是本系统的灵魂。

软件采用模块化设计方法,不仅易于编程和调试,也可减

小软件故障率和提高软件的可靠性。

同时,对软件进行全面测试也是检验错误排除故障

的重要手段。

(1)程序流程图

(2)、程序清单

#include

#include

#defineucharunsignedchar

#definecom8255XBYTE[0xff2b]

#definepa8255XBYTE[0xff28]

#definepb8255XBYTE[0xff29]

voiddelay(unsignedinti)

{

unsignedintj,k;

for(k=0;k

for(j=0;j<1000;j++);

}

voidmain(void)

{com8255=0x88;

pa8255=0x6d;

pb8255=0x0b;

delay(800);

while

(1)

{uchara1=3,a2=3;

pa8255=0xae;

pb8255=0x0b;

delay(800);

while(a1--);

{

pa8255=0x

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

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

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