51单片机AD89电路设计程序+原理图
项目三AT89S51原理图设计

任务一电路图的元器件放置
2.通过菜单放置元件 通过菜单放置元件 执行菜单命令“ 执行菜单命令“Place \ Part”,或者单击绘图工具栏中的 , 按钮,即可打开放置元件对话框, 所示。 按钮,即可打开放置元件对话框,如图3-12所示。 所示 3.通过元件工具栏放置元件 通过元件工具栏放置元件 执行菜单命令“ 执行菜单命令“View \ Toolbars \ Digital Objects",屏幕出现 , 所示的常用元件工具栏。 如图3-14所示的常用元件工具栏。此工具栏中包含了常用的各种 所示的常用元件工具栏 元件, 元件,单击需要的元件即可放置
上一页 返回
任务二AT89S51电路图的绘制 电路图的绘制 任务二
3. 2. 1连接线路 连接线路
元件布局结束后,元件之间还没有任何电气联系, 元件布局结束后,元件之间还没有任何电气联系,所以电路 原理图的设计工作还没有完成,接下来的工作就是连接线路, 原理图的设计工作还没有完成,接下来的工作就是连接线路,电 路原理图中的元件连接方式主要有4种 普通导线连接 普通导线连接、 路原理图中的元件连接方式主要有 种:普通导线连接、网络标号 连接、总线连接和输入/输出端口连接 下面将分别介绍这4种连 输出端口连接。 连接、总线连接和输入 输出端口连接。下面将分别介绍这 种连 接方式以及相互之间的区别。 接方式以及相互之间的区别。 1. 普通导线连接 最简单直观的电路连接方式是采用普通导线连接。 最简单直观的电路连接方式是采用普通导线连接。单击绘图 按钮,或执行菜单命令“ 工具栏中的 按钮,或执行菜单命令“Place \ Wire”,或者在 , 空白绘图区域单击鼠标右键,然后选择“ 选项, 空白绘图区域单击鼠标右键,然后选择“Place Wire”选项,以上 选项 以上3 种方法都可以进入画导线状态。此时,若想要编辑导线的属性, 种方法都可以进入画导线状态。此时,若想要编辑导线的属性, 可按下“Tab ”键,屏幕上将出现导线属性设置对话框,如图3-19 可按下“ 键 屏幕上将出现导线属性设置对话框, 所示。 所示。
AT89C51单片机综合设计PPT课件

硬件连接
将LED灯的正极连接到单片机的I/O口,负 极接地。
软件编程
使用C语言编写程序,通过循环语句控制I/O 口的电平状态,实现LED的闪烁。
实现效果
LED灯按照设定的频率快速闪烁,可实现基 本的信号指示功能。
实例二:按键输入
按键输入原理
通过检测AT89C51单片机的I/O口电平变化, 判断是否有按键按下。
单片机广泛应用于智能仪表、工业控制、智能家居、消费电子等领域。
AT89C51单片机特性
8位处理器
AT89C51单片机采用8位处理器 ,可处理8位二进制数据。
Flash存储器
AT89C51单片机内部集成了 Flash存储器,可用于程序存储 和数据存储。
丰富的I/O接口
AT89C51单片机具有丰富的输 入/输出接口,可连接各种外设 。
应用拓展
未来,AT89C51单片机将在物联网、智能制造、人工智能等领域 发挥更大的作用,为智能化生活提供更多便利。
开发环境与工具
随着开发环境和工具的不断完善,AT89C51单片机的开发将更加 便捷高效。
课程建议与展望
课程内容
在未来的课程中,应加强对AT89C51单片机的原理、外设接口、 开发工具等方面的介绍,以便学生更好地理解和应用。
软件编程
使用C语言编写程序,通过检测I/O口的电平 状态变化,判断是否有按键按下。
硬件连接
将按键的一端连接到单片机的I/O口,另一 端接地。
实现效果
当按键被按下时,程序会检测到电平变化并 执行相应的操作,实现人机交互功能。
实例三:数码管显示
数码管显示原理
通过控制数码管的各个段(a-g)的亮灭,显示数字或字符。
实践环节
第2章 89C51系列单片机的结构和原理

