基于89s52的数字称设计单片机课程设计(编辑修改稿)内容摘要:
转换时间为 32μS; ( 6) 一般功耗仅为 15mW; ( 7) 8P、 14P— DIP(双列直插)、 PICC 多种封装; ( 8) 商用级芯片 温宽为 0176。 C to +70176。 C,工业级芯片温宽为 −40176。 C to +85176。 C; 其 芯片接口说明 为 : ( 1) CS_ 片选使能,低电平芯片使能。 ( 2) CH0 模拟输入通道 0,或作为 IN+/使用。 ( 3) CH1 模拟输入通道 1,或作为 IN+/使用。 ( 4) GND 芯片参考 0 电位(地)。 ( 5) DI 数据信号输入,选择通道控制。 ( 6) DO 数据信号输出,转换数据输出。 ( 7) CLK 芯片时钟输入。 ( 8) Vcc/REF 电源输入及参考电压输入(复用)。 ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。 其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在 0~5V 之间。 芯片转换时间仅为 32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。 独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。 通过 DI 数据输入端,可以轻易的实现通道功能的选择。 AT89C51是一种带 4K字节闪存可编程可擦除只读存储器( FPEROM— Flash 单片机 系统 课程设计 Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS 8 位微处理器,俗称单片机。 AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51 单片机特点能与 MCS51 兼容,有 4K 字节可编程闪烁存储器,寿命能够达到 1000 写 /擦循环,数据可以保留时间长达 10 年,全静态工作: 0Hz24MHz,三级程序存储器锁定, 128 8 位内部 RAM, 32 可编程 I/O线,两个 16 位定时器 /计数器, 5 个中断源,可编程串行通道,低功耗的闲置和掉电模式,片内振荡器和时 钟电路。 AT89S52 单片机是 AT89S 系列中的增强型高档机产品,它片内存储器容量是AT89C51 的一倍,即片内 8KB 的 Flash 程序存储器和 256B 的 RAM。 AT89S52 是一种兼容 MCS51 微控制器,工作电压 到 ,全静态时钟 0 Hz 到 33 MHz,三级程序加密, 32 个可编程 I/O 口, 2/3 个 16 位定时 /计数器, 6/8 个中断源,全双工串行通讯口,低功耗支持 Idle 和 Powerdown 模式, Power down 模式支持中断唤醒, 看门狗定时器,双数据指针,上电复位标志。 在工程应用中 AT89S52有一显著的优势:不需要烧写器,只借助 PC 机的并口输出和极为简单的下载电路,便可将程序通过串行方式写入单片机。 并且下载电路可设计在系统中,可以随时修改单片机的软件而不对硬件做任何改动。 由此,通过对目前主流型号的比较,我们最终选择了 AT89S52 通用的普通单片机来实现系统设计。 3 硬件设计 PM23电阻应变式压力传感器主要由弹性体、电阻应变片电缆线等组成,内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,电阻应变片(转换元件)受到拉伸或压缩应变片变形后,它的阻值将发生变化 (增大或减小),从而使电桥失去平衡,产生相应的差动信号,供后续电路测量和处理。 内部结构如图所示 单片机 系统 课程设计 PM23内部结构图 当垂直正压力 P 作用于梁上时,梁产生形变,电阻应变片 R1, R3受压弯拉伸,阻值增加; R2, R4受压缩,阻值减小;电桥失去平衡,产生不平衡电压,与作用在传感器上载荷 P 成正比,从 而将非电量转化成为电量输出。 采用 LM358放大电路, 4端接收 PM23型称重传感器的正负信号,经过 358的放大电路处理放大后传输到 ADC0832。 原理图如图所示 信号转 换 通过 以上信 号放大 处理,采用 ADC0832 将传感器信号进行转换,转换后形成数字信号,再经过单片机进行数据处理。 由于 ADC0832 为双通道 A/D 转换,采用 CH0 通道输入, CS端片选使能,接单片机的 P24 端, VCC 接电源正, GND 接地, CLK 为芯片时钟输入,接单片机的 P25 端, DI、 DO 共同接 P26 端。 原理如图所示 单片机 系统 课程设计 ADC0832 原理图 AT89S52具有如下特点: 40个引脚, 8k Bytes Flash 片内程序存储器, 256 bytes的随机存取数据存储器( RAM), 32个外部双向输入 /输出( I/O)口, 5个中断优先级 2层中断嵌套中断, 3个 16位可编程定时计数器, 2个全双工串行通信口,看门狗( WDT)电路,片内时钟振荡器。 主要功能特性 见下表 AT89S52 功能 兼容 MCS51 指令系统 8k 可反复擦写 (1000 次) ISP Flash ROM 32 个 双向 I/O 口 工作电压 3 个 16 位可编程定时 /计数器 时钟频率 033MHz 全双工 UART 串行中断口线 256x8bit 内部 RAM 2 个外部中断源 低功耗空闲和省电模式 中断唤醒省电模式 3 级加密位 看门狗( WDT)电路 软件设置空闲和省电功能 灵活的 ISP 字节和分页编程 双数据寄存器指针 引脚封装如下图所示: 表 31 AT89S52 功能 兼容 MCS51 指令系统 8k 可反复擦写 (1000 次) ISP Flash ROM 单片机 系统 课程设计 32 个双向 I/O 口 工作电压 3 个 16 位可编程定时 /计数器 时钟频率 033MHz 全双工 UART 串行中断口线 256x8bit 内部 RAM 2 个外部中断源 低功耗空闲和省电模式 中断唤醒省电模式 3 级加密位 看门狗( WDT)电路 软件设置空闲和省电功能 灵活的 ISP 字节和分页编程 双数据寄存器指针 引脚封装如下图所示: AT89S52 的引脚图 引脚功能说明: VCC/GND:电源 /接地引脚; Port 0: P0是一个 8位漏极开路型双向 I/O 端口,端口置 1(对端口写 1)时作高阻抗输入端; P0还可以用作总线方式下的地址数据复用管脚,用来操作外部存储器。 在这种工作模式下, P0口具有内部上拉作用。 对内部 Flash 程序存储器编程时,接收指令字节、校验程序、输出指令字节时,要求外接上拉电阻; Port 1: 单片机 系统 课程设计 P1是一个带有内部上拉电阻的 8位双向 I/0端口,输出时可驱动 4个 TTL。 端口置 1时,内部上拉电阻将端口拉到高电平,作输入用; 另外, 、 分别被用作定时器 /计数器 2的外部计数输入 ()和触发输入 ();对内部 Flash 程序存储器编程时,接收低 8位地址信息; Port 2: P2是一个带有内部上拉电阻的 8位双向 I/0端口;输出时可驱动 4个 TTL。 端口置 1时,内部上拉电阻将端口拉到高电平,作输入用; P2口在存取外部存储器时,可作为高位地址输出;内部 Flash 程序存储器编程时,接收高 8位地址和控制信息; Port 3: P3是一个带有内部上拉电阻的 8位双向 I/0端口,输出时可驱动 4个 TTL。 端口置 1时,内部上拉电阻将端口拉到高电平,作输入用。 P3引脚功能复用见下表 P3 引脚功能复用 串行通讯输入 (RXD) 串行通讯输出 (TXD) 外部中断 0( INT0) 外部中断 1(INT1)。基于89s52的数字称设计单片机课程设计(编辑修改稿)
相关推荐
)。 RS( 4 脚): RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。 R/W( 5 脚): R/W 为读写信号线,高电平 (1)时进行读操作,低电平 (0)时进行写 操作。 E( 6 脚): E(或 EN)端为使能 (enable)端,下降沿使能。 DB0( 7 脚): 低 4 位三态、 双向数据总线 0 位(最低位) DB1( 8 脚): 低 4 位三态、
有比例阀、防抱死装置及考虑制动热衰退的制动系统模型,深入研究了汽车列车操纵稳定性和制动性 [5]。 1997年,清华大学的张今越采用多体系统动力学的理论方法,应用机械系统分析软件 ADAMS,进行了汽车前后悬架系统和整车动力学性能仿真及优化研究,分析了汽车中柔性元素(橡胶减振元件)对动力学性能的影响。 武汉理工大学的鲍卫宁利用 ADAMS/View 软件,建立了麦弗逊式悬架的
2 第一章 工作原理 DDS 工作原理 直接数字频率合成器的基本原理: DDS 是利用采样定理,根据相位间隔对正弦信号进行取样、量化、编码,然后存储在 EPROM 中构成一个正弦查询表,通过查表法产生波形,它是由参考 时钟、相位累加器、正弦查询表和 D/A 转换器组成。 如下图所示: 图 直接数字频率合成原理框图 相位累加器由 N 位加法器与 N 位累加寄存器级联构成。 每来一个时钟脉冲,N
灵活、超有效的解决方案。 具有以下标准功能: 8k字节 Flash, 512 字节 RAM, 32 位 I/O 口线, 看门狗定时器 ,内置 4KB EEPROM, MAX810加热模式 0 加热模式 1 加热模式 2 加热模式 3 模式选择 单 片 机 温度传感器 数码管 继电器 定时器(模式 1) 外部中断(模式 3) 单片机设计报告 7 复位电路, 2 个 16 位 定时器 /计数器,一个
char dat) { unsigned char i=0。 for(i=0。 i8。 i++) { DQ=0。 DQ=datamp。 0x01。 delay(5)。 DQ=1。 dat=1。 } } /**********************************/ ReadTemperature(void) { unsigned char a=0。 unsigned char b=0。
CJNE R6,N,SET_TAB START:MOV TMOD, 61H MOV TH1,0FFH MOV TL1,0FFH SETB ET1 SETB ET0 CLR PT0 SETB PT1 SETB IT0 SETB PX0 SETB IT1 SETB PX1 SETB EX1 SETB EX0 SETB EA SETB TR1 CLR OUT CLR F0 MOV R7,00H