proteus的单片机控制模拟交通灯的设计.docx

上传人:b****6 文档编号:15719108 上传时间:2023-07-07 格式:DOCX 页数:13 大小:50.59KB
下载 相关 举报
proteus的单片机控制模拟交通灯的设计.docx_第1页
第1页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第2页
第2页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第3页
第3页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第4页
第4页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第5页
第5页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第6页
第6页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第7页
第7页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第8页
第8页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第9页
第9页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第10页
第10页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第11页
第11页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第12页
第12页 / 共13页
proteus的单片机控制模拟交通灯的设计.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

proteus的单片机控制模拟交通灯的设计.docx

《proteus的单片机控制模拟交通灯的设计.docx》由会员分享,可在线阅读,更多相关《proteus的单片机控制模拟交通灯的设计.docx(13页珍藏版)》请在冰点文库上搜索。

proteus的单片机控制模拟交通灯的设计.docx

proteus的单片机控制模拟交通灯的设计

AT89C51单片机的片内硬件结构

AT89C51单片机的主要工作特性:

1.内含4KB的FLASH存储器,擦写次数1000次。

2.内含28字节的RAM。

3.具有32根可编程I/O线。

4.具有2个16位可编程定时器。

5.具有6个中断源、5个中断矢量、2级优先权的中断结构。

6.具有1个全双工的可编程串行通信接口。

7.具有一个数据指针DPTR。

8.两种低功耗工作模式,即空闲模式和掉电模式。

9.具有可编程的3级程序锁定定位。

AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz。

AT89C51各部分的组成及功能:

 

单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

(1)运算器

运算器主要用来实现算术、逻辑运算和位操作。

其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。

ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。

算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。

暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。

ALU的输出也是两个:

一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。

累加器是CPU使用最频繁的一个寄存器。

ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。

单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。

B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。

运算结果存于AB寄存器中。

(2)控制器

控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。

AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。

复位时PC的内容是0000H。

(3)存储器

片机内部的存储器分为程序存储器和数据存储器。

AT89C51单片机的程序存储器采用4KB的快速擦写存储器FlashMemory,编程和擦除完全是电器实现。

(4)外围接入电路

AT89C51单片机的外围接口电路主要包括:

4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。

AT89C51的工作原理:

1.引脚排列及其功能

AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。

(1)I/O口线

P0口—8位、漏极开路的双向I/O口。

当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。

在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。

P0口也可做通用I/O口使用,但需加上拉电阻。

作为普通输入时,应输出锁存器配置1。

P0口可驱动8个TTL负载。

P1口—8位、准双向I/O口,具有内部上拉电阻。

P1口是为用户准备的I/O双向口。

在编程和校验时,可用作输入低8位地址。

用作输入时,应先将输出锁存器置1。

P1口可驱动4个TTL负载。

P2—8位、准双向I/O口,具有内部上拉电阻。

当使用外存储器或外扩I/O口时,P2口输出高8位地址。

在编程和校验时,P2口接收高字节地址和某些控制信号。

P3—8位、准双向I/O口,具有内部上拉电阻。

P3口可作为普通I/O口。

用作输入时,应先将输出锁存器置1。

在编程/校验时,P3口接收某些控制信号。

它可驱动4个TTL负载。

(2)控制信号线

RST—复位输入信号,高电平有效。

在振荡器稳定工作时,在RST脚施加两个机器周期以上的高电平,将器件复位。

EA/VPP—外部程序存储器访问允许信号EA。

当EA信号接地时,对ROM的读操作限定在外部程序存储器,地址为0000H-FFFFH;当EA接VCC时,对ROM的读操作从内部程序存储器开始,并可延续至外部程序存储器。

在编程时,该引脚可接编程电压5V或12V。

在编程校验时,该引脚可接VCC。

PSEN—片外程序存储器读选通信号PSEN,低电平有效。

在片外程序存储器取指期间,当PSEN有效时,程序存储器的内容被送至P0口;在访问外部RAM时,PSEN无效。

ALE/PROG—低字节锁存信号ALE。

在系统扩展时,ALE的下降沿将P0口输出的低8位地址锁存在外接的地址锁存器中,以实现低字节地址和数据的分时传送。

此外,ALE端连续输出正脉冲,频率为晶振频率的1/6,可做外部定时脉冲使用。

(3)外部晶振引线

XTAL1—片内振荡器反向放大器和时钟发生线路的输入端。

使用片内振荡器时,连接外部石英晶体和微调电容。

XTAL2—片内振荡器反相放大器的输出端。

当使用片内振荡器时,外接石英晶体和微调电容。

2.存储器组织和特殊功能寄存器

AT89C51的存储器将程序存储器和数据存储器分开,并有各自的存储空间和访问指令。

它有4个存储空间:

片内存储器、片外存储器、片内数据存储器及片外存储器。

3.时钟电路和工作时序

(1)振荡器电路原理

(2)震荡电路的接法

第一章

硬件电路原理图设计

 

第二章

软件程序设计

源程序:

SECONDEQU30H

H_REDBITP2.1;定义IO端口

H_GREENBITP2.2

H_YELLOWBITP2.3

L_REDBITP2.4

