版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章adc812评估板的总体设计一、前言aduc812 是美国analog devices 公司投入市场的第一种微转换器产品, 他集成了一个完全可编程的、自校准、高精度的模拟数据采集系统。他小得可以放置在一个传感器、转发器或电缆连接器之内。他的成本极低, 因此可以取代建立在单片机基础上的高成本、大体积的产品。由于其高精度和高速度, 他适用于智能传感、瞬时获取、数据采集和各种通信系统。此外,与分立式的ad 转换和微控制器相比, 他的效率更高。因为后者要求cpu 用更多的精力控制数据转换, 而他获取数据只需简单地从寄存器中读取。这样就减轻了程序设计的负担, 极大地提高了开发效率。这种崭新的微转换
2、器和它先进的混合信号处理的ic 工艺, 显著地提高了数据采集系统的性能并大幅度地减少了开发时间和成本。其高性能和高精度转换技术, 能更灵活地对芯片编程, 能更方便地处理大量的数据采集问题, 其低廉的价格更富有竞争力。在我们开发的评估板中, 以aduc812 为cpu 完成数据采集、a/d转换、串口程序下载、按键与液晶显示等功能。与以往的80c51单片机及其他类型单片机不同,aduc812具有在线调试和下载功能。通过设计一个接口电路来实现pc机与aduc812的串行接口电路进行通信,利用从网络上免费下载的支持aduc812的开发工具包quickstart开发系统就可实现这一功能。 二、本设计题目
3、思路采用ad 公司的aduc812 作为控制单元, 该芯片带有8 路模拟量输入, 2 路模拟量输出, 12 位高速ad 转换, 内置有看门狗和16 位定时器电路; 另外,我们外部扩展了32k 程序空间和64k 数据空间, 采用点阵式液晶显示各种汉字提示信息, 并配有操作键盘和状态与告警指示灯, 系统的通信接口采用标准的rs232 接口。如果需要现场总线或其它接口可选配。具体设计框图如图1-1 所示。图1-1 设计框图aduc812 最多能外接16mb 的外部数据存储器和64kb 的外部程序存储器。外部程序存储器用一片e2prom27256 实现。对于外部数据存储器, 除选用了一片32k常规ra
4、m 62256 之外, 还选用了一片带时钟的掉电自保护ram ds1644 , 它除了能提供年、月、日、星期、时、分、秒等实时时钟信息外, 还可在系统掉电时保存各种数据参数。标准232 接口采用max232 实现控制器内部与通信线路之间的电平转换与隔离。液晶lcd 显示模块包括点阵液晶显示控制器t6963c 及液晶显示屏mgls 240128t , 可显示数字、字符、汉字及图形。 第二章 adc812评估板的硬件设计一、adc812单片机介绍 (一)、概述aduc812 是一个完整的12 位数据采集系统, 其功能方框图如图2-1所示。它将高性能、自校准、多通道的模/ 数转换器(adc) 、双数
5、/ 模转换器(dac) 和8 位可编程微控制器(与8051 指令系统兼容) 集成在一个芯片上。该芯片还带有加密功能的8k 字节快擦除程序存储器、640 字节快擦除用户存储器及256 字节ram 。片内微控制器具有支持看门狗定时器、电源监控和adc 的dma功能。24 条可编程输入/ 输出线、8 条单输入线、i2c 兼容口、spi 和标准的异步串行(uart) 输入/ 输出口可满足多处理器通讯和扩展输入/ 输出的需要。控制转换器的静态cpu 标准、等待和掉电模式等特性, 可用于低功耗的应用场合, 该芯片采用52 脚扁平四方形塑封(dqfp) 。aduc812 区别于51 系列单片机的一个显著特征
6、就是能加载程序代码给片内在线可编程闪速/电擦除程序存储器。这种在线代码加载利用uart 串行口实现。串行加载允许用户对在线连接的目标系统重新编程, 因而不必使用其他的外部编程器。我们利用quickstart 开发系统工具, 就可以通过串口从上位机直接把程序代码写入aduc812 的程序存储器中, 实现在系统编程, 加快开发进程。 图2-1 aduc812的功能方框图(二)、aduc812 的功能特点模拟输入/ 输出8 通道,真12 位模数转换器(adc)自校验200khz 高速采样片内dma 控制器可用于自动采集双12 位电压输出型数/ 模转换器(dac)片内带有温度传感器存储器8k 字节片内
7、程序快擦除存储器640 字节片内数据快擦除存储器256 字节片内数据ram64k 字节外部程序可寻址空间16m 字节外部数据可寻址空间以8051 为基础的内核与8051 兼容的指令系统12mhz 额定操作3 个16 位定时/ 计数器24 条可编程输入/ 输出线8 条可编程输入线9 个中断源,2 个优先级电源可用3v 和5v 电压工作标准,等待和掉电三种工作模式外围结构通用异步串行(uart) 输入/ 输出口双线(与i2c 兼容) 和spi 串行接口看门狗定时器和电源监控功能。(三)、管脚说明aduc812采用s52封装,如图2-2所示。它的大部分管脚和8051相应管脚功能相同,几个主要管脚功能
8、如下:p1口:和8051的p1口功能不同,它只能作为模拟或数字信号的输入口,而不能作为输出口,缺省状态为8路模拟信号输入端,要使它们中的某位变为数字信号输入脚,应向p1口对应的特殊功能寄存器的相应位写入“0“信号,如果该特殊功能寄存器的相应位为“1”,则该位对应的管脚为模拟信号输入脚;dac0、dac1:为两路da转换器的模拟信号输出脚;ss、sclk、mosi、miso:为串行设备接口(spi)。ss为spi接口的从属设备选择,在多机通信中使用,sclk为spi接口时钟,mosi以及miso为输入输出数据线;d0、d1:和spi接口复用的数字输出脚,通过dcon特殊功能寄存器控制从d0或d1
9、脚输出数字信号; t2:定时器2数字信号输入脚;t2ex:数字输入脚,读取定时器2的计数器或重装该计数器的触发脚,负跳变时有效。其它脚的功能和8051相应脚的功能相同图2-2 aduc812引脚封装图二、a/d转换的实现与控制ad转换器的种类很多,不同的应用场合对其要求不同,有的要求高转换速率,有的要求有高精度,还有的用于便携式仪表中,需要低功耗等等。用于数据采集板的ad转换器,一般是和计算机或微处理器结合在一起使用。随着单片机在各种智能仪器仪表中的广泛应用,出现了一些将ad转换器和单片机内核集成在一块芯片上的数据采集芯片,aduc812就是这样一种芯片。(一)adc电路adc 模块包含了一个
10、快速、多路、12 位单电源的a/ d 转换器。该模块除具有模数转换功能外,还具有多路传输、采样/ 保持、片内基准电压、自校验特性。可通过读写相关的特殊功能寄存器进行管理。(二)adc转移函数 adc的模拟输入范围是0v至vref。在此范围内,设计的代码跳变发生在连续的整数lsb值的中间(即lsb,lsb,lsb,fs-lsb)。当vref2.5v时,输出码是直接的二进制数,1lsbfs/4096或2.5v/40960.61mv。在0至vref范围内理想的输入/输出转移特性如图2-3所示。 图2-3 输入/输出转移特性(三)内部基准电源aduc812 中集成的a/ d 转换器包含了8 通道12位
11、单电源adc , 由基于电容dac 的常规逐次逼近转换器组成。转换器接收的模拟输入为0vref引脚电压。adc 的2.5v 基准电源既可由片内提供, 也可由外部基准经vref引脚提供。由于片内基准高精度、低漂移(40 10 - 6 )、并经过校准, 因此本系统采用内部2.5 v 电压基准。若使用内部基准,则在v ref和cref引脚与agnd之间都应当连接0.1uf电容以便去耦。这些去耦电容应放在紧靠v ref和cref引脚处。图2-4示出了把片内基准用到微转换器之外时的应用电路。在实际应用中应当特别注意,内部vref 将保持掉电直到adc或dac外围设备模块之一被它们各自的使能位上电为止。三
12、、评估板的存储器设计(一)程序存储器程序存储器分为片内程序存储器和片外程序存储器,片内含有8k字节的flash可编程程序存储器,可满足大部分数据采集系统的设计要求,该段程序存储器可以用两种方式写入,一种是通过标准的uart串行接口进行串行下载写入,当psen管脚通过外部电阻接地时,在上电后自动进入串行下载模式,通过串行口自动从外部开发系统中下载程序;第二种方式和e2prom的编程方式相同,通过编程器进行并行写入。(二)数据存储器aduc812的用户数据存储器包含三部分,片内640字节的flash数据存储器、256字节的ram以及片外可扩展到16m字节的数据存储器,其中640字节的数据存储器被分
13、成160页,每页4字节,通过6个特殊功能寄存器来进行存取,即通过econ、eadrl以及edata14来存取,eadrl寄存器指定要进行数据存取的页地址,econ控制寄存器可控制edata14寄存器和eadrl指定的页内4个存储器之间进行数据交换,而econ还可控制flash数据存储器的擦除、校验等操作,它的控制模式如表1所示。外部数据存储器的寻址范围为000000h0ffffffh,共有16m字节地址空间,低16位地址线的连接和8051单片机系统中的外部数据存储器的地址连接方式相同,高8位的连接方式是复用p2口,利用ale地址锁存信号在锁存p0口的低8位地址信号的同时锁存高8位地址信号,来实
14、现16m字节地址空间的寻址。它的数据指针和8051单片机不同,是由3个8位寄存器组成,即dpp(页字节)、dph(高位字节)、dpl(低位字节)。(三)评估板的存储器扩展如其他与8051兼容的单片机一样,aduc812的程序存储器与数据存储器具有分开的地址空间。它具有64kb的程序存储空间和16mb的数据存储空间。本评估板扩展了32kb的外部程序空间和64kb的外部数据空间。在64kb的数据空间中,分出128b(ff80hffffh)给扩展端口使用。 评估板的32kb外部程序存储空间由一片27256实现。通过把ea引脚接到高电平或低电平,可以选择开始执行程序的程序空间,即选择内部程序存储器或外
15、部程序存储器。当ea被拉至高电平时,程序从内部的8kb flash存储器中地址为00h的地方开始执行;当ea被拉至低电平时,程序从外部27256中00h的地方开始执行。无论哪种情况,高于1fffh(8kb)的地址都映射在27256中。利用aduc812片内的这8kb flash,可以把程序分成小于8kb的模块下载到片内分别运行调试,这时ea接至高电平;所有模块调试成功后,再将整个程序写入到27256中,并将ea接至低电平,使aduc812从27256中运行程序。 评估板的数据存储器有64kb,分别由一片非易失性sram ds1644(0000h7fffh)和一片常规ram62256(8000h
16、ff7fh)实现,测控器并带有相应的地址数据锁存器和译码器,由74ls573等器件实现。 四、串行程序下载(一)max232芯片介绍max 232是异步串行通讯中应用最广泛的标准总线,它包括了按位串行传输的电气和机械方面的规定。使用于数据终端设备和数据通讯设备之间的接口。rs-232标准是广泛使用的串行通信标准,但使用的电平与ttl和mos电平完全不同,逻辑“0”至少为+3v,逻辑“1”至少为-3v,而单片机系统则使用ttl电平或mos电平。因此,需要使用接口电路来实现ttl电平或mos电平与rs-232电平之间的转换。目前已有现成的接口芯片可供选用,价格低一些的如mc地488(将ttl电平转
17、换为rs-232c标准电平)和mc1489(将rs-232标准电平转换为ttl电平),但mc1488需要12v的供电电压。另外,也有许多使用单一的+5v供电芯片可供选择,如max2003,但此类芯片价格不菲,且需要若干外围元件。在对体积和成本有较严格的要求时,进一步简化接口电路很有必要如图2-5所示:图2-5 芯片的图形 (二)adc812 的系统调试、编程技术 目前,由于adc812 只提供表贴封装形式,因而在用仿真器进行程序调试时将会带来一些问题。为方便调试,adc812片内除集成了各具特色的硬件模块外,还因化了方便实用的监控调试软件,使其只需少量的外围器件即可实现联机调试,从而大大方便了
18、用户的使用,缩短了产品的研制周期。启用调试方式的电路连接如图2-6所示。在上电复位的瞬间,使ea 引脚接高电平,psen 引脚接一下拉电阻,即可使adc812 进入监控调试支援方式。在此方式下,通过基于pc 的quick start 开发工具包,即可下载用户程序。通过运行于microsoft windows 系统下的adc.exe 调试软件,可实时调试用户程序。该调试软件支持单步、断点和连续运行等工作方式,可方便地观察mcu 的运行结果,包括内部ram、sfr、程序flasheeprom 和数据flash eeprom 等单元的内容。从而提高了工作效率,缩短了产品的开发周期。图2-6 中max
19、232 为rs232 电平转换器,用于将ttl 电平转换成rs232 电平,以便直接连至pc 的串行口,进行联机调试或下载程序。quick start 还提供了工作于dos 环境下的串行下载软件download.exe。运行该软件可直接将用户程序编程到adc812芯片中的程序flash 存储器中,免除了需用编程器和封装适配器的麻烦,真正实现了在系统可编程。quick start 开发工具软件包可从 下载得到。图2-6 adc812串口程序下载电路图五、复位电路aduc812需要外接por(power-on reset,上电复位)电路。上电复位电路在电源电压低于2.5v时,要使reset引脚保持
20、高电平;而且,在电源电压高于2.5v时,reset引脚保持低电平至少10ms。在评估板中采用专门的por芯片max813设计的por电路如图2-7所示。 图2-7 复位电路图max813是cmos监控电路芯片,能够监控电源电压、电源故障和微处理器的工作状态。复位信号reset用于启动或重新启动cpu,在上电期间只要电源电压vcc大于1.0v,就能保证输出高电平电压。在vcc上升期间reset保持高电平直到电源电压升至复位门限(4.65v)以上。在超过此门限后,内部定时器大约再维持200ms后释放reset,使其返回低电平。无论何时,只要电源电压降低到复位门限以下(即电源跌落),reset引脚就
21、会变高,如果在已经开始的复位脉冲期间出现电源跌落,复位脉冲至少再维持140ms。在掉电期间,一旦电源电压vcc降到复位门限以下,只要vcc不比1.0v还低,就能使reset维持高电平。 max813片内还具有周期为1.6s的硬件看门狗定时器,用于监控cpu的活动。如果在1.6s内看门狗输入端wdi没有收到来自cpu的触发信号,并且wdi处于非高阻状态,则看门狗输出端wdo输出变低,产生复位脉冲。一旦电源电压vcc降至复位门限以下,wdo端也将变低并保持低电平;只要vcc升至门限以上,wdo就会立刻变高,不存在延时。评估板采用硬件看门狗不但可以减少程序中的喂狗次数,而且防止了由于瞬间掉电而引起的
22、系统不能正常复位,从而无法正常工作的情况。 低电平有效的手动复位输入端mr可被片内上拉电流源拉到高电平,并可以被按钮开关拉成低电平。不需要采用外部去抖动电路,理由是最小为140ms的复位时间足以消除机械开关的抖动。简单地将mr端连接到wdo端,就可以使看门狗定时器超时产生复位脉冲。 六、按键与液晶人机交互组件包括9个触摸键、5只状态与告警指示灯led以及液晶lcd显示模块。键盘共有9个键,其中的(上)、(下)、+、确认、换屏、取消和校验8个键,通过573锁存输入。而“复位”键则用外部中断0处理。led为高亮度发光二极管,有红色、绿色和橙色三种,通过驱动加以点亮,分别指示电源、工作、通信、故障和
23、报警状态。液晶lcd显示模块包括点阵液晶显示控制器t6963c及液晶显示屏mgls240128t。点阵液晶显示控制器t6963c适用于较小规模的液晶显示器件,显示窗口尺寸及字体等模式采用硬件设置方式,可以控制240128点阵单屏结构或240256点阵双屏结构的液晶显示器件,显示字体可以为5888点阵四种字体之一。液晶显示屏mgls240128t是240128黑白带背光、宽温型图形式点阵液晶显示屏,可显示数字、字符、汉字及图形。 七、评估板设计图本节主要列出了评估板的原理图和印刷电路板pcb图,如图所示。第三章 adc812评估板的软件设计一、程序设计语言与软件开发环境 (一)程序设计语言的选用
24、评估板中的处理器是与51系列单片机兼容的aduc812,可以采用面向mcs-51的程序设计语言,包括asm51汇编语言和c51高级语言,这两种语言各有特点。汇编语言更接近机器语言,常用来编制与系统硬件相关的程序,如访问i/o端口、中断处理程序、实时控制程序、实时通信程序等;而数学运算程序则适合用c51高级语言编写,因为用高级语言编写运算程序可提高编程效率和应用程序的可靠性。 考虑到汇编语言的以下特点,在评估板的基本功能软件开发中,全部程序均采用asm51汇编语言编写: 汇编语言是最基本的程序设计语言。迄今为止,汇编语言仍然是计算机系统软件(例如汇编程序、pc机的bios等)设计的基本语言; 能
25、充分利用机器的硬件功能与结构特点。汇编语言与机器语言密切相关,因此能透彻地反映计算机硬件的功能与特点。程序员可充分利用机器硬件系统的许多特性(如寄存器、标志位以及一些特殊指令等)。这样能充分发挥程序设计的技巧; 用汇编语言编写的程序比起用高级语言编写程序具有更高的系统性能。汇编语言程序具有执行速度快和节省存储空间的特点,它可以精确地描述算法,把计算过程和控制过程刻画得更具体; 实时性能好。用汇编语言编制的程序可以对各种接口芯片及i/o端口直接进行控制,实时性能好。对于一些应用领域(例如工业监控系统等)汇编语言是不可缺少的,一般高级语言不适合这种应用,因为一般高级语言不能充分地利用计算机硬件所提
26、供的诸如中断等方面的功能。 (二)系统软件开发环境与以往的80c51单片机不同,aduc812具有在线调试和下载功能,它由支持aduc812的开发工具包quickstart开发系统来提供。也就是说,在用户系统保留aduc812的情况下,通过开发系统与aduc812的串行接口通信,直接对用户系统进行调试,并在调试完成后将调试好的程序下载到aduc812中。quickstart开发系统提供四项功能:编译、下载、调试和模拟,分别由metalink 8051编译器、在线串行下载器windows调试器和windows模拟器来实现。metalink编译器可在windows操作系统下直接使用,编译汇编源程序
27、,并生成16进制文件和列表文件。串行下载器是一个软件程序,它允许通过标准pc机上的串口串行下载汇编程序到片内8kb的闪速程序存储器中。调试器采用windows系统,允许用户使用aduc812的uart串行接口在芯片上调试代码执行。在典型调试对话中,调试器提供对片内所有外围设备的访问、单步和设置断点的代码执行控制方式。模拟器采用windows系统,能完全模拟aduc812的所有功能,包括adc和dac外围。模拟器使用简单,结合了许多标准调试特征,包括多断点、单步以及代码执行跟踪等能力。 二、软件设计(一)程序流程程序主要由主程序和中断处理程序两部分构成。 主程序主要实现系统的初始化,显示数据和通
28、信的处理。系统的初始化包括寄存器的初始化(控制寄存器、堆栈、中断寄存器等),通信的初始化(串口的初始化,通信缓冲区的初始化),液晶的初始化,输出端口的初始化,采集、累计数据的初始化。显示数据包括数据转换(主要实现将各类参数、测量数据等转换成液晶显示所需的数据类型)和显示屏的刷新(包括刷新采集数据屏和根据按下的键更改显示屏)。主程序流程图如下: 图3-1 主程序流程图(二)键盘管理键盘管理软件包括键盘消息接收和键盘消息处理两个部分。 键盘消息接收是指当用户按下某个键后,通过对键盘端口的分析,接收到按键的编码信息,然后查询键值表获得相应的键值并保存。键盘消息接收算法由接收去抖动、接收按键编码、查询
29、键值表、取键值并保存等过程组成。 键盘消息处理是取出所得到的键值,并按照键值的定义分别处理。在评估板中,包括“确认”、“取消”、“换屏”、“复位”, “(上)”、“(下)”、“+”、“”、“校验”九个键,除“复位”键(其按下后直接复位)不通过键盘消息处理程序处理外,其余的八个键的按下处理均由键盘消息处理程序在主循环程序中完成。 键值具体定义如下: ! “换屏”:将液晶屏切换至主菜单; ! “(上)”、“(下)”:移动光标或切换同类型的屏; ! “+”、“”:修改数据,并与“”和“”构成口令输入键; ! “确认”:确认所做的操作,包括确认所选择的菜单项或数据、确认所输入的口令、确认被修改的数据等
30、; ! “取消”:可取消输入的口令值或被修改的数据; ! “校验”:进入校验状态; ! “复位”:软复位系统。 (三)用户界面的液晶lcd显示用户界面采用文本与图形合成的显示方式实现。其中,以图形方式显示816点阵西文字符和1616点阵中文字符,以文本方式显示t6963c中内置于cgrom的字符以作为普通下标字符。 用户界面按屏分页显示。显示一屏是指显示一个菜单选项的内容,而一屏可包含若干显示页的内容。显示字符程序模块主要包括3个子程序模块:其一,显示一个西文字符(816点阵英文、希腊、标点符号、数学符号等);其二,显示一个中文字符(1616点阵汉字);其三,显示一个小号西文字符,作为下标符号
31、(88点阵字符)。 由于用户界面的显示字符集(点阵式字模库或者字库)需要占用较大的程序存储器(rom)空间,为了提高设计效率,并节省rom的空间资源,用户界面的显示字符集使用专有的一个应用程序生成针对测控器需要的专用字符集。 显示的具体实现方法: ! 在系统启动时要初始化液晶,包括:清液晶显示屏,设置文本/图形缓冲区的起始地址,设置文本/图形显示的显示宽度,设置显示模式,光标的形状及显示方式等。 ! 字符的显示:816点阵西文字符和1616点阵中文字符均以图形方式显示。显示时从字库中读出字符的点阵信息,填入图形缓冲区的相应地址中,再由yj6963显示到液晶屏幕上。 ! 下标字符的显示:yj69
32、63带有一88点阵的字符集可作为下标字符使用。显示时,只需将字符的代码填入文本缓冲区的相应位置就可在液晶上显示。 三、a/d转换程序(一)软件控制特性可编程性是应用系统发展的必然趋势。为适应不同信号源的实际需求,adc812 片内adc 模块内的所有部件都能方便地通过3 个sfr 寄存器来设置。 adccon1控制转换和采集时间adccon2控制adc 通道选择和转换模式adccon3adc 状态指示(二)定时adc 编程举例该例程主要说明如何利用adc 的单次转换功能实现定时采样的目的。定时器t0 用于1.25ms 定时,8 个通道完成一次。数据采集需要10ms。为增加抗干扰的能力,软件中还
33、加入了数字滤波功能。每个通道连续采样16 次后再进行平均处理,然后将高8 位结果送出,其汇编语言源程序清单如下:*$nomod51$include() ;使用adc812 预定义符timer_ms_const equ(65536-9216/8);当晶振频率为11.0592mhz 时,10ms 对应9216 个周期adc_tlag equ 20h;ad 转换标志,=1 时表示采样的8 路ad 值有效adc_coun equ 30h;用于指示当前正在处理的adc 通道adc_result equ 38h;38h3fh 存入07 通道的adc 结果adc_acc equ 40h;404fh 存入07
34、 通道的累加值org 0000hstart:jmp beginorg start+0bhjmp timer0_interruptorg start+100hbegin;mov sp,#60hmov r0,#20h;清工作单元mov r7,#40hclr airam_init;mov r0,ainc r0djnz r7,iram_initcall timer0_init;初始化t0 为1.25ms 中断一次call adc_init;初始化adc 为单次转换setb eacontrolloop:jnb adc_flag,controlloop ;将ad 转换的结果取走clr adc_flag;允
35、许开始下一次转换jmp controlloopadc_init:mov adccon1,#01101100b;上电adcmov adccon2,adc_count;选择转换通道rettimer0_interrupt:setb sconv;开始单次adc 转换mov tl0,#low(timer_ms_const);装入定时常数mov th0,#high(timer_ms_const)push pswmov psw,#00001000b;使用page1mov r2,a;暂存a 累timer0_int_adc:jb adc_flag,timer0_int_adc_end;数据未取走则退出mov a
36、,adccon3;读adc 状态jb acc.7,timer0_int_adcmov a,adc_countanl a,#07hrl aadd a,#adc_accimov r0,amov a,adcdatal;将adc 转换结果加入累加单元add a,r0mov r0,ainc r0mov a,adcdatahanl a,#0fhaddc a,r0mov #r0,ainc adc_countmov a,adc_countanl a,#07hmov adccon2,a;选择下一通道mov a,adc_countcjne a,#80h,timer0_int_adc_endmov adc_coun
37、t,#0mov r0,#adc_acc;数字滤波后存入adc 结果mov r1,#adc_resultmov r7,#08timer0_int_save_adc:clr amov #r0,ainc r0xch a,#r0mov r1,ainc r0inc r1djnz,r7,timer0_int_save_adcsetb adc_flagtimer0_int_adc_end:mov a,r2pop pswretitimer0_init;mov th0,#high(timer_ms_const);装入定时常数mov tl0,#low(timer_ms_const)anl tmod,#111100
38、00borl tmdd,#00000001bsetb et0;允许t0 中断setb tr0;t0 开始运行retend四、程序下载程序(一)uart串行接口的结构 aduc812的串行接口主要由2个数据缓冲器、1个输入移位寄存器、1个串行控制寄存器scon和1个波特率发生器t1(即定时器1)等组成,其结构如图所示。 串行接口数据缓冲器sbuf是可以直接寻址的专用寄存器。在物理上,一个作发送缓冲器,一个作接收缓冲器。两个缓冲器共用一个口地址99h,由读、写信号区分:cpu写sbuf时为发送缓冲器,读sbuf时为接收缓冲器。接收缓冲器是双缓冲的,它是为了避免在接收下一帧数据之前,cpu未能及时响
39、应接收器的中断,把上帧数据读走,而产生两帧数据重叠的问题而设置的双缓冲结构。对于发送缓冲器,为了保持最大传输速率,一般不需要双缓冲,这是因为发送时cpu是主动的,不会产生写重叠的问题。定时器t1作串行接口的波特率发生器。 (二)串行通信过程 在进行通信时,当cpu允许接收时,外界数据通过引脚rxd(p3.0)串行输入,数据的最低位首先进入输入移位器,一帧接收完毕,再并行送入缓冲器sbuf中,同时将接收中断标准位ri置位,向cpu发出中断请求。cpu响应中断后,用软件将ri位清除,同时读走输入的数据。接着又开始下一帧数据的输入过程,重复直至所有数据接收。 cpu发送数据时,将数据并行写入发送缓冲
40、器sbuf中,同时启动数据由txd(p3.1)脚串行发送。任何时候执行一条mov sbuf , a 指令,都可启动一次发送。当一帧数据发送完,即发送缓冲器空时,由硬件自动将发送中断标志位ti置位,向cpu发出中断请求。cpu响应中断后,用软件将ti位清除,同时又将下一帧数据写入sbuf中,重复上述过程直到所有数据发送完毕。 1.串行接口的工作方式 aduc812串行接口可以通过软件设置四种不同的工作方式: 方式0 方式0为同步移位寄存器输出方式,在这种方式下,数据从rxd端串行输入或输出,同步信号从txd端输出,波特率固定不变,为fosc/12(fosc为振荡器频率)。该方式以8位数据为一帧,
41、没有起始位和停止位。 方式1 方式1规定发送或接收10位数据为一帧:一个起始位,8个数据位和一个停止位。方式1特别适合于点对点的异步通信,其波特率可以通过软件设置。 方式2 方式2以11位数据为一帧,比方式1增加了1个数据位,其余相同。所增加的第9个数据具有特别的用途,可以通过软件控制它,再加特殊功能寄存器scon的配合,可使aduc812串行接口适用于多机通信。方式2的波特率只能为fosc/64或fsock/32。 方式3 方式3类似于方式2,唯一的区别是方式3的波特率是可变的,而帧格式与方式2一样,所以方式3也适合于多机通信。 (三)串行接口的编程 在使用串行口进行通信前,首先要对串口进行
42、必要的初始化,设定各种参数,包括设置波特率、奇偶校验、数据位、停止位参数。操作站与测控站点由于采用拨号方式,通信必然为“点对点”方式。因此,串行接口的工作方式采用方式1。 串口的初始化程序为: mov tmod,#00100001b ;定时器t1工作于模式2作为波特率发生器 mov pcon,#0 mov tl1,#0feh mov th1,#0feh ;采用串口波特率为14400hz mov scon,#50h ;方式1 由于aduc812串口的发送和接收中断共用一个中断向量地址23h,因此在编制串口的中断服务程序时,是通过ri和ti标志位来判断是发送中断还是接收中断的。中断服务程序如下:
43、org 0023h ljmp seriint serint : jnb ri, send acall sin sjmp intend send: acall sout intend: reti sout: ;发送中断的处理 ret sin: ;接收中断的处理 ret 第四章 adc812应用中的问题adc812作为新一代微控制器,具有强大的功能,比以往的单片机有着更广阔的应用前景。在实际应用中发现,芯片本身尚存在一些应注意的问题及使用时的特殊要求。一、在线调试注意事项(一)rs232接口电路对于用户开发系统来说,在线调试和下载功能最重要,也是最常使用的,但二者都需通过pc机上的串行端口与adc
44、812的uart串行端口之间连接的串行端口电缆进行数据通信才能发挥作用。因此,用户在开发应用系统的同时,应设计一个rs232接口电路来实现pc机与adc812的串口通信。v和v引脚电压是否足够高(分别超过8v和-8v)。若电压较低,则可能adm202芯片已损坏r1in脚是否存在12v的脉冲信号。若存在,则说明pc机方面通信发送信号正常 r1out脚是否存在5v信号。若存在,则说明adm202接收pc机信号工作正常。 t1in脚是否存在5v信号。若存在,则说明adc812对pc机的通信产生响应;否则是adc812通信存在问题,说明adc812工作不正常。t1out脚是否存在12v的脉冲信号。若存
45、在,但adc812还无法进入在线调试状态,则说明db9与pc机之间的串行接口电缆有问题(二)psen引脚用户系统在具备rs232接口电路之后,还需通过一个与地相连的1k电阻将adc812的psen引脚拉至低电平才能进入在线调试和下载状态。因此,psen引脚拉低是在线调试和下载功能实现的另一关键所在值得强调的是,psen引脚与地之间连上1k电阻并不一定就能保证psen为低电平。若静电造成psen引脚损伤,则1k电阻不能将psen引脚拉低。经试验证明,在psen引脚损伤不严重时,可通过把psen直接对地短路将其拉至低电平;但若损伤严重,则即使直接接地,器件仍然不能工作。因此,在使用adc812时,应特别小心、谨防静电。如焊接芯片时应将电烙铁接地,并戴上防静电手镯。由于adc812的调试器是在用户系统复位时检测psen引脚状态的,因此,为提高通信成功几率,可在用户系统复位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租车协议合同范本示例
- 真心相待的夫妻保证书
- 简单隐私保护合同协议样本
- 规范文本偷钱保证书范例
- 建筑劳务分包安全管理协议
- 精确市场调研制作合同
- 绿化项目招标答疑
- 软件开发合同协议范本示例
- 零售店长工作合同
- 补充合同格式范本
- 支气管动脉造影护理
- 2024年度建筑工程有限公司股权转让合同3篇
- 校园春季安全
- 2024-2025学年六上科学期末综合检测卷(含答案)
- 【MOOC】工程力学-浙江大学 中国大学慕课MOOC答案
- 2024年湖南省公务员考试《行测》真题及答案解析
- 工会十八大精神、工会法知识考试题库及答案
- 水利水电工程单位分部工程施工质量评定表(完整版)
- 形式发票样本
- 往复压缩机填料函结构及原理课件讲解
- 干线铁路牵引变电所设计
评论
0/150
提交评论