压力传感器称重系统(6)

2019-03-11 15:35

五邑大学本科毕业设计

表2-2 MCS—51特殊功能寄存器(SFR)一览表

寄存器符号 *A *B *PSWW SP DPTR DPL DPH *PI *P2 *P3 *IP *IE TMOD *TCON THO TLO TH1 TL1 *SCON SBUF 名 称 累加器 B寄存器 程序状态字 堆栈指针 数据指针(DPL、DPH) 数据指针低位 数据指针高位 口锁存器 口锁存器、 口锁存器 中断优先级控制寄存器 中断允许控制寄存器 定时器/计数器方式控制寄存器 定时器/计数器控制寄存器 定时器/计数器0高字节 定时器/计数器O低字节 定时器/计数器1高字节 定时器/计数器1低字节 串行口控制寄存器 串行数据缓冲器 地 址 OEOH OFOH ODOH 81H 82H 83H 90H OAOH OBOH OB8H OA8H 89H 88H 8CH 8AH 8DH 8BH 98H 99H 87H PCON 电源控制寄存器

位地址空间。MCS—51有一个功能很强的位处理器,它实际上是—个完整的一位微计算机。一位机在开关决策、逻辑电路仿真和实时控制方面非常有效。MCS—51指令系统中有有着丰富的位操作指令,这些指令构成了位处理机的指令集。在内部RAM和SFR中共有211个可寻址位的位地址00H—FFH,其中00H—7FH这128个位处于内部RAM的字节地址为20F—2FH单元中;其余的83个可寻址位分布在SFR中。

外部数据存储器。MCS—51应用系统往往是一个应用系统。当片内RAM不够用时,可以在片外扩充数据存储器。MCS—51给用户提供了最多可以寻址4K字节的外部扩充RAM能力。以上介绍了MCS—51的存储器结构。使用各类存储器,要注意以下几点:

地址的重叠性。数据存储器与程序存储器全部64K地址重叠;程序存储器中片内外低4K字节地址重叠;数据存储器中片内外最低128字节地址重叠;虽然有这些重叠,但不会产生混乱,这是因为采用了不同的操作指令及EA控制选择。

22

五邑大学本科毕业设计

程序存储器(ORM)与数据存储器(ARM)在使用上是严格区分的,不同的操作指令不得混用。程序存储器只能放置程序指令以及常数表格,除程序的运行控制外,其操作指令不分内外,只有两条MOVC指令;而数据存储器则存放数据,片内外操作指令不同,片外数据存储器只有一条传送指令,即MOVX。 位地址空间有两个区域,即片内RAM中的2011—2FH的128位,以及SFR中的位地址(有些位没有意义)。这些位寻址单元与位指令集构成了位处理系统。

片外数据存储器中,数据区与用户外部扩展的I/O口统一编址。与外围接口进行数据传送时,使用的是与访问外部数据存储器相同的传送指令。

(4)定时器/计数器。 MCS—51系列单片机有两个可编程定时器/计数器,即定时器/计数器O和1。它们各具有两种工作模式(定时器模式和计数器模式)和4种工作方式(方式O、方式1、方式2、方式3)。4种工作方式中,前三种方式对两个定时器/计数器都是一样的,方式3对两者时不同的,这一点在设计时要注意。特殊功能寄存器TMOD(定时器/计数器方式控制寄存器)用于控制定时器/计数器的工作模式和过方式。另一个特殊功能寄存器TCNO(定时器/计数器控制寄存器)用于T0和T1的启动和停止计数,同事还包含了T0和T1的状态。有关定时器/计数器的各个工作方式将在具体设计中详细叙述。

(5)串行口。 MCS—51系列单片机内部有一个功能很强的全双工的串行口,该串行口有四种工作方式,波特率可以由软件设置,由片内的定时器/计数器产生。串行口有两个物理上独立地接收、发送缓冲器SBUF,可以同时发送、接收数据,发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器公用一个字节地址(99H)。串行口的接收、发送数据均可触发中断系统。同时,还有两个控制寄存器来控制MCS—51单片机地串行口,它们是特殊功能寄存器SCNO和PCNO。

2.7 LED数码管结构

从各发光段电极连接方式分有共阳极和共阴极两种

所谓共阳方式是指笔画显示器各段发光管的阳极(即P区)是公共的,而阴极互相隔离。 所谓共阴方式是笔画显示器各段发光管的阴极(即N区)是公共的,而阳极是互相隔离的。如下图所示:

5EF1062KP(G) 5EF1062AP(G)

共阴极510共阳极51012 e d

3c6b78ag9f12ed3c6b7a8g9f

图2-22 发光管管脚

23

五邑大学本科毕业设计

2.8整体的PROTEL电路图

AP0404135吴明卫

图2-23 原理图

2.9 本章小结

本章详细分析了系统的硬件设计,先着重介绍本设计每个硬件模块中的主要芯片,然

后分析每个模块的设计和工作原理。

24

五邑大学本科毕业设计

第3章 系统软件设计

3.1软件的总体设计

Franklin或KeiC51交叉编译器[10]是专为51系列单片机设计的一种高效的C语言编译器,使用它可以缩短开发周期,降低开发成本,而且开发出的系统易于维护,可靠性高,可移植性好,即使在代码的使用效率上,也完全可以和汇编语言相比,因此目前它已成为开发51系列单片机的流行工具。

随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使用高级语言进行开发,其中以C语言为主。C语言发展非常迅速,成为最受欢迎的语言之一,只要因为它具有强大的功能。与汇编语言相比,它不但具有结构化控制语句,而且适用范围大和可移植性好;与其他高级语言相比,它不仅简洁紧凑、灵活方便,重要的是它的运算符、数据结构非常丰富,而且设计自由度大,生成代码质量高。所以,软件部分采用了C语言编程。

为了减少错误和调试方便,本系统软件设计采用模块化设计方案,主要包括控制A/D转换模块、单片机通信模块、LED显示模块等。软件流程图:

放大信号 返 回 A/D转换 清除转换器 1 0 启动程序 START 判断当前寄存器,决是否调用通信方案 LED显示

图3-1软件流程图

25

五邑大学本科毕业设计

由上流程图可知:ADC0809的START为启动转换输入线,其上升沿用以清除A/D转换器内部寄存器,其下降沿用以启动内部控制逻辑,使A/D转换器工作。再由单片机决定通信方案,并在LED上显示。

C语言是一种高级程序设计语言[11],它提供了十分完备的规范化流程控制结构。因此采用C51语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,易于调试和维护。对于一个较大的程序,可将整个程序按功能分成若干个模块,不同的模块完成不同的功能。对于不同的功能模块,分别指定相应的入口参数和出口参数,而经常使用的一些程序最好编成函数,这样既不会引起整个程序管理的混乱,还可增强可读性,移植性也好。

在单片机程序设计中,设置一个好的时钟中断,将能使一个C户U发挥两个CPU的功效,大大方便和简化程序的编制,提高系统的效率与可操作性。我们可以把一些例行的及需要定时执行的程序放在时钟中断中,还可以利用时钟中断协助主程序完成定时、延时等操作。

3.2系统的主程序

初始化设置各个寄存器的值,定义了LED: include \调用LED函数 #define addo (5.0/255.0) //宏定义 #define zero 0.005

//用于校准AD的误差

void main() //主函数 {

uint cnt=0; //定义变量 while(1) //循环函数 {

switch(cnt++) //调用函数 {

case 0: decodenum(ad_action(0)*addo+zero,0);break; //执行上面的函数

case 4: cnt=0;break; //返还 disp(); // led显示 } }

26


压力传感器称重系统(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:例谈摩擦力做功问题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: