硬件应用系统开发

发布 2021-04-10 21:31:28 阅读 7239

硬件应用系统开发技术综合实验报告。

题目:at89s52综合接口程序设计。

二级学院计算机科学与工程学院。

专业计算机科学与技术。

学生姓名。学号。

教师。时间。

成绩。目录。

一、 实验名称。

at89s52综合接口程序设计。

二、 实验目的。

1、测量pcf8591的ad的in0电压0.00v到5.00v;

2、通过rs232口送pc串口助手显示实测电压,形如“voltage is: 2.35v↙”;

3、将测量到的电压送pcf8591的da输出到dl10,以调节led量度;

4、读取24c04中存储的报警调节值w0,当测量电压大于w0时蜂鸣器发出报警;

5、通过pc串口助手发送形如“:3.00v↙”,即修改24c04中存储的报警值w0为3.00v。

其中“↙”为回车键,其ascii码为0x0d和0x0a

三、 实验设备与环境。

单片机硕飞开发试验仪;pc机;keil开发软件;串口助手软件。

4、实验基本原理。

ad0809工作原理:in0-in7:8条模拟量输入通道,ad0809对输入模拟量要求:

子女好单极性,电压范围是0-5v,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样电路。

地址输入和控制线:1条ale为地址锁存器允许输入线,高电平有效。当ale线为高电平时,地址锁存与译码将a、b、c三条地址线的地址信号进行锁存,经锁存后被选中的通道的模拟量进转换器进行转换。

st为转换启动信号。当st上跳沿时,所有内部寄存器清零;下跳沿时,表明转换结束;否则。表明正在进行a/d转换。

oe为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。

24c04的写操作。在主器件发出开始信号以后,主器件再发送四位器件码、3位块地址码以及为逻辑低电平r/w位到总线上。这指示被寻址的从接收器,一个字地址和一个字节的数据将跟在第九个时钟周期期间产生的确认位之后。

因此,主器件发送的下一个字节是字地址,并且它将被写入带24lc04b/08b的地址指针。在从24l04b/08b接收带另一个确认信号后,主器件将发送写入带被寻址的存贮器中的数据字节。24lc04b/08b自此发出确认信号,同时主器件产生停止条件。

1、at89s52芯片简介。

at89s52是一种低功耗、高性能cmos 8位微控制器,具有8k 在系统可编程flash 存储器。使用atmel 公司高密度非易失性存储器技术制造,与工业80c51 产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位cpu 和在系统可编程flash,使得at89s52在众多嵌入式控制应用系统中得到广泛应用。

2、pcf8591芯片简介。

2.1 pcf8591是一个单片集成、单独供电、低功耗、8-bit cmos数据获取器件。pcf8591具有4个模拟输入、1个模拟输出和1个串行i2c总线接口。

pcf8591的3个地址引脚a0, a1和a2可用于硬件地址编程,允许在同个i2c总线上接入8个pcf8591器件,而无需额外的硬件。在pcf8591器件上输入输出的地址、控制和数据信号都是通过双线双向i2c总线以串行的方式进行传输。

2.2 引脚信息。

ain0~ain3:模拟信号输入端; pcf8591引脚a0~a2:引脚地址端;vdd、vss:

电源端(2.5~6v);sda、scl:i2c 总线的数据线、时钟线;osc:

外部时钟输入端,内部时钟输出端;ext:内部、外部时钟选择线,使用内部时钟时 ext 接地;agnd:模拟信号地;aout:

d/a 转换输出端;vref:基准电源端。

2.3 i2c接口。

1、只要求两条总线线路:一条串行数据线sda,一条串行时钟线scl;

2、每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机/从机关系软件设定地址,主机可以作为主机发送器或主机接收器;

3、它是一个真正的多主机总线,如果两个或更多主机同时初始化,数据传输可以通过冲突检测和仲裁防止数据被破坏;

4、串行的8 位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4mbit/s;

5、连接到相同总线的ic 数量只受到总线的最大电容400pf 限制。(3)引脚功能概述:

scl:串行时钟。输入管脚,用于产生器件所有数据发送或接收的时钟。

sda:串行数据/地址。双向传输端,用于传送地址和所有数据的发送或接收。

它是一个漏极开路端,因此要求接一个上拉电到vcc端(典型值为100khz时为 10k,400khz时为lk)。对于一般的数据传输,仅在scl为低期间sda才允许变化;在scl为高期间变化,留给指示start(开始)和stop(停止)条件。

ao/a1/a2:器件地址输入端。这些输入端用于多个器件级联时设置器件地址,当这些脚悬空时默认值为空。

wp:写保护。如果wp管脚连接到vcc,则所有的内容都被写保护(只能读):当 wp管脚连接到vss或悬空时,则允许器件进行正常的读/写操作。

6、起始停止。

scl 线是高电平时,sda 线从高电平向低电平切换,这个情况表示起始条件;

scl 线是高电平时,sda 线由低电平向高电平切换,这个情况表示停止条件起始和停止条件一般由主机产生,总线在起始条件后被认为处于忙的状态起始和停止条件,在停止条件的某段时间后总线被认为再次处于空闲状态。如果产生重复起始条件而不产生停止条件,总线会一直处于忙的状态,此时的起始条件(s)和重复起始条件(sr) 在功能上是一样的。

2.4 ad、da应用。

pcf8591采用典型的i2c总线接口器件寻址方法,即总线地址由器件地址、引脚地址和方向位组成。pcf8591片内有控制寄存器,单片机通过向该寄存器写入控制字来控制a/d和d/a转换,为此在转换之前要进行写控制字传送。

其a/d转换部分读数据的操作为:寻址后要首先写控制字,以进行模拟通道选择、通道增量位和模拟信号输入形式(单端输入和差分输入)等设置。操作过程中,在pcf8591接收到的每个应答信号的后沿触发a/d转换,随后就是读出转换结果,但读出的是前一次的转换结果。

所以“读数据0”是一次无效的操作。

a/d和d/a:控制字节用于实现器件的各种功能,如模拟信号由哪几个通道输入等。其中:

d1、d0两位是a/d通道编号:00通道0,01通道1,10通道2,11通道3 自动增益选择(有效位为1)d5、d4模拟量输入选择:00为四路单输入、01为三路差分输入、10为单端和差分配合输入、11为模拟输出有效。

当系统为a/d转换时,模拟输出容许为0.模拟量输入选择位取值由输入方式决定,四路单输入时取00,三路差分输入时取01,单端与差分输入时取10,二路差分输入时取11.最低两位时通道编号位,当对0通道的模拟信号进行a/d转换时取00,当对1通道的模拟信号进行a/d转换时取01,当对2通道的模拟信号进行a/d转换时取10,当对3通道的模拟信号进行a/d转换时取11。

在进行数据操作时,首先是主控器发出起始信号,然后发出读寻址字节,被控器做出应答后,主控器从被控器读出第一个数据字节,接收器发出应答,主控器从被控器件读出第二个数据字节,一直到主控器从被控器中读出第n个数据字节,接收器发出非应答信号,最后主控器发出停止信号(启动和停止信号只能由主控器件发出)。

3、rs232接口。

3.1 简介。

rs-232是现在主流的串行通信接口之一。由于rs232接口标准出现较早,难免有不足之处,主要有以下四点:

1)接口的信号电平值较高,易损坏接口电路的芯片。rs232接口任何一条信号线的电压均为负逻辑关系。即:

逻辑“1”为-5— -15v;逻辑“0”:+5— +15v ,噪声容限为2v。即要求接收器能识别低至+3v的信号作为逻辑“0”,高到-3v的信号作为逻辑“1”,ttl电平为5v为逻辑正,0为逻辑负 。

与ttl电平不兼容故需使用电平转换电路方能与ttl电路连接。

2)传输速率较低,在异步传输时,波特率为20kbps;因此在“南方的老树51cpld开发板”中,综合程序波特率只能采用19200,也是这个原因。

3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。

4)传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在15米左右。

3.2 通讯方式:rs-232采取不平衡传输方式,即所谓单端通讯。

收、发端的数据信号是相对于信号地,如从dte设备发出的数据在使用db25连接器时是2脚相对7脚(信号地)的电平,db25各引脚定义参见图1。典型的rs-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15v,负电平在-5~-15v电平。当无数据传输时,线上为ttl,从开始传送数据到结束,线上电平从ttl电平到rs-232电平再返回ttl电平。

接收器典型的工作电平在+3~+12v与-3~-12v。由于发送电平与接收电平的差仅为2v至3v左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。rs-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kù。

所以rs-232适合本地设备之间的通信。

3.3 工作原理:rs-232在传送数据时,并不需要另外使用一条传输线来传送同步信号,就能正确的将数据顺利传送到对方,因此叫做“异步传输”,不过必须在每一笔数据的前后都加上同步信号,把同步信号与数据混和之后,使用同一条传输线来传输。

比如数据***被传输时,数据的前后就需加入开始(低位)以及停止(高位)等两个比特,值得注意的是,start信号固定为一个比特,但stop停止比特则可以是.5或者是2比特,由使用rs-232的传送与接收两方面自行选择,但需注意传送与接受两者的选择必须一致。 在串行通信软件设置中d/p/s是常规的符号表示。

8/n/1(非常普遍)表明8bit数据,没有奇偶校验,1bit停止位。数据位可以设置为或者9,奇偶校验位可以设置为无(n)、奇(o)或者偶(e),奇偶校验可以使用数据中的比特,所以8/e/1就表示一共8位数据位,其中一位用来做奇偶校验位。停止位可以是.

5或者2位的。

嵌入式系统开发

1 汇编程序调用c程序 atpcs反正就是一种规则 1 汇编程序的设置要遵循atpcs规则,保证程序调用时参数能正确传递。2 在汇编程序中使用import伪指令声明将要调用的c程序函数。3 在调用c程序时,要正确设置入口参数,然后使用bl调用。2 c程序调用汇编程序。1 汇编需的设置要遵循atpcs...

嵌入式系统开发

目录。多进程程序设计 2 1.摘要 2 2.设计目的 2 3.设计要求 2 4.设计原理 3 5.功能设计 3 5.1任务进程的建立 3 5.2子进程创建子进程 4 5.3管道通信的实现 5 5.4进程c的ls l指令 9 6.心得体会 10 7.参考文献 10 附录 程序 11 众所周知,目前市场...

嵌入式系统开发试题

2009至2010学年第 1 学期。嵌入式开发系统试卷a 一 填空题 本题 20 分,每空1分 1.嵌入式系统主要包括一下几类和 2 嵌入式操作系统现在比较流行的有和等。3.arm的v4t版本以上一般都支持两类指令集,分别为。4 arm处理器工作模式有7种,它们分别是。和模式。5 arm内部寄存器都...