后缀由“YYYY”四个参数组成,每个参数的表示
和意义不同。在型号与后缀部分有“-”号隔开。
后缀中的第一个参数 Y用于表示速度,后缀中的
第二个参数Y用于表示封装,后缀中第三个参数 Y用 于表示温度范围,后缀中第四个参数Y用于说明产品 的处理情况。 例如:有一个单片机型号为“AT89C51—12PI”,则
2016/6/30
23
OV(PSW.2):溢出标志。带符号加减运算中,超出了累加器A所能 表示的符号数有效范围(-128~+127)时,即产生溢出, OV=1,表明运算运算结果错误。如果OV=0,表明运算结果正 确。 执行加法指令ADD时,当位6向位7进位,而位7不向C进位时, OV=1;或者位6不向位7进位,而位7向C进位时,同样OV=1。 乘法指令,乘积超过255时,OV=1,乘积在AB寄存器对中。若 OV=0,则说明乘积没有超过255,乘积只在累加器A中。
2.2 89C51系列单片机的结构
(3) 21(18)个SFR(128字节) 它用于控制和管理片内算术逻辑部件、并行 I/O口、串行I/O口、定时器/计数器、中断 系统等功能模块的工作。 3. 并行I/O口 89C51单片机共有4个8位的I/O口(P0、P1 、P2和P3),每一条I/O线都能独立地用作 输入或输出。P0口为三态双向口,能带8个 TTL门电路,P1、P2和P3口为准双向口,负 载能力为4个TTL门电路。
89——表示芯片内带有非易失性的Flash程序存储器;
C——代表CMOS工艺制造;
51/52/54/58——分别表示芯片内Flash程序存储器的
容量分别为4K/8K/16K/32K。
2016/6/30
4
2.1 89C51单片机的概述
AT89S51单片机实验板原理图

AT89S51单片机实验及实践系统板(以后简介系统板)集成多个硬件资源模块,每个模块各自可以成为独立的单元,也可以相互组合,因此,可以为不同阶层的单片机爱好者及单片机开发者提供不同的开发环境。
每个硬件模块介绍如下:1.继电器控制模块系统板上提供了2路继电器控制模块,分布在系统板的最左上端区域中,输入信号由Realy in 1和Realy in 2端口输入分别控制两路继电器,继电器控制的信号分别由最上端的两个插针输入和输出。
分别称为“com1 open1 short1”,“com2 open2 short2”,由于这个两个继电器是单刀单掷控制,当继电器不吸合时,“com1”和“short1”相通,“com2”和“short2”相通;当继电器吸合时,“com1”和“open1”相通,“com2”和“open2”相通。
其电路原理图1.1所示:2.参考电压源模块在系统板上写有“参考电压源”区域中,是由TL431来完成参考电压的调节,调节范围在0-2.50V之间;主要为是系统板上需要参考电压芯片或是为外部设备提供参考电压,由Var Vref Out端口输出。
其电路原理图如图1.2所示:图1.23.三路可调电压模块此模块主要是用于提供0-5V之间的可变的模拟电压值,即可以作为参考电压源也可以作为模拟电压信号。
这三路是相互独立的。
分别对应着由VR1,VR2,VR3端口输出。
具体的电路原理图如图1.3所示:图1.34.电源模块电源模块为系统板上其它模块提供+5V电源,电源输入有两种方式,一种为交直流电源从电源插座输入,输入的电压要求,直流输入应大于7.5V,交流输入应大于5V,通过7805三端稳压器得到5V的直流电源供给系统其它模块工作,另一种为从USB接口获取+5V电源,只要用相应配套的USB线从电脑主机获取+5V直流电源,在电源模块中加有保护电路,即电路中有短路,不会对7805三端稳压器及电脑主机电源有损害!其电路原理图如图1.4所示:5.程序下载模块该模块完成源程序代码下载到AT89S51或者是AT89S52芯片中,它需要和微机上的ISP下载器软件配合使用来完成这样的功能。
自制STC8952 STC8951 AT89S52 AT89S51最小系统原理图

自制STC8952/STC8951下载器AT89S52/AT89S51最小系统原理图STC89C52由于价格低,性价比高,烧录程序方便等优势,收到越来越多人的青睐。
下边是一个自制STC89C52最小系统/烧录器的原理图。
如有需要请看这里:/auction/item_detail.htm?item_num_id=89 88890168如有需要请看这里:/auction/item_detail.htm?item_num_id=89 88890168图分为6个部分:1. 最小系统的核心部分(CPU)2. 阻容复位电路3. USB供电电路,8*8自锁开关以及USB公头组成,加自锁开关是方便烧录程序使芯片断电再上电4. 电源指示电路,标识系统板是否上电5. ISP接口,方便AT89S52/AT89S51芯片烧录程序6. 串口通信电路,为STC89C52/C51收录程序,或者与PC机串口通信,或者显示调试信息STC89C52/STC89C51下载器图文教程一、下载器介绍如果只想学习下载方法请直接跳到第三节,这里的介绍只是为接下来的硬件连接做准备STC89C51/STC89C52符合8051的架构,与AT89S51/AT89S52等51芯片的指令完全兼容,并且具有价格适中,性能稳定,性价比高,程序烧录方便等特点,很适合初学者使用,同时也广泛应用于产品的开发。
STC系列的芯片采用串口通信的方式来烧录编译好的文件。
根据自己在开发中积累的经验,结合目前常用的几种烧录方式,设计了一种操作简单并且可以灵活扩展的STC下载器。
如果有需要的可以在这里购买/auction/item_detail.htm?item_num_id=3197118340套件地址:/auction/item_detail.htm?item_num_id=8988890168如下图:正面图背面图二、接口详细介绍J1--------串口 J2--------USB 供电接口 J3--------51或AVR 选择J4--------TTL下载线接口 J5--------片外RAM扩展接口 J6--------5V直流电源接口(内正外负)J7--------MAX使能跳线 K1--------电源开关 K2--------51复位按键K3--------ATMega16复位按键 Y1--------可更换的晶振 P1--------I/O口P0端口P1--------I/O口P1端口 P2--------I/O口P2端口 P3--------I/O口P3端口TTL以及外部RAM扩展接口ISP接口引脚定义所有IO口都采用双排引出,可以做为最小系统使用,兼容at89s52/s51等芯片;预留TTL接口,方便连接USB转TTL下载线;预留有ISP接口,可以接ISP下载器给AT89S52/S51烧录程序;支持AVR转51转接板;使用晶振座子,晶振可以根据自己的需要更换;使用USB供电;预留有标准电源接口,可以直接接5V直流电源使用。
2.1 89C51单片机的内部结构解析

51系列单片机的存储器分为数据存储器和程序存储 器,其地址空间,存取指令和控制信号各有一套。
1. 物理结构
片内程序存储器
程序存储器ROM
89C51存储器
片外程序存储器 片内数据存储器 片外数据存储器
数据存储器ROM
2. 逻辑结构
FFH 特 殊 功 能 寄 存 器 80H 7FH 通用 RAM区 位寻址区 30H 2FH 20H 1FH 0FFFH 工作寄 存器区 0000H 0000H 1000H F0H E0H D0H B8H B0H A8H A0H 98H 90H 88H 80H 特 殊 FFFFH 功 能 寄 存 器 中 位 寻 址 FFFFH 外部 RAM 外部
ROM
(I/O口 地址)
内部 ROM (EA=1)
0FFFH
外部 ROM (EA=0)
00H
0000H
内部数据存储器
外部数据存储器
程序存储器
(1) 片内、外程序存储器统一编址,使用MOVC指令。 (2) 片外数据存储器统一编址,使用MOVX指令。 (3) 片内数据存储器统一编址,使用MOV指令。
系列 Intel 51 子系列 Intel 52 子系列 ATEML 89C系列 (常用型) 片内存储器(字节) MCS-51 系列单片机配置一览表 定时器 并行 片内ROM 有ROM 无 8031 80C31 8032 80C32 有EPROM 片内 计数器 RAM I/O 串行 I/O 中 断 源
PSW
中断系统 串行口 定时/计数器
PC加1
PC
DPTR
P1锁存器
P3锁存器 P3驱动器
P1驱动器
P1.0~P0.7
P3.0~P3.7
三、CPU结构
89C51单片机硬件结构和原理

ALU PSEN ALE EA RET 定 时 控 制 指 令 译 码 器 OSC XTAL1 XTAL2 指 令 寄 存 器
PC增1 中断、串行口和定时器
PSW PC DPTR P1锁存器 P1驱动器 P1.0-P1.7 P3锁存器 P3驱动器 P3.0-P3.7
第2 章
89C51单片机硬件结构和原理
VPP:用于在对89c51的片内Flash ROM编程时,施加 (12V~21V)高压的输入端。
4. I/O端口 P0~P3
(1) P0口(P0.0~P0.7,39~32pin,I/O) 是漏极开路的8位准双向 I/O 端口。
G
D S
准双向
当I/O口作为输入时,应先向此口锁存器写入全1, 此时该口引脚浮空,可作高阻抗输入。
第2 章
89C51单片机硬件结构和原理
(3) P2口(P2.0~P2.7,21-28,I/O)
带内部上拉电阻的8位 准双向I/O端口。 ① 当有外部存贮器时,用作高8 位地址总线。 ② 当无外部存贮器时,可用作一般I/O线。输出输入时的情 况同P1口。
(4) P3口(P3.0~P3.7,10~17pin,I/O) 双功能口。 带内部上拉电阻的8位准双向I/O端口。 每位能驱动4个LS型TTL负载。 P3口除作为一般I/O口外,每个引脚都有第二功能。 第一功能:一般I/O口,准双向,输出输入时的情况同P1口。 第二功能:系统控制信号,定义如下:
第2 章
89C51单片机硬件结构和原理
第2 章
89C51单片机硬件结构和原理
与8051相比,89C51具有两种用软件选择的节电工作方式——
空闲方式:CPU停止工作,RAM、定时/计数器、中断系统等继续工作。
AT89C51单片机开发板原理图电路

A
Revision
GND
P3.2
1
2
3
4
6
COM3 R9 120 P0.1 P0.2
D2 D3 D4 P0.3
+5V 1
RP2
D
3
Q3 8550
D1 P0.0
D
GND 7805 PWR GND D10 4001 1 CP1 100u 2 Vin Vout 3 +5V
E
E
+5V R6 1K
+5V P0.4
D5 D6 P0.5 D7 COM4 P0.6 P0.7 120
GND +5V VLCD RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 +5V 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
1602 VSS VDD VO RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A K TG1602 GND
GND
JP2 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33
CN2 2 1 CN3 MAX232 1 C8 104 3 4 C9 104 5 P3.1 P3.0 11 10 12 9 C1+ C1C2+ GND C2T1IN T2IN R1OUT R2OUT T1OUT T2OUT R1IN R2IN VCC V+ V2 6 15 GND 14 7 13 8 GND C10 104 GND UART 1 6 2 7 3 8 4 9 5 D+ D+5V C5 4.7u R23 + C6 104 10K C7 1u GND 2 1 TXD P3.1 U11 1 2 3 4 5 6 7 8 9 10 11 12 13 14 DCD RI GND D+ DVDD REGIN VBUS RST# NC SUSPEND# SUSPEND NC NC CP2102 DTR DSR TXD RXD RTX CTX NC NC NC NC NC NC NC NC 28 27 26 25 24 23 22 21 20 19 18 17 16 15 GND RXD1 TXD1 P3.0 P3.1 RXD P3.0 +5V
51单片机AD89电路设计程序+原理图

AD0809在51单片机中的应用我们在做一个单片机系统时,常常会遇到这样那样的数据采集,在这些被采集的数据中,大部分可以通过我们的I/O口扩展接口电路直接得到,由于51单片机大部分不带AD转换器,所以模拟量的采集就必须靠A/D或V/F实现。
下现我们就来了解一下AD0809与51单片机的接口及其程序设计。
1、AD0809的逻辑结构ADC0809是8位逐次逼近型A/D转换器。
它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图1)。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
2、AD0809的工作原理IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A, B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
C B A 选择的通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0 IN41 0 1 IN51 1 0 IN61 1 1 IN7数字量输出及控制线:11条ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
单片机AD电路设计程序原理图

AD0809在51单片机中的应用我们在做一个单片机系统时,常常会遇到这样那样的数据采集,在这些被采集的数据中,大部分可以通过我们的I/O口扩展接口电路直接得到,由于51单片机大部分不带AD转换器,所以模拟量的采集就必须靠A/D或V/F实现。
下现我们就来了解一下AD0809与51单片机的接口及其程序设计。
1、AD0809的逻辑结构ADC0809是8位逐次逼近型A/D转换器。
它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图1)。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
2、AD0809的工作原理IN0-IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A, B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
C B A 选择的通道0 0 0 IN00 0 1 IN10 1 0 IN20 1 1 IN31 0 0 IN41 0 1 IN51 1 0 IN61 1 1 IN7数字量输出及控制线:11条ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
第2章89C51单片机硬件结构和原理

4、四个8位并行I/O(输入/输出)接口 P0~P3:
每个口可以用作输入,也可以用作输出。
20:00
返回
单片机原理及接口技术
一、组成
5、两个或三个定时/计数器:
每个定时/计数器都可以设置成计数方式,用以 对 外部事件进行计数 ,也可以设置成定时方式,并可以根据计数或定时的结果 实现计算机控制 。
1)运算器
(4)8位寄存器B: 在乘除运算时,用来存放一个操作数也 用来存放运算后的一部分结果;如不 能做乘除运算时,作为通用寄存器。
20:00
返回
单片机原理及接口技术
1)运算器
(5)布尔处理器: 专门用于处理位操作的,以PSW中的C为 其累加器。
20:00
返回
单片机原理及接口技术
1)运算器
(6)2个8位暂存器:
返回
单片机原理及接口技术
§2.1
89C51单片机芯片内部结构及特点
§2.1.1 89C51单片机的基本组成 §2.1.2 89C51单片机芯片内部结构
20:00
返回
单片机原理及接口技术
§2.1.1 89C51单片机的基本组成
一、组成
二、89C51系列单片机的性能
20:00
返回
单片机原理及接口技术
89C51RAM均为128B,地址为00H~7FH。 用于存放运算的中间结果、数据暂存以及数据缓 冲等。 这128B的RAM中有32个字节单元可指定为工作寄 存器。 片内还有21个特殊功能寄存器(SFR),它们同 128字节RAM统一编址,地址为80H~FFH。后面详 细介绍。
20:00
返回
• •
20:00
返回
单片机原理及接口技术
AT89C51的结构和原理解析 ppt课件

第2章 AT89C51的结构和原理
教学目标 2.1 AT89C51单片机的结构 2.2 AT89C51单片机外形及引脚功能 2.3 AT89C51存储器 2.4 AT89C51单片机工作方式 2.5 AT89C51时钟电路与时序 本章小结 思考题与习题
回目录
上一页ppt课件 下一页
结束
回目录
上一页ppt课件 下一页
结束
17
单片机原理及应用
1. 运算器
(1) 算术逻辑单元(ALU):AT89C51中的 ALU由加法器和一个布尔处理器组成。
(2) 累加器(ACC):用来存放参与算术运算和 逻辑运算的一个操作数或运算的结果。
(3) 暂存寄存器(TMP1、TMP2):用来存放 参与算术运算和逻辑运算的另一个操作数,它 对用户不开放。
1
单片机原理及应用
教学目标
通过本章教学,要求达到以下目标:
1. 总体了解AT89C51单片机内部结构。 2. 熟悉AT89C51单片机40个引脚及其功能。 3. 熟悉AT89C51三个不同存储空间配置及地址范
围,了解不同存储空间的操作指令和控制信号。 4. 熟悉AT89C51片内RAM低128B分区结构和作用。 5. 了解特殊功能寄存器地址分布范围,理解ACC、
回目录
上一页ppt课件 下一页
结束
24
单片机原理及应用
2.1.2 存储器
AT89C51单片机内部有256个字节的RAM数据 存储器和4 KB的闪存程序存储器(Flash),当不够 使用时,可分别扩展为64 KB外部RAM存储器和 64 KB外部程序存储器。它们的逻辑空间是分开的, 并有各自的寻址机构和寻址方式。这种结构的单 片机称为哈佛型结构单片机。
89C51单片机扩展存储器的设计-PPT课件PPT文档

20
8.4.1常用的静态RAM〔SRAM〕芯片 典型型号有:6116、6264、62128、62256。+5V电源供电,双列 直插封装,6116为24引脚封装,6264、62128、62256为28引脚 封装。(P148) 各引脚功能:
带有三态门的8D锁存器,其引脚及内部结构如图8-7和图 为了片选的需要,每个存储器芯片都有片选信号引脚; 74LS138是3-8译码器,有3个数据输入端,经译 OE*:读选通信号输入线。 带有三态门的8D锁存器,其引脚及内部结构如图8-7和图
图8-18
22
译码选通法扩展,如图8-19所示。
图8-19
23
各62128芯片的地址分配见表8-8。
24
8.5 EPROM和RAM的综合扩展 例 6286-42,EPR综 采O合用M扩线选展选27的法64硬扩。件展扩接2展片口接8电K口B路的电R路A见M图和82-片208。KB〔的PE1P5R2O〕M。RAM选
8
常用的存储器地址空间分配方法有两种:线选法和地址译 码法。 1.线选法 直接利用系统的高位地址线作为存储器芯片〔或I/O接口芯 片〕的“片选〞控制信号。为此,只需要把用到的高位地 址线与存储器芯片的“片选〞端直接连接即可。 优点是电路简单,不需要另外增加地址译码器硬件电路, 体积小,本钱低。 缺点是可寻址的芯片数目受到限制,只适用于外扩芯片数 目不多的单片机系统的存储器扩展。
10
〔1〕74LS138 74LS138是3-8译码器,有3个数据输入端,经译
码产生8种状
态。其引脚如图8-3所示,真值表如表8-1所示。 由表8-1可
见,当译码器的输入为某一固定编码时,其输 出仅有一个固
定的引脚输出为低电平,其余的为高电平。而 输出为低电平
第2章89C51单片机硬件结构与原理 PPT

3、256字节得片内数据存储器地址空间。访问 片内RAM指令用MOV。
一、用途: 二、编址: 三、寻址方式:
§2、3、2 程序存储器地址空间
一、用途: 用于存放编好得程序与表格常数。程序存储
器通过16位程序计数器寻址。 二、编址:
89C51单片机编程写入时,作为编程脉冲输 入端。
三、控制信号引脚:
RST、ALE、PSEN与EA PSEN(29脚):
程序存储器允许信号输出端。当89C51由片 外程序存储器取指令时,每个机器周期两次 PSEN有效(即输出2个脉冲。)但在此期间内 每当访问外部数据存储器时,这两次有效得 PSEN信号将部出现。
1、 在空闲方式中,CPU停止工作,而RAM、定时器 /计数器、串行口与中断系统都继续工作。 此时得电流可降到大约为正常工作方式得15%。 2、在掉电方式中,片内振荡器停止工作,由于时钟 被“冻结”,使一切功能都暂停,故只保存片内 RAM中得内容,直到下一次硬件复位为止。 这种方式下得电流可降到15 μA以下,最小可降到0、 6μA。
XTAL2(18脚):片内它就是振荡电路反
向放大器得输出端
XTAL1(19脚):在片内它就是振荡电路 反向放大器得输入端
三、控制信号引脚:
RST、ALE、PSEN与EA
RST/VPD(9脚):
RST:复位信号输入端,高电平有效。当 此输入端保持两个机器周期得高电平 时,就可以完成复位操作。
三、控制信号引脚:
表2-2 保留得存储单元
三、寻址方式:
用做输入口时,需对端口写1,通过内 部上拉电阻把端口拉到高电位。
在对Flash ROM编程与校验时,接收 低8位地址
MSC-51系列单片机IntelAT89C51为中心器件设计交通灯控制器(附源程序和电路图)

