单片机课程设计---基于at89s52单片机的温度控制系统内容摘要:

据的传送。 8 路模拟通道选择 如 左下 图所示模拟通道选择信号 A、 B、 C 分别接最低三位地址 A0、 A A2即( 、 ),而地址锁存允许信号 ALE 由 ,则 8 路模拟通道的地址为 0FEF8H~ 0FEFFH.此外,通道地址选择以 作写选通信号,这一部分电路连接如 右下 图所示。 从图中可以看到,把 ALE 信号与 START 信号接在一起了,这样连接使得在信号的前沿写入(锁存)通道地址,紧接着在其后沿就启动转换。 图 是有关信号的时间配合示意图。 启动 A/D 转换只需要一条 MOVX 指令。 在此之前,要将 与所选择的通道好像对应的口地址送入数据指针 DPTR 中。 例如要选择 IN0通道时,可采 用如下两条指令,即可启动 A/D 转换: MOV DPTR , FE00H ;送入 0809 的口地址 MOVX @DPTR , A ;启动 A/D 转换( IN0)注意:此处的 A 与 A/D 转换无关,可为任意值 ADC0809 的部分信号连接 信号时间的配合 信号时间的信号时间的配合 ADC0809 与 AT89S52 的连接 10 2. 转换数据的传送 A/D 转换后得到的数据应及时传送给单片机进行处理。 数据传送的关键问题是如何确认 A/D 转换的完成,因为只有确认完成后,才能进行传送。 为此可采用下述三种方式。 ( 1)定时传送方式 对于一种 A/D 转换其来说,转换时间作为一项技术指标是已知的和固定的。 例如ADC0809 转换时间为 128μ s,相当于 6MHz的 MCS51 单片机共 64 个机器周期。 可据此设计一个延时子程序, A/D 转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 ( 2)查询方式 A/D 转换芯片由表明转换完成的状态信号,例如 ADC0809 的 EOC 端。 因此可以用查询方式,测试 EOC 的状态,即可却只转换是否完成,并接着进行数据传送。 ( 3)中断方式 把表明转换完成的状态信号( EOC)作为中断请求信号以中断方式进行数据传送。 不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。 首先送出口地址并 以 信号有效时, OE 信号即有效,把转换数据送上数据总线,供单片机接受。 不管使用上述那种方式,只要一旦确认转换结束,便可通过指令进行数据传送。 所用的指令为 MOVX 读指令,仍以图 917 所示为例,则有 MOV DPTR , FE00H MOVX A , @DPTR 该指令在送出有效口地址的同时发出 有效信号,使 0809 的输出允许信号 OE 有效,从而打开三态门输出,是转换后的数据通过数据总线送入 A 累加器中。 这里需要说明的示, ADC0809 的三个地址端 A、 B、 C 即可如前所述与地址线相连,也可与数据线相连,例如与 D0~ D2相连。 这是启动 A/D 转换的指令与上述类似,只不过 A 的内容不能为任意数,而必须和所 选输入通道号 IN0~ IN7 相一致。 例如当 A、 B、 C 分别与 D0、D D2 相连时,启动 IN7 的 A/D 转换指令如下: MOV DPTR, FE00H ;送入 0809 的口地址 MOV A , 07H ; D2D1D0=111 选择 IN7 通道 MOVX @DPTR, A ;启动 A/D 转换 4) LED 七段数码管显示器 在单片机系统中,通常用 LED 数码显示器来显示各种数字或符号,由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。 它由若干个发光二极管组成,当发光二极管导通时,相应的一个点或一个笔画发 亮。 控制不同组合的二极管导通,就能显示出各种字符。 常用的 LED7 显示器有七段和“米”字段之分,有小数点位的 7 段显示器的字形码为八位二进制,正好一个字节,“米”字显示器有 15 个发光二极管,所以其字形码需两个字节。 这两类显示器都有共阳极和共阴极两种接法,共阴极 LED 显示器的发光二极管阴极连接 在一起,通常此公共阴极接地,当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示;同样,共阳极 LED 显示器的发光二极管阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极为低电平时,发光二极管点亮,相应的段被显示。 共阳极和共阴极的字形码是不同的,而且字形码可由设计者根据硬件接线的不同自行设计,不必 11 局限于固定格式。 在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。 当显示器位数较少时,适合采用静态显示的方法。 当位数较多时,用静态显示所需的I/O 太多,一般采用动态显示的方法。 所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的 I/O 接口用于笔划段字形显示。 这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中 CPU 的开销小,较小的电流能得到较高的亮度且字符不闪烁。 所谓动态显示就是一位一位地轮流点亮显示器各个位(扫描),对于显示器的每一位来说,每隔一段时间点亮一次。 利用人的视觉暂留功能可以看到整个显示,但必需保证扫描速度足够快,字符才不闪烁。 显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例 有关。 调整电流和时间参数,可实现亮度较高较稳定的显示。 若显示器的位数不大于 8 位,控制显示器的各位所显示的字形需一个 8 位口,称为段数据口,显示器的哪一个 LED 显示还需要一个位选择控制,称为位控口。 动态显示接口方法一位 LED 显示可以采用较为简单的控制电路来实现,此接口电路使用了专用的七位段码的译码器 /驱动器,可以把一位十六进制数( 4 位二进制数)译码为相应的字形代码,并提供足够的功率去驱动发光二极管。 使用这种接口方法,虽然软件简单,仅需使用一条输出线指令就可以进行 LED 显示,但硬件却比较多,而硬件译码又缺乏灵活性。 如果所用的 LED 显示器不只一个,则可以利用 I/O 接口电路来完成,如有三位 LED要显示,可直接利用接口芯片(如 8155)输出位控和段控数据。 其电路结构如下图: 其中 8155 的 PB 口作段选码口,经 7407 驱动与 LED 的段相连, 8155的 PA0~PA5 作选码口,经 7406 驱动与 LED 的位相连。 图中 P2..7 反相后作 8155 的片选 CE, 接 8155的 IO/M端。 这样确定的 8155片内 4个端口地址如下: 命令、状态口: FFF0H A 口: FFF1H B 口: FFF2H 12 C 口: FFF3H 6 位待显示字符从左到右一次存放在内部 RAM 显示缓冲区 7AH~7FH,显示次序位从右到左进行。 程序后面的 TAB 地址为段选码表首地址,表中段选码存放的次序为 0~F 等等。 一下为循环动态显示 6 位字符的程序。 8155 命令字为 03H. MOV A, 03H MOV DPTR, 0FFF0H MOVX @DPTR, A DL: MOV R0, 7FH MOV R2, 01H DL1: MOV A, @R0 DEC R0 MOV DPTR, TAB MOVC A, @A+DPTR MOV DPTR, 0FFF2H MOVX @DPTR, A ACALL DL1MS JB , DL RL A MOV R2, A AJMP DL1 TAB: DB 3FH , 06H, 5BH, 4FH DB 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH DB 39H, 5EH, 79H, 7CH DB。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。