基于proteus的单片机控制模拟交通灯的设计.doc
基于proteus的单片机控制模拟交通灯的设计
PAGE
PAGE9
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各部分的组成及功能:
TXDRXDP0P1P2P3扩展控制外部中断振荡器和时钟电路
TXD
RXD
P0P1P2P3
扩展控制
外部中断
振荡器和时钟电路
数据存储器
128字节
程序存储器
14KB
CPU
两个16位定时器
计数器
中断
控制
总线扩展控制器
并行可编程
I/O口
可编程
串行口
内部总线
单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。
运算器
运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元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的工作原理:
引脚排列及其功能
AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。
I/O口线
P0口—8位、漏极开路的双向I/O口。
当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。
P1口—8位、准双向I/O口,具有内部上拉电阻。
震荡电路的接法
硬件电路原理图设计
软件程序设计
源程序:
SECOND EQU 30H
H_RED BIT P2.1 ;定义IO端口
H_GREEN BIT P2.2
H_YELLOW BIT P2.3
L_RED BIT P2.4
L_GREEN BIT P2.5
L_YELLOW BIT P2.6
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV TMOD,#01H ;设置定时器0,为方式1
MOV TH0,#3CH ;置定时器的初始值,定时50ms
MOV TL0,#0B0H
CLR TF0 ;清定时器0溢出标志
SETB TR0 ;启动定时器
START: CLR A
MOV P1,A ;首先关闭显示
MOV P3,A
;***********************************
;状态1,东西方向绿灯亮,南北方向红灯亮
;