L_GREENBITP2.5

L_YELLOWBITP2.6

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVTMOD,#01H;设置定时器0,为方式1

MOVTH0,#3CH;置定时器的初始值,定时50ms

MOVTL0,#0B0H

CLRTF0;清定时器0溢出标志

SETBTR0;启动定时器

START:

CLRA

MOVP1,A;首先关闭显示

MOVP3,A

;***********************************

;状态1,东西方向绿灯亮,南北方向红灯亮

;***********************************

MOVR2,#20

MOVR3,#21

MOVSECOND,#20;20秒初值

LCALLSTATE1

LCALLCOUNT

;***********************************

;状态2,东西方向绿灯闪,南北方向红灯亮

;***********************************

MOVR0,#01H;标志位,南北方向绿灯闪

MOVR2,#2

MOVR3,#4

MOVR4,#10

MOVSECOND,#3;3秒初值

LCALLDISPLAY

LCALLSTATE2

LCALLCOUNT1

;***********************************

;状态3,东西方向黄灯闪,南北方向红灯亮

;***********************************

MOVR0,#02H;标志位,南北方向黄灯闪

MOVR2,#2

MOVR3,#3

MOVR4,#10

MOVSECOND,#2;2秒初值

LCALLSTATE3

LCALLCOUNT1

;************************************

;状态4,东西方向红灯亮,南北方向绿灯亮

;************************************

MOVR2,#20

MOVR3,#21

MOVSECOND,#20;20秒初值

LCALLSTATE4

LCALLCOUNT

;************************************

;状态5,东西方向红灯亮,南北方向绿灯闪

;************************************

MOVR0,#03H;标志位,东西方向绿灯闪

MOVR2,#2

MOVR3,#4

MOVR4,#10

MOVSECOND,#3;3秒初值

LCALLSTATE5

LCALLCOUNT1

;************************************

;状态6,东西方向红亮,南北方向黄灯闪

;************************************

MOVR0,#04H;标志位,东西方向黄灯闪

MOVR2,#2

MOVR3,#3

MOVR4,#10

MOVSECOND,#2;2秒初值

LCALLSTATE6

LCALLCOUNT1

LJMPSTART

;************************************

;计时程序

;************************************

COUNT:

LCALLDISPLAY

WAIT1:

JNBTF0,WAIT1;定时器50ms未到,则等待

CLRTF0;定时器50ms到了;清定时器0溢出标志

MOVTH0,#3CH

MOVTL0,#0B0H

LCALLDISPLAY

DJNZR2,WAIT1;是否到1秒

MOVR2,#20

DECSECOND;到1秒则秒值减1

DJNZR3,WAIT1;20秒是否倒计时减完,未完则返回

RET

COUNT1:

LCALLDISPLAY

WAIT2:

JNBTF0,WAIT2

CLRTF0

MOVTH0,#3CH

MOVTL0,#0B0H

LCALLDISPLAY

DJNZR4,WAIT2;是否到500ms,未到则返回

CJNER0,#01H,D1

CPLL_GREEN;到了500ms,则闪南北方向绿灯

D1:

CJNER0,#02H,D2

CPLL_YELLOW;闪南北方向黄灯

D2:

CJNER0,#03H,D3

CPLH_GREEN;闪东西方向绿灯

D3:

CJNER0,#04H,D4

CPLH_YELLOW;闪东西方向黄灯

D4:

MOVR4,#10

DJNZR2,WAIT2;是否到1秒

MOVR2,#2

DECSECOND

DJNZR3,WAIT2

RET

;********************************

;LED显示状态

;********************************

STATE1:

SETBH_RED;东西方向绿灯亮,南北方向红灯亮

CLRH_GREEN

CLRH_YELLOW

CLRL_RED

SETBL_GREEN

CLRL_YELLOW

RET

STATE2:

CLRH_GREEN;东西方向绿灯闪,南北方向红灯亮

CLRH_YELLOW

CLRL_RED

CLRL_GREEN

CLRL_YELLOW

RET

STATE3:

CLRH_RED;东西方向黄灯闪,南北方向红灯亮

CLRH_YELLOW

CLRL_RED

CLRL_GREEN

SETBL_YELLOW

RET

STATE4:

CLRH_RED;东西方向红灯亮,南北方向绿灯亮

SETBH_GREEN

CLRH_YELLOW

SETBL_RED

CLRL_GREEN

CLRL_YELLOW

RET

STATE5:

CLRH_RED;东西方向红灯亮,南北方向绿灯闪

SETBH_GREEN

CLRH_YELLOW

CLRL_GREEN

CLRL_YELLOW

RET

STATE6:

CLRH_RED;东西方向红灯亮,南北方向黄灯闪

CLRH_GREEN

SETBH_YELLOW

CLRL_RED

CLRL_YELLOW

RET

;*******************************

;显示程序

;********************************

DISPLAY:

MOVA,SECOND

MOVB,#10

DIVAB

MOVDPTR,#LEDMAP

MOVCA,@A+DPTR

MOVP1,A;显示十位

MOVA,B

MOVCA,@A+DPTR;显示个位

MOVP3,A

RET

LEDMAP:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

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

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2