MSC-51系列单片机IntelAT89C51为中心器件设计交通灯控制器(附源程序和电路图)一、工程简介(一)、概述本设计是交通灯的控制实验,必须要先了解实际交通灯的变化规律。
假设一个路口为东西南北走向,即十字路口,初始状态零为东西南北灯都熄灭。
然后转状态一东西绿灯通车,南北为红灯。
过段时间转状态二,东西绿灯闪几次转黄灯,延时几秒,南北仍为红灯。
再转状态三南北绿灯通车,东西红灯。
过段时间转状态四南北绿灯闪几次转黄灯,延时几秒,东西仍为红灯。
最后循环至状态一。
交通信号灯模拟控制系统设计利用单片机的定时器定时,控制十字路口红绿灯交替电亮和熄灭,并且用LED数码管显示时间,但由于时间及水平的不足,在此实验中不显示。
用十二个发光二极管代替交通灯进行实验设计。
这次设计是《微机接口与控制技术》课程的综合训练,我们通过理论学习,课题选择,资料查阅,软、硬件设计,系统调试等环节,巩固所学的知识及提高应用水平.在此我们要学会从提出问题,观察与分析问题,到最终解决问题科学方法.提高自己的思维能力和动手能力,在设计中获得一些实操经验,更是要培养我们的工作作风和工作态度。
为今后的毕业设计、及从事微机控制系统的设计与维护奠定坚实的基础。
这次课题设计的意义在于通过具体的控制系统的设计,掌握微机控制系统设计的一般方法和处理问题的思路,特别是一些常用的技术手段。
使我们能在实践教学环境中累积设计经验,开拓思维空间,全面提高个人的综合能力。
(二)、工艺流程图因为本实验是交通灯控制实验,所以要先了解实际交通灯的变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西南北灯都熄灭。
然后转状态1东西绿灯通车,南北红灯。
过一段时间转状态2,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
再转状态3,南北绿灯通车,东西红灯。
过一段时间转状态4,南北绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最后循环至状态1。
交通信号灯模拟控制系统设计利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并且用LED 数码管显示时间,但由于时间和水平的限制就不显示时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AD0809在51单片机中的应用
我们在做一个单片机系统时,常常会遇到这样那样的数据采集,在这些被采集的数据中,大部分可以通过我们的I/O口扩展接口电路直接得到,由于51单片机大部分不带AD转换器,所以模拟量的采集就必须靠A/D或V/F实现。
下现我们就来了解一下AD0809与51单片机的接口及其程序设计。
1、AD0809的逻辑结构
ADC0809是8位逐次逼近型A/D转换器。
它由一个8路模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成(见图1)。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
2、AD0809的工作原理
IN0-IN7:8条模拟量输入通道
ADC0809对输入模拟量要求:信号单极性,电压围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:4条
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道
的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如下表所示。
C B A 选择的通道
0 0 0 IN0
0 0 1 IN1
0 1 0 IN2
0 1 1 IN3
1 0 0 IN4
1 0 1 IN5
1 1 0 IN6
1 1 1 IN7
数字量输出及控制线:11条
ST为转换启动信号。
当ST上跳沿时,所有部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
3、ADC0809应用说明
(1).ADC0809部带有输出锁存器,可以与AT89S51单片机直接相连。
(2).初始化时,使ST和OE信号全为低电平。
(3).送要转换的哪一通道的地址到A,B,C端口上。
(4).在ST端给出一个至少有100ns宽的正脉冲信号。
(5).是否转换完毕,我们根据EOC信号来判断。
(6).当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
4、AD0809的应用
了解完A/D转换芯片,下面我们以图2为例来完成它的程序设计。
电路说明:
电路见图(2),主要由AD转换器AD0809,频率发生器SUN7474,单片机AT89S51及显示用数码管组成。
AD0809的启动方式为脉冲启动方式,启动信号START启动后开始转换,EOC信号在START的下降沿10us后才变为无效的低电平。
这要求查询程序待EOC无效后再开始查询,转换完成后,EOC输出高电平,再由OE变为高电平来输出转换数据。
我们在设计程序时可以利用EOC信号来通知单片机(查询法
或中断法)读入已转换的数据,也可以在启动AD0809后经适当的延时再读入已转换的数据。
AT89S51的输出频为晶振频的1/6(2MHZ),AT89S1与SUN7474连接经与7474的ST脚提供AD0809的工作时钟。
AD0809的工作频围为10KHZ-1280KHZ,当频率围为500KHZ时,其转换速度为128us。
AD0809的数据输出公式为:Dout=Vin*255/5=Vin*51,其中Vin为输入模拟电压,Vout
为输出数据。
当输入电压为5V时,读得的数据为255再乘以2,得510。
我们用510*98%得499,再将百位数码管的小数点点亮,显示为4.99V,显示值与输入值基本吻合。
软件设计思路及程序流程
编程思路:
(1)向AD0809写入通道号并启动转换
(2)延时1ms后等待EOC出现高电平(JNB EOC,$)
(3)给OE置高并读入转换数据存入数据地址或数组中。
(4)显示
(5)
初始化
1、写入通道号
2、延时20us后等待EOC变高
3、读入采集到的数据并存入数组存入下一通道
#include<at89x51.h>
#define ucharunsigned char
#define uint unsigned int
sbit st=P3^2;
sbit oe=P3^1;
sbit eoc=P3^0;
uchar codetab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};//数码管显示段码ucharcode td[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};//通道先择数组
uint ad_0809,ad_data1,ad_data2,ad_data3,ad_data0;
uchar m,number;
uchar x[8];//八通道数据待存数组
void delaynms(uint x);//nms延时程序
void display();//显示程序
void ad0809();//芯片启动程序
voidkey();//键扫描程序
main()
{
number=1;
P1=0x00;
while(1)
{
ad0809();//调AD0809启动子程序
key();//调按键子程序
ad_0809=x[number];//把相关通道数据给ad_0809,用做显示
display();//调显示
}}
//nms延时程序
voiddelaynms(uint x)
{
uchari;
while(x-->0)
{
for(i=0;i<125;i++)
{;}}}
void display()
{
uchar a;
ad_data1=(ad_0809*49/25)/100;//读得的数据乘以2再乘以98%除以100得百位
ad_data2=((ad_0809*49/25)%100)/10;//读得的数据乘以2再乘以98%再分出十位
ad_data3=(((ad_0809*49/25)%100)%10);//读得的数据乘以2再乘以98%再分出个位
for(a=0;a<10;a++)
{
P0=tab[ad_data3];//送小数点后第二位显示
P2=0x07;//选通第一个数码管
delaynms(3);
P0=tab[ad_data2];//送小数点后第一位显示
P2=0x0b;//选通第二个数码管
delaynms(3);
P0=tab[ad_data1];//送整数显示
P0_7=0;//点亮第三个数码管小数点
P2=0x0d;//选通第三个数码管
delaynms(3);
P0=tab[number];//送通道号显示
P2=0x0e;
delaynms(3);
}}
void ad0809()
{
uchari,m=1;
for(i=0;i<8;i++)
{
P0=td[i];//选通通道
oe=0;
//OE:输出允许信号;
//用于控制三态输出锁存器向单片机输出转换得到的数据。
OE=0,输出数据线呈高电阻;OE=1,输出转换//得到的数据;
//以下三条指令为起动AD0809
//注:st与ALE连载一起
//ALE为地址锁存允许输入线,当ALE=1,地址锁存与译码器将A,B,C三条
//地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行
//转换。
st=0; //ST为转换启动信号。
st=1;//当ST上跳沿时,所有部寄存器清零;
st=0; //下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
delaynms(1);// EOC信号在START的下降沿10us后才变为无效的低电平。
while(!eoc);//等待转换结束,转换完成后,EOC输出高电平,
oe=1;//取出读得的数据,OE变为高电平来输出转换数据
x[m]=P2;//送相关通道数组
oe=0;
m++;
}}
void key()
{
if(!P3_5)//P3.5是否按下
{
delaynms(20);//延时去抖动判误
if(!P3_5)//再一次判断P3。
5是否按下
{
while(!P3_5);//等待P3。
5为高电平,按键松开
number++;//通道号显示加一
if(number>8)number=1;//八通道
}}}。