51单片机数据采集系统

合集下载

51单片机数据采集系统

51单片机数据采集系统

课程设计报告书设计任务书一、设计任务1一秒钟采集一次。

2把INO口采集的电压值放入30H单元中。

3做出原理图。

4画出流程图并写出所要运行的程序。

二、设计方案及工作原理方案: 1. 采用8051和ADC0809构成一个8通道数据采集系统。

2. 能够顺序采集各个通道的信号。

3. 采集信号的动态范围:0~5V。

4. 每个通道的采样速率:100 SPS。

5.在面包板上完成电路,将采样数据送入单片机20h~27h存储单元。

6.编写相应的单片机采集程序,到达规定的性能。

工作原理:通过一个A/D转换器循环采样模拟电压,每隔一定时间去采样一次,一次按顺序采样信号。

A/D转换器芯片AD0809将采样到的模拟信号转换为数字信号,转换完成后,CPU读取数据转换结果,并将结果送入外设即CRT/LED显示,显示电压路数和数据值。

目录第一章系统设计要求和解决方案第二章硬件系统第三章软件系统第四章实现的功能第五章缺点及可能的解决方法第六章心得体会附录一参考文献附录二硬件原理图附录三程序流程图第一章系统设计要求和解决方案根据系统基本要求,将本系统划分为如下几个部分:●信号调理电路●8路模拟信号的产生与A/D转换器●发送端的数据采集与传输控制器●人机通道的接口电路●数据传输接口电路数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。

系统框图如图1-1所示1.1 信号采集分析被测电压为0~5V 直流电压,可通过电位器调节产生。

1.1.1 信号采集多路数据采集系统多采用共享数据采集通道的结构形式。

数据采集方式选择程序控制数据采集。

程序控制数据采集,由硬件和软件两部分组成。

,据不同的采集需要,在程序存储器中,存放若干种信号采集程序,选择相应的采集程序进行采集工作,还可通过编新的程序,以满足不同采样任务的要求。

如图1-3所示。

程序控制数据采集的采样通道地址可随意选择,控制多路传输门开启的通道地址码由存储器中读出的指令确定。

周国运版51单片机课后习题答案解析

周国运版51单片机课后习题答案解析

第1章习题答案1.什么是单片机?答:将中央处理器(Central Processing Unit,CPU)、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等微型计算机的主要部件集成在一块芯片上,使其具有计算机的基本功能,就叫做单片微型计算机(Single Chip Micro Computer,SCMC),简称单片机。

由于单片机的指令功能是按照工业控制的要求设计,所以单片机又称为微控制器(Micro Controller Unit,MCU)。

2.单片机有哪些特点?答: (1)单片机的存储器ROM和RAM是严格区分的。

ROM称为程序存储器,只存放程序、固定常数及数据表格。

RAM则为数据存储器,用作工作区及存放用户数据。

(2)采用面向控制的指令系统。

(3)单片机的I/O引脚通常是多功能的。

(4)单片机的外部扩展能力强。

(5)单片机体积小,成本低,运用灵活,易于产品化。

(6)面向控制,能有针对性地解决从简单到复杂的各类控制任务,因而能获得最佳的性能价格比。

(7)抗干扰能力强,适用温度范围宽。

(8)可以方便地实现多机和分布式控制,使整个控制系统的效率和可靠性大为提高。

3.单片机的应用有哪些?答: (1)工业控制。

单片机可以构成各种工业控制系统、数据采集系统等。

如数控机床、自动生产线控制、电机控制、测控系统等。

(2)仪器仪表。

如智能仪表、医疗器械、数字示波器等。

(3)计算机外部设备与智能接口。

如图形终端机、传真机、复印机、打印机、绘图仪、磁盘/磁带机、智能终端机等。

(4)商用产品。

如自动售货机、电子收款机、电子秤等。

(5)家用电器。

如微波炉、电视机、空调、洗衣机、录像机、音响设备等。

(6)消费类电子产品。

(7)通讯设备和网络设备。

(8)儿童智能玩具。

(9)汽车、建筑机械、飞机等大型机械设备。

(10)智能楼宇设备。

(11)交通控制设备。

4.常见的单片机有哪些类型?答: 1.AVR单片机;2.Motorola单片机;3.MicroChip单片机;4.Scenix单片机;5.EPSON单片机;7.GMS90单片机;8.华邦单片机9.Zilog单片机;10.NS单片机;11.AX1001单片机第2章习题答案1.MCS-51单片机内部包含哪些主要逻辑功能部件?答:(1)1个8位的微处理器CPU。

STC15单片机内部ADC采集数据在LCD12864上显示的程序

STC15单片机内部ADC采集数据在LCD12864上显示的程序

敬告:没有51单片机基础的人请慎重下载高质量实用性51单片机STC15W系列程序(1),STC8A系列可参考STC15单片机内部ADC采集数据在LCD12864上显示的程序main主程序:#include "LCD12864.h"void ValToString(unsigned int tmp,unsigned char *buf);int main(){unsigned int tmp;unsigned char buf[4];P2M1 &= 0xE5;P2M0 &= 0xE5;// P1M1 &= 0x7F;P1M0 &= 0x7F;SPI_config();SPI_init();ADC_init();//delay(10);LCD12864_write1(0,0,5,"test:");LCD12864_write2(0,1,"hello!");while(1){tmp = ADC_getvalue();ValToString(tmp,buf);LCD12864_write1(0,2,sizeof(buf),buf);LCD12864_write2(0,3,buf);//delay(5000);}}void ValToString(unsigned int tmp,unsigned char *buf) {buf[0] = tmp/100 + '0';buf[1] =(tmp%100)/10 + '0';buf[2] = (tmp/10)%10 + '0';buf[3] = '\0';}/*******************************************************/LCD12864程序:#include"LCD12864.h"sbit SPI_cs = P2^4;void delay(unsigned int ms){unsigned int i;do{i = MAIN_Fosc / 13000;while(--i) ; //14T per loop}while(--ms);}//void delay(unsigned int t)//{// unsigned int i,j;// for(i=0; i<t; i++)// for(j=0; j<10; j++);//}void SPI_config(){SPCTL = 0x00;SPCTL |= 0xD0;SPSTAT |= 0xC0;IE2 &= 0xFD;AUXR1 &= 0xF7;AUXR1 |= 0x04;// AUXR1|=0X04; //½« SPI µ÷Õûµ½ P2.1 P2.2 P2.3 P2.4// AUXR1&=0XF7;// SPDAT = 0;// SPSTAT = 0x80|0x40; //Çå³ýSPI״̬λ// SPCTL = 0x40|0x10|0x80;}unsigned char SPI_write(unsigned char dat){SPDAT = dat;while(!(SPSTAT&0x80));SPSTAT = 0xC0;//SPSTAT = 0x80|0x40;return SPDAT;}void SPI_wcmd(unsigned char cmd){SPI_cs = 1;SPI_write(0xF8);SPI_write(cmd&0xF0);SPI_write((cmd&0x0F)<<4);//SPI_write((cmd<<4)&0xF0);delay(2);}void SPI_wdat(unsigned char dat){SPI_cs = 1;SPI_write(0xFA);SPI_write(dat&0xF0);SPI_write((dat&0x0F)<<4);//SPI_write((dat<<4)&0xF0);delay(2);}void LCD12864_write1(unsigned char x,unsigned char y,unsigned char len,unsigned char *buf){//SPI_wcmd(0x03);switch(y){case 0:x=x+0x80;break;case 1:x=x+0x90;break;case 2:x=x+0x88;break;case 3:x=x+0x98;break;default:break;}SPI_wcmd(x);while(len>0){SPI_wdat(*buf++);len--;}}void LCD12864_write2(unsigned char x,unsigned char y,unsigned char *buf){switch(y){case 0:x=x+0x80;break;case 1:x=x+0x90;break;case 2:x=x+0x88;break;case 3:x=x+0x98;break;default:break;}SPI_wcmd(x);while(*buf!='\0')//while(*buf>0){SPI_wdat(*buf++);//delay(50);}}void SPI_init(){//delay(100);SPI_wcmd(0x30);//delay(50);SPI_wcmd(0x0C);//delay(50);}//void display(unsigned char code *buf) //{// while(*buf>0)// {// SPI_wdat(*buf);// buf++;// delay(50);// }//}//void LCD12864_write2()//{// SPI_wcmd(0x03);// delay(50);//// SPI_wcmd(0x91);// display("ÎÒÊÇÈË");//}/*******************************************************/ADC程序:#include "LCD12864.h"unsigned int ADC_getvalue(){unsigned int val;ADC_CONTR |= 0xE7;//val = ADC_RES << 8;val = val | ADC_RESL;ADC_CONTR |= 0x08;//return val;}void ADC_init(){ADC_CONTR &= 0xEF; //0b 1 11 0 1 111;ADC_CONTR |= 0xE7;delay(10);P1ASF |= 0x80;CLK_DIV |= 0x20;EADC = 0;ADC_CONTR |= 0x08;}/*******************************************************/.h文件程序://1#ifndef _ADC_H#define _ADC_Hextern void ADC_init();extern unsigned int ADC_getvalue();#endif//2#ifndef _LCD12864_H#define _LCD12864_H#define MAIN_Fosc 11059200L#include "STC15.H"#include "intrins.h"#include "ADC.h"//sbit SPI_sid = P2^3;//sbit SPI_clk = P2^1;extern void SPI_config();extern void delay(unsigned int ms);extern void SPI_init();extern void LCD12864_write1(unsigned char x,unsigned chary,unsigned char len,unsigned char *buf);extern void LCD12864_write2(unsigned char x,unsigned char y,unsigned char *buf);//extern void LCD12864_write2();#endif。

基于ADC0809和51单片机的多路数据采集系统设计

基于ADC0809和51单片机的多路数据采集系统设计

基于ADC0809和51单片机的多路数据采集系统设计&ldquo;数据采集&rdquo;是指将温度、压力、流量、位移等模拟物理量采集并转换成数字量后,再由计算机进行存储、处理、显示和打印的过程,相应的系统称为数据采集系统。

本文的主要任务是对0~5V的直流电压进行测量并送到远端的PC机上进行显示。

由于采集的是直流信号,对于缓慢变化的信号不必加采样保持电路,因此选用市面上比较常见的逐次逼近型ADC0809芯片,该芯片转换速度快,价格低廉,可以直接将直流电压转换为计算机可以处理的数字量。

同时选用低功耗的LCD显示器件来满足其在终端显示采集结果的需求。

终端键盘控制采用尽可能少的键来实现控制功能,为了防止键盘不用时的误操作,设计时还设置了锁键功能,在键盘的输入消抖方面,则采用软件消抖方法来降低硬件开销,提高系统的抗干扰能力。

软件设计方面则采用功能模块化的设计思想;键盘模数转换等采用中断方式来实现,从而大大提高了单片机的效率以及实时处理能力。

1 数据采集系统的硬件结构数据采集系统的硬件结构一般由信号调理电路、多路切换电路、采样保持电路、A/D转换器以及单片机等组成。

本文主要完成功能的系统硬件框图。

2 ADC0809模数转换器简介2.1 ADC0809的结构功能本数据采集系统采用计算机作为处理器。

电子计算机所处理和传输的都是不连续的数字信号,而实际中遇到的大都是连续变化的模拟量,模拟量经传感器转换成电信号后,需要模/数转换将其变成数字信号才可以输入到数字系统中进行处理和控制,因此,把模拟量转换成数字量输出的接口电路,即A/D转换器就是现实信号转换的桥梁。

目前,世界上有多种类型的A/D转换器,如并行比较型、逐次逼近型、积分型等。

本文采用逐次逼近型A/D转换器,该类A/D转换器转换精度高,速度快,价格适中,是目前种类最多,应用最广的A/D转换器。

逐次逼近型A/D转换器一般由比较器、D/A转换器、寄存器、时钟发生器以及控制逻辑电路组成。

基于51单片机的仓储温度采集测控系统设计

基于51单片机的仓储温度采集测控系统设计
功能 。
[ 关键词 ] 片机 单
1引 言 .
温度采集测控 系统设 计
随着单 片机和传感技术 的迅速发展 , 自 检测 领域发生了巨大变 动 化 , 室环境 自动监测控制方面 的研究有 了明显 的进展 , 温 并且必将 以其 优异 的性能价格 比, 逐步取代传统 的温度控制措施 。防潮 、 防霉 、 防腐 、 防爆 是仓库 日 常工作 的重要 内容 , 是衡量仓库管理质量 的重要指标 。 它 直接影响到储备物资 的使用寿命 和工作可靠性 。为保证 日常工作的顺 利进行 , 问题是加强仓库 内温度与湿度的监测工作 。 首要 传统 的方法是 用 与湿度表 、 毛发湿度表 、 双金 属式测量计 和湿 度试纸等测试 器材 , 通 过 人工进行 检测 , 对不符合温度和湿度要求 的库 房进行通风 、 去湿和降 温等 工作 。这种人工测试方法费时费力 、 效率低 , 测试的温度及湿度 且 误差 大 , 随机性 大。因此我们需要一种造价 低廉 、 使用方便且测量准确
的温 湿 度 测 量 仪 。
近年来 ,利用智能化数字式温度传感器 以实现温度信息的在线检 测 已成为温度检测技术 的一种发展趋势。 其应用领域越来越广泛 , 对其 要求越来越 高, 需求越来越迫切 。 传感器技 术已成 为衡量一个 国家科学 技术发展水平 的重要标志之一 。 数字化技术推 动了信息化 的革命 , 在传 感器 的器件结构上采用数字化技术 , 使信息的采集更加方便 。
2 系统 分 析 与 硬 件 设 计 . 图 2主 程 序 流 程 图 4硬 件 设 计 .
数字温度 芯片 D 1B 0 S 8 2 测量 温度 , 出信号全 数字化 , 于单片 输 便 机处理和控 制, 省去传统测温方法 中的很多外 围电路 , 且该芯片的物理 化 学性 比较稳定 , 可用做工业测 温元件 , 0 10摄氏度范 围内 , 在 -0 最大 线形偏差小 于 1 氏度 。D 1B 0的最 大特点 之一是 采用了单总线的 摄 S8 2 数据 传输 , 由数字温度计 D 1B 0 S 8 2 和微控制器 A 8 S 1 T 9 5 构成的温度测 量装置, 它直接输 出温度的数字信号, 可直接 与计算 机连 接。这样 , 测温 系统 的结构就 比较简单 , 体积也小。 采用 5 单 片机控制 , l 软件编程的 自 由度大 , 可通过编程实现各种各样 的算术算 法和逻辑控制 , 硬件实现简 单, 安装方便 。 仓储 温度 采集测 控系统 原理 图如 图 2 示 ,控制器 使用单 片机 所 A 8 C 0 1 温度计传感器使用 D 1B 0 用液 晶实现温度显示 。本温 T 9 25 , S8 2 , 度计 大体分 三个工作过程 。 首先 , D 1 80温度传感器芯片测量 当前 由 S 82 的温度 , 并将结 果送 入单片机。然后 , 通过 8 C 0 I 片机 芯片对送来 9 25单 的测量温度读数进行计算和转换 ,并将此结果送人 液晶显示模块。最 后 ,M 10 A芯 片将送来的值显示于显示屏 上。 由图 1 S C 62 可看 到 , 本电 路 主要 由 D 1 2 S 8 0温度 传感 器芯 片 、M 1 2 8 S C6 A液 晶显 示模 块芯 片和 0 8C 0 1 片机 芯片组成 。其 中,S8 2 温度传感 器芯片采用 “ 9 25 单 D IB 0 一线 制” 与单 片机相连 , 它独立地完成温度测量 以及将温 度测量 结果送 到单

关于单片机模拟信号采集一些方法

关于单片机模拟信号采集一些方法

关于单⽚机模拟信号采集⼀些⽅法关于单⽚机模拟信号采集⼀些⽅法2010-10-15 22:51单⽚机系统采集的信号有模拟电压信号、模拟电流信号、PWM信号、数字逻辑信号等。

现在,绝⼤多数传感器输出的信号都是模拟信号量,电流和电压。

所以模拟信号的采集应⽤最为⼴泛,处理过程也相对复杂。

相⽐于模拟信号,PWM信号和数字逻辑信号的采集⽐较直接,单⽚机能够直接处理这类信号,⽆需额外的器件进⾏信号转换。

这⾥的模拟信号是指电压和电流信号,对模拟信号的处理技术主要包括模拟量的选通、模拟量的放⼤、信号滤波、电流电压的转换、V/F转换、A/D转换等。

1.模拟通道选通单⽚机测控系统有时需要进⾏多路和多参数的采集和控制,如果每⼀路都单独采⽤各⾃的输⼊回路,即每⼀路都采⽤放⼤、滤波、采样/保持,A/D等环节,不仅成本⽐单路成倍增加,⽽且会导致系统体积庞⼤,且由于模拟器件、阻容元件参数特性不⼀致,对系统的校准带来很⼤困难;并且对于多路巡检如128路信号采集情况,每路单独采⽤⼀个回路⼏乎是不可能的。

因此,除特殊情况下采⽤多路独⽴的放⼤、A/D外,通常采⽤公共的采样/保持及A/D转换电路(有时甚⾄可将某些放⼤电路共⽤),利⽤多路模拟开关,可以⽅便实现共⽤。

在选择多路模拟开关时,需要考虑以下⼏点:(1)通道数量通道数量对切换开关传输被测信号的精度和切换速度有直接的影响,因为通道数⽬越多,寄⽣电容和泄漏电流通常也越⼤。

平常使⽤的模拟开关,在选通其中⼀路时,其它各路并没有真正断开,只是处于⾼阻状态,仍存在漏电流,对导通的信号产⽣影响;通道越多,漏电流越⼤,通道间的⼲扰也越多。

(2)泄漏电流在设计电路时,泄漏电流越⼩越好。

采集过程中,信号本⾝就⾮常微弱,如果信号源内阻很⼤,泄漏电流对精度的影响会⾮常⼤。

(3)切换速度在选择模拟开关时,要综合考虑每路信号的采样速率、A/D的转换速率,因为它们决定了对模拟开关的切换速度的要求。

(4)开关电阻理想状态的多路开关其导通电阻为零,⽽断开电阻为⽆穷⼤,⽽实际的模拟开关⽆法到这个要求,因此需考虑其开关电阻,尤其当与开关串联的负载为低阻抗时,应选择导通电阻⾜够低的多路开关。

51单片机的介绍

51单片机的介绍
房、办公及住宅环境,适用于民用产品,例如家 电、玩具等。商业级产品价格低廉,品种齐全, 应用最为广泛。
单片机的使用环境及产品等级
• 工业级 早期的单片机产品大多为工业级,运行温度
范围为 -45℃~+85℃,介于商业级和军用级之间,适 宜在工业生产环境下使用。其特点是可靠性远高 于商业级,但价格远低于军用级。MCS-51系列 单片机的普通产品均属于工业级。
51系列单片机的典型引脚结构
51系列单片机的典型引脚结构
电源引脚 VCC(Pin40): 正电源引脚。正电 源接4.0~5.0V电压, 正常工作电压为 +5V。 GND(Pin20): 接地引脚。
51系列单片机的典型引脚结构
时钟引脚 XTAL1(Pin19):用作 片内振荡电路的输入端。 XTAL2(Pin18):用作 片内振荡电路的输出端或 者外部时钟源的输入引脚。
硬件资源介绍
• 单片机系统的硬件部分是包括CPU在内的 所有硬件电路,按照硬件电路的功能和配 置大致可以分为3类
硬件资源介绍
• 1) 基本功能类 基本功能类硬件包括:CPU(用于运算、控
制)、RAM(用于数据存储)、ROM(用于程序存储)、 I/O设备(实现串行、并行输入/输出接口)及时钟电 路(建立工作时序)。在微型计算机中,上述部件 被分成若干块芯片,安装在一块称之为主板的印 刷线路板上,在程序的指挥下完成计算机的基本 运算操作功能。但是在单片机中,除了时钟电路 之外,其余部分一般均被集成到一块半导体芯片 上,所以被称为单片机,即单芯片微型计算机。
D/A(数/模转换,通常采用PWM形式)等部件。这 类部件根据芯片的配置不同不一定集成在单片机 芯片上,需要用户根据使用要求选择。
单片机的使用环境及产品等级

基于PROTEUS的数据采集系统的设计与仿真

基于PROTEUS的数据采集系统的设计与仿真

基于PROTEUS的数据采集系统的设计与仿真渠丽岩【摘要】摘要:基于PROTEUS的数据采集系统,结合Keil C51软件,实现了对单片机系统进行硬件设计和软件仿真功能,不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。

实验表明,使用PROTUES 对单片机的数据采集系统进行设计和仿真,结果正确可靠,而且可以有效提高开发效率。

【期刊名称】电子设计工程【年(卷),期】2014(022)004【总页数】3【关键词】数据采集系统;PROTEUS;AT89C51;Keil C51PROTEUS软件是LabCenter Electronics公司开发的EDA工具软件,它集成了高级原理图设计、混合模式SPICE电路仿真及PCB设计[1],最具特色的是它能够仿真基于单片机的电子系统。

PROTEUS不但支持MCS-51及其派生系列单片机的设计与仿真,还可以仿真基于AVR、ARM和PIC系列的嵌入式系统。

PROTEUS软件可提供各类元器库30多个,超过27 000多种元器件。

此外,对于元件库中没有的器件,用户可以依照需要自己创建。

在软件调试方面,其内部带有8051、AVR、PIC的汇编编译器,支持单片机汇编语言的编辑、编译和源代码级仿真,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源代码级仿真和调试。

PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化,这是实物演示难以达到的效果[2]。

在计算机广泛应用的今天,日益突显数据采集的重要性,它是计算机与外部世界连接的桥梁。

数据采集系统主要是将传感器采集来的模拟信号经A/D转换后形成数字信号,并通过接口电路送给处理器,然后再进行分析、传输、显示和存储等处理。

数据采集装置在工业现场和科学研究中应用广泛。

在生产过程中,应用这一装置可以对生产现场的各种参数进行采集、监控和记录,为提高产品质量、降低成本、增加生产效率提供信息和手段;在科学研究中,数据采集装置可获得大量的动态信息,是各种研究领域的有力工具,也是破解科学奥秘的重要手段之一[3]。

单片机原理与c51编程课件10第十章 模拟通道技术

单片机原理与c51编程课件10第十章 模拟通道技术

11 A
10 B
9C
CD4051引脚图
7
一、数据采集系统的组成
(2)多路转换开关的扩展
当采样的通道比较多,可以将两个或两个以上的多路开关并联 起来,组成8×2或16×2的多路开关。下面以CD4051为例说明 多路开关的扩展方法。两个8路开关扩展成16路的多路开关的 方法。
{IN
模拟输入 (1 ~ 8) IN
保持模拟信号基本不变。
注:保持电容一般外接,其取值与采样频率和精度有关。 减小CH可提高采样频率,但会降低精度。
11
一、数据采集系统的组成
常用采样/保持器:随着大规模集成电路的发展,已生产 出各种各样的采样/保持器。如用于一般目的有AD582、 AD583 、 LF198/398 等 ; 用 于 高 速 的 有 THS-0025 、 THS-0060、THC-0030、THC-1500等;用于高分辨率 的有SHA1144、ADC1130等。
的频谱 f (t)的最高频率 F( j的) 两倍,即
max
s 2max
采样定理奠定了选择采样频率的理论基础,但对于 连续对象的离散控制,不易确定连续信号的最高频率。 因此,采样定理给出了选择频率的准则,在实际应用中 还要根据系统的实际情况综合考虑.。
10
一、数据采集系统的组成
(2)采样保持 采样保持电路:对变化的模拟信号快速采样,并在转换过程中
T型电阻网络
28
三、数/模转换
T型电阻网络D/A转换原理框图
VRE
IL3
IL2
IL1
IL0
D
C
B
T型电阻网络
F
R
I3 2R I2 2R I1 2R I0 2R

51单片机复习题(含答案)

51单片机复习题(含答案)

一、填空题1、A T89S51单片机为8 位单片机,共有40 个引脚。

2、MCS-51系列单片机的典型芯片分别为8031 、8051 、8751 。

3、A T89S51访问片外存储器时,利用ALE 信号锁存来自P0口发出的低8位地址信号。

4、A T89S51的P3口为双功能口。

5、A T89S51内部提供 2 个可编程的16 位定时/计数器,定时器有4 种工作方式。

6、A T89S51有 2 级中断, 5 个中断源。

7、A T89S51的P2 口为高8位地址总线口。

8、设计一个以AT89C51单片机为核心的系统,如果不外扩程序存储器,使其内部4KB闪烁程序存储器有效,则其EA* 引脚应该接+5V9、单片机系统中使用的键盘分为独立式键盘和行列式键盘,其中行列式键盘的按键识别方法有扫描法和线反转法。

10、单片机进行串行通信时,晶振频率最好选择11.0592MHz11、AT89S51复位后,PC与SP的值为分别为0000H 和07H 。

12、关于定时器,若振荡频率为12MHz,在方式2下最大定时时间为256us13、A T89S51单片机的通讯接口有串行和并行两种形式。

在串行通讯中,发送时要把并行数据转换成串行数据。

接收时又需把串行数据转换成并行数据。

14、一个机器周期等于6个状态周期,振荡脉冲2分频后产生的时序信号的周期定义为状态12周期。

15、当使用慢速外设时,最佳的传输方式是中断。

16、MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器__SCON _加以选择。

二、判断题1、8031与8051的区别在于内部是否有程序存储器。

(√)2、内部RAM的位寻址区,既能位寻址,又可字节寻址。

(√)3、串行口工作方式1的波特率是固定的,为fosc/32。

(×)4、8051单片机中的PC是不可寻址的。

(√)5、MCS-51系统可以没有复位电路。

(×)6、某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址。

(完整word版)基于51单片机的酒精检测仪课程设计

(完整word版)基于51单片机的酒精检测仪课程设计

1甲醇测试仪总体方案设计1.1甲醇浓度检测仪设计要求分析设计的甲醇浓度测试仪应具有如下特点:(1)数据采集系统以单片机为控制核心,外围电路带有LED显示以及键盘响应电路,无需要其他计算机,用户就可以与之进行交互工作,完成数据的采集、存储、计算、分析等过程。

(2)系统具有低功耗、小型化、高性价比等特点。

(3)从便携式的角度出发,系统成功使用了数码管显示器以及小键盘。

由单片机系统控制键盘和LED显示来实现人机交互操作,界面友好。

(4)软件设计简单易懂。

1.2甲醇浓度检测仪设计方案设计时,考虑甲醇浓度是由传感器把非电量转换为电量,传感器输出的是0-5伏的电压值且电压值稳定,外部干扰小等。

因此,可以直接把传感器输出电压值经过A/D转换器转换得到数据送入单片机进行处理。

此外,还需接人LED显示,4*4键盘,报警电路等。

其总体框图如图2.1所示。

图1.1基本工作原理图2硬件设计2.1传感器的选择本系统采用气敏传感器直接测量的是空气中的甲醇浓度。

传感器只能采对甲醇气体敏感,对其他气体不敏感,故选用MQ3型气敏传感器,这是考虑到周围空气中的气体成分可能影响传感器测量的准确性。

MQ3型气敏传感器由微型Al2O3,陶瓷管和测量电极、SnO2敏感层和加热器构成的敏感元件固定在塑料或不锈钢的腔体内,加热器为气敏元件的工作提供了必要的工作条件。

MQ3型气敏传感器有很高的灵敏度、良好的选择性、长期的使用寿命和可靠的稳定性。

传感器的标准回路有加热回路和信号输出回路两部分组成,它可以准确反映传感器表面电阻值的变化。

传感器的表面电阻RS的变化,是通过与其串联的负载电阻RL上的有效电压信号VRL输出面获得的。

负载电阻RL可调为0.5-200K。

加热电压Uh为5v。

上述这些参数使得传感器输出电压为0-5V。

MQ3型气敏传感器的结构和外形、标准回路、传感器阻值变化率与酒精浓度、外界温度的关系图如图3-3所示。

一般在测量前需将传感器预热5分钟,这个样子是为了使测量的精度达到最高,误差最小,需要找到合适的温度。

51单片机加CPLD驱动ADC0809的多路数据采集系统

51单片机加CPLD驱动ADC0809的多路数据采集系统
1. 启动AD转换
ADC0809 启动受 START、ALE 和 ADDR 信号控制,
一、ADC0809
ADC0809 是 8 位 A/D 转换器、8 路多路开关以及 微处理机兼容的控制逻辑的 CMOS 组件。它是逐次逼 近式 A/D 转换器,容易和单片机总线模式接口。图 1 是 ADC0809 芯片的实物图和引脚图。
51MCU 有与之对应的控制时序,当 MCU 执行指 令 MOVX @DPTR,A 时,将产生如图 3 所示的时序波形 图,P0 口分时复用,分别送出低 8 位地址 addrL 和数 据 data,P2 口送出高八位地址 addrH,并且在 t0 时刻, P3.6(WR)送出低脉冲信号。
通过比较图 2 图、3 波形图,如果将 Wr 信号取反, 就可以得到满足 ADC0809 启动所需的 ALE(START) 信号,从 P0 送出的 data 为其提供 ADDR 通道选择地址。
30 2011. 03
IN3 1 IN4 2 IN5 3 IN6 4 IN7 5 START 6 EOC 7 2-5 8 OE 9 CLOCK 10 VCC 11 VREF(+) 12 GND 13 2-7 14
28 IN2 27 IN1 26 IN0 25 ADD A 24 ADD B 23 ADD C 22 ALE 21 2-1MSB 20 2-2 19 2-3 18 2-4 17 2-8LSB 16 VREF(-) 15 2-6
IN7 5
32 2011. 03
图7 0809与Mini51板接口电路图
单片机制作
MCU
三、程序设计
多路数据采集系统主程序流程图如图 11 所示,外
部中断流程图如图 12 所示。
在 keil 中创建工程,主 C51 程序解读如下。 #include "STC89C51RC.H"//STC 单片机头文件,相当与一 般 51 的 reg51.h #include <absacc.h> #include <stdio.h> #include "STCEEPROM.H"//STC 单片机 EEPROM 读写头文件 // 根据单片机地址译码电路定义单片机扩展地址 #define SEG1 XBYTE[0xffec]// 数码管地址 #define SEG2 XBYTE[0xffed] #define SEG3 XBYTE[0xffee] #define SEG4 XBYTE[0xffef] #define ADC XBYTE[0xffe0]//ADC 地址 #define CH_BYTE EEPROM52// 预定义通道地址在 EEPROM 中存放地址,与单片机型号有关,详细在 STCEEPROM.H 中定义 sbit KEY_UP = P3^5;// 按键端口定义 sbit KEY_DN = P3^4; char CH;// 通道变量,0 ~ 7 unsigned char ledmap[]= // 共阳 LED 数码管译码表 { 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, //0;1;2;3;4;5;6;7;8;9; 0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10,

51系列单片机简介

51系列单片机简介

51系列单片机中的新亮点
下面以ADuC812为例,简述此种的单片机的特点 :
◆ ◆ ◆ ◆ ◆ 片内数据存储器FLASH为640Byte,RAM为256Byte 片内程序存储器FLASH为8kByte 64kByte外部程序地址空间 16MByte外部数据地址空间 8通道的12位高精度模数转换器,单电源供电,片内具 有电压基准 ◆ 可在MCU不干预下,采用DMA模式,来实现ADC的连续转 换,并把采样值捕获到外部数据存储器中,且模数转换 器转换时间为0.5μs
生产51系列的厂家及产品简单介绍
Philips公司推出的80C552是51系列单片机家族的 典型产品,它在保持80C51中央处理机的同时,片内数据 存储器RAM扩展到256Byte;片内程序存储器ROM扩展 到8kByte;又增加了1个定时器,并使其具有捕获功能;增 加了8路10位A/D转换器;2路脉冲宽度调制输 出 (PWM); I 2C 串行总线口;看门狗等。80C552使外围电 路内装化,减小了系统的体积,提高了可靠性,节省了设 I2 计时间和成本。 C (Inter IC BUS)这一芯片间串行通 讯总线,以两根连线实现了完善的全双工同步数据传送, 可以极方便地构成多机系统和外围器件扩展系统,为单 片机应用系统设计提供了更加灵活的方式
时钟 CPU 复位
ROM RAM
定时/ 计数器
中断 系统

I/O口
外部 设备
单片机简介
单片机具有以下特点:
1)受集成度限制,片内存储器容量小,一般ROM小于 4/8K字节,RAM小于256字节;但可在外部扩展,通常 ROM、RAM可分别扩展至64K字节 2)可靠性好。 3)易扩展。 4)控制能力强。 5)一般单片机内无监控程序或系统通用软件,只放置有 用户调试好的应用程序。但近年来也开始出现了在片 内固化有BASIC解释程序及FORTH操作系统的单片机。

基于单片机的图像处理采集系统

基于单片机的图像处理采集系统

(二 〇 一 二 年 六 月本科毕业设计说明书 学校代码: 10128 学 号:题 目:基于单片机的图像处理采集系统设计与实现 学生姓名: 学 院: 系 别: 专 业: 班 级: 指导教师:摘要传统的工业级图像处理采集系统大多是由CCD摄像头、图像采集卡和PC机组成,虽已得到了广泛的应用,但是它具有结构复杂,成本高,体积大,功耗大等缺点。

随着单片机的迅速发展,开发一种智能控制及智能处理功能的微型图像处理采集系统成为可能,并且也克服了传统图像处理采集系统的诸多缺点。

本设计提出了基于单片机的图像采集系统,该系统主要由四大模块组成:第一个是单片机控制模块,对摄像头进行控制;第二个是摄像头模块,即进行图像拍摄和取图;第三个是Zigbee无线传输模块,功能是将图像传送到上位机;最后是上位机,实现图像显示功能。

其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高,使用环境广泛及成本低等。

利用Proteus和Keil进行仿真调试,可以看到设计内容的运行结果,验证系统运的行正确及稳定性,并且实现了图像处理采集功能,所以具有一定的实用和参考价值。

关键词:单片机;Proteus;图像采集AbstractThe traditional industrial image processing collection system by CCD camera, mostly image collection card and PC unit into, although already a wide range of applications, but it has the structure is complex, high cost, big volume and shortcomings, such as big power consumption. With the rapid development of the single chip microcomputer, the development of a kind of intelligent control and intelligent processing function of micro image processing collection system possible, and also overcome traditional image processing collection system of many of the faults.This design is put forward based on SCM image acquisition system, the system consists of four modules: the first one is the single chip microcomputer control module, the camera to control; The second is a camera module, the image shoot and take diagram; The third is Zigbee wireless transmission module, the function is will images to PC; Finally the PC, realize image display function. Its advantage is hardware circuit is simple, software perfect function, control system and reliable, high cost performance, use extensive and environment cost low status. Use Proteus and Keil simulation commissioning, can see the operation of the design content, as demonstrated the correct and do the system stability, and realize the image processing collection function, so has certain practical and reference value.Keywords:Single-Chip Microcomputer;Proteus; Image Capture目录第一章绪论 (1)1.1 课题研究现状 (1)1.2 课题研究目的意义 (1)1.3 本课题研究的主要内容 (1)第二章硬件设计 (2)2.1 系统设计方案 (2)2.2 硬件简介 (2)2.2.1 80C51简介 (2)2.2.2 I/O端口 (4)2.2.3 控制引脚 (5)2.3 摄像头 (6)2.3.1 波特率 (6)2.3.2 数据包 (6)2.3.3 摄像头控制指令 (6)2.4 Zigbee无线传输模块 (9)2.4.1 Zigbee简介 (9)2.4.2 Zigbee技术应用领域 (10)2.4.3 Zigbee 技术特点 (10)第三章软件设计及调试 (12)3.1 Keil调试 (12)3.1.1 Keil简介 (12)3.1.2 Keil调试过程 (12)3.2 程序设计 (19)3.3 电路图设计 (20)3.3.1 Proteus简介 (20)3.3.2 电路图设计过程 (23)3.4 Keil与Proteus联机调试 (27)结论 (30)参考文献 (31)附录 (32)程序清单 (32)谢辞 (34)第一章绪论1.1 课题研究现状随着现代电子信息技术的迅速发展,使得信息处理技术越来越重要,而图像处理采集技术在信息处理技术当中有着异常重要的位置。

基于51单片机——Ds18B20温度采集,LCD显示汇编程序(附带proteus仿真图)

基于51单片机——Ds18B20温度采集,LCD显示汇编程序(附带proteus仿真图)

TEMP_ZH EQU 24H ;实测温度值存放单元TEMPL EQU 25HTEMPH EQU 26HTEMP_TH EQU 27H ;高温报警值存放单元TEMP_TL EQU 28H ;低温报警值存放单元TEMPHC EQU 29H ;正、负温度值标记TEMPLC EQU 2AHTEMPFC EQU 2BHK1 EQU P1.4 ;查询按键K2 EQU P1.5 ;设置/调整键K3 EQU P1.6 ;调整键K4 EQU P1.7 ;确定键BEEP EQU P3.7 ;蜂鸣器RELAY EQU P1.3 ;指示灯LCD_X EQU 2FH ;LCD 字符显示位置LCD_RS EQU P2.0 ;LCD 寄存器选择信号 LCD_RW EQU P2.1 ;LCD 读写信号LCD_EN EQU P2.2 ;LCD 允许信号FLAG1 EQU 20H.0 ;DS18B20是否存在标志 KEY_UD EQU 20H.1 ;设定按键的增、减标志 DQ EQU P3.3 ;DS18B20数据信号ORG 0000HLJMP MAINORG 0030HMAIN: MOV SP,#60HMOV A,#00HMOV R0,#20H ;将20H~2FH 单元清零MOV R1,#10HCLEAR: MOV @R0,AINC R0DJNZ R1,CLEARLCALL SET_LCDLCALL RE_18B20START: LCALL RST ;调用18B20复位子程序JNB FLAG1,START1 ;DS1820不存在LCALL MENU_OK ;DS1820存在,调用显示正确信息子程序MOV TEMP_TH,#055H ;设置TH初值85度MOV TEMP_TL,#019H ;设置TL初值25度LCALL RE_18B20A ;调用暂存器操作子程序LCALL WRITE_E2 ;写入DS18B20LCALL TEMP_BJ ;显示温度标记JMP START2START1: LCALL MENU_ERROR ;调用显示出错信息子程序 LCALL TEMP_BJ ;显示温度标记SJMP $START2: LCALL RST ;调用DS18B20复位子程序JNB FLAG1,START1 ;DS18B20不存在MOV A,#0CCH ;跳过ROM匹配命令LCALL WRITEMOV A,#44H ;温度转换命令LCALL WRITELCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEMOV A,#0BEH ;读温度命令LCALL WRITELCALL READ ;调用DS18B20数据读取操作子程序LCALL CONVTEMP ;调用温度数据BCD 码处理子程序LCALL DISPBCD ;调用温度数据显示子程序LCALL CONV ;调用LCD显示处理子程序LCALL TEMP_COMP ;调用实测温度值与设定温度值比较子程序LCALL PROC_KEY ;调用键扫描子程序SJMP START2 ;循环;*************************** 键扫描子程序*****************************PROC_KEY:JB K1,PROC_K1LCALL BEEP_BLJNB K1,$MOV DPTR,#M_ALAX1MOV A,#1LCALL LCD_PRINTLCALL LOOK_ALARMJB K3,$LCALL BEEP_BLJMP PROC_K2PROC_K1: JB K2,PROC_ENDLCALL BEEP_BLJNB K2,$MOV DPTR,#RST_A1MOV A,#1LCALL LCD_PRINTLCALL SET_ALARMLCALL RE_18B20 ;将设定的TH,TL值写入DS18B20LCALL WRITE_E2PROC_K2: LCALL MENU_OKLCALL TEMP_BJPROC_END:RET;*************************** 设定温度报警值TH、TL ***************************SET_ALARM:LCALL LOOK_ALARMAS0: JB K1,AS00LCALL BEEP_BLJNB K1,$CPL 20H.1 ;UP/DOWN 标记AS00: JB 20H.1,ASZ01 ;20H.1=1,增加JMP ASJ01 ;20H.1=0,减小ASZ01: JB K2,ASZ02 ;TH值调整(增加)LCALL BEEP_BLINC TEMP_THMOV A,TEMP_THCJNE A,#120,ASZ011MOV TEMP_TH,#0ASZ011: LCALL LOOK_ALARMLCALL DELAYJMP ASZ01ASZ02: JB K3,ASZ03 ;TL值调整(增加) LCALL BEEP_BLINC TEMP_TLMOV A,TEMP_TLCJNE A,#99,ASZ021MOV TEMP_TL,#00HASZ021: LCALL LOOK_ALARMMOV R5,#10LCALL DELAYJMP ASZ02ASZ03: JB K4,AS0 ;确定调整LCALL BEEP_BLJNB K4,$RETASJ01: JB K2,ASJ02 ;TH值调整(减少) LCALL BEEP_BLDEC TEMP_THMOV A,TEMP_THCJNE A,#0FFH,ASJ011ASJ011: LCALL LOOK_ALARMMOV R5,#10LCALL DELAYJMP AS0ASJ02: JB K3,ASJ03 ;TL值调整(减少)LCALL BEEP_BLDEC TEMP_TLMOV A,TEMP_TLCJNE A,#0FFH,ASJ021JMP ASJ022ASJ021: LCALL LOOK_ALARM ;MOV R5,#10LCALL DELAYJMP AS0ASJ022: CPL 20H.1JMP ASZ01ASJ03: JMP ASZ03RETRST_A1: DB " SET ALERT CODE " ,0;*********************** 实测温度值与设定温度值比较子程序**********************TEMP_COMP:MOV A,TEMP_THSUBB A,TEMP_ZH ;减数>被减数,则JC CHULI1 ;借位标志位C=1,转 MOV A,TEMPFCCJNE A,#0BH,COMPSJMP CHULI2COMP: MOV A,TEMP_ZHSUBB A,TEMP_TL ;减数>被减数,则JC CHULI2 ;借位标志位C=1,转MOV DPTR,#BJ5LCALL TEMP_BJ3CLR RELAY ;点亮指示灯RETCHULI1: MOV DPTR,#BJ3LCALL TEMP_BJ3SETB RELAY ;熄灭指示灯LCALL BEEP_BL ;蜂鸣器响RETCHULI2: MOV DPTR,#BJ4LCALL TEMP_BJ3SETB RELAY ;熄灭指示灯LCALL BEEP_BL ;蜂鸣器响RET;-----------------------------------------TEMP_BJ3: MOV A,#0CEHLCALL WCOMMOV R1,#0MOV R0,#2BBJJ3: MOV A,R1MOVC A,@A+DPTRLCALL WDATAINC R1DJNZ R0,BBJJ3RETBJ3: DB ">H"BJ4: DB "<L"BJ5: DB " !";;**************************** 显示温度标记子程序***************************TEMP_BJ: MOV A,#0CBHLCALL WCOMMOV DPTR,#BJ1 ;指针指到显示消息MOV R1,#0MOV R0,#2BBJJ1: MOV A,R1MOVC A,@A+DPTRLCALL WDATAINC R1DJNZ R0,BBJJ1RETBJ1: DB 00H,"C";******************************** 显示正确信息子程序***************************MENU_OK: MOV DPTR,#M_OK1 ;指针指到显示消息MOV A,#1 ;显示在第一行LCALL LCD_PRINTMOV DPTR,#M_OK2 ;指针指到显示消息MOV A,#2 ;显示在第一行LCALL LCD_PRINTRETM_OK1: DB " DS18B20 OK ",0M_OK2: DB " TEMP: ",0;******************************** 显示出错信息子程序***************************MENU_ERROR:MOV DPTR,#M_ERROR1 ;指针指到显示消息MOV A,#1 ;显示在第一行LCALL LCD_PRINTMOV DPTR,#M_ERROR2 ;指针指到显示消息1MOV A,#2 ;显示在第一行LCALL LCD_PRINTRETM_ERROR1: DB " DS18B20 ERROR ",0M_ERROR2: DB " TEMP: ---- ",0;****************************DS18B20复位子程序*****************************RST: SETB DQNOPCLR DQMOV R0,#6BH ;主机发出延时复位低脉冲MOV R1,#04HTSR1: DJNZ R0,$MOV R0,#6BHDJNZ R1,TSR1SETB DQ ;拉高数据线NOPNOPNOPMOV R0,#32HTSR2: JNB DQ,TSR3 ;等待DS18B20回应DJNZ R0,TSR2JMP TSR4 ; 延时TSR3: SETB FLAG1 ; 置1标志位,表示DS1820存在JMP TSR5TSR4: CLR FLAG1 ; 清0标志位,表示DS1820不存在 JMP TSR7TSR5: MOV R0,#06BHTSR6: DJNZ R0,$ ; 时序要求延时一段时间TSR7: SETB DQRET;************************ DS18B20暂存器操作子程序***************************RE_18B20:JB FLAG1,RE_18B20ARETRE_18B20A:LCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEWR_SCRAPD:MOV A,#4EH ;写暂器LCALL WRITEMOV A,TEMP_TH ;TH(报警上限)LCALL WRITEMOV A,TEMP_TL ;TL(报警下限)LCALL WRITEMOV A,#7FH ;12位精度LCALL WRITERET;************************ 复制暂存器子程序*******************************WRITE_E2:LCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEMOV A,#48H ;把暂存器里的温度报警值拷贝到EEROMLCALL WRITERET;*********************** 重读EEROM子程序********************************READ_E2:LCALL RSTMOV A,#0CCH ;跳过ROM匹配LCALL WRITEMOV A,#0B8H ;把EEROM里的温度报警值拷贝回暂存器LCALL WRITERET;************************ 将自定义字符写入LCD的CGRAM中*********************STORE_DATA:MOV A,#40HLCALL WCOMMOV R2,#08HMOV DPTR,#D_DATAMOV R3,#00HS_DATA: MOV A,R3MOVC A,@A+DPTRLCALL WDATA ;写入数据INC R3DJNZ R2,S_DATARETD_DATA: DB 0CH,12H,12H,0CH,00H,00H,00H,00H;*********************** DS18B20数据写入操作子程序************************WRITE: MOV R2,#8 ;一共8位数据CLR CWR1: CLR DQ ;开始写入DS18B20总线要处于复位(低)状态MOV R3,#07DJNZ R3,$ ;总线复位保持16微妙以上RRC A ;把一个字节DATA 分成8个BIT 环移给CMOV DQ,C ;写入一位MOV R3,#3CHDJNZ R3,$ ;等待100微妙SETB DQ ;重新释放总线NOPDJNZ R2,WR1 ;写入下一位SETB DQRET;********************** DS18B20数据读取操作子程序**************************READ: MOV R4,#4 ;将温度低位、高位、TH、TL从DS18B20中读出MOV R1,#TEMPL ;存入25H、26H、27H、28H单元RE00: MOV R2,#8RE01: CLR CYSETB DQNOPNOPCLR DQ ;读前总线保持为低NOPNOPNOPSETB DQ ;开始读总线释放MOV R3,#09 ;延时18微妙DJNZ R3,$MOV C,DQ ;从DS18B20总线读得一位MOV R3,#3CHDJNZ R3,$ ;等待100微妙RRC A ;把读得的位值环移给ADJNZ R2,RE01 ;读下一位MOV @R1,AINC R1DJNZ R4,RE00RET;************************ 温度值BCD 码处理子程序*************************CONVTEMP: MOV A,TEMPH ;判温度是否零下ANL A,#08HJZ TEMPC1 ;温度零上转CLR CMOV A,TEMPL ;二进制数求补(双字节)CPL A ;取反加1ADD A,#01HMOV TEMPL,AMOV A,TEMPHCPL AADDC A,#00HMOV TEMPH,AMOV TEMPHC,#0BH ;负温度标志MOV TEMPFC,#0BHSJMP TEMPC11TEMPC1: MOV TEMPHC,#0AH ;正温度标志MOV TEMPFC,#0AHTEMPC11: MOV A,TEMPHCSWAP AMOV TEMPHC,AMOV A,TEMPLANL A,#0FH ;乘0.0625MOV DPTR,#TEMPDOTTABMOVC A,@A+DPTRMOV TEMPLC,A ;TEMPLC LOW=小数部分 BCDMOV A,TEMPL ;整数部分ANL A,#0F0H ;取出高四位SWAP AMOV TEMPL,AMOV A,TEMPH ;取出低四位ANL A,#0FHSWAP AORL A,TEMPL ;重新组合MOV TEMP_ZH,ALCALL HEX2BCD1MOV TEMPL,AANL A,#0F0HSWAP AORL A,TEMPHC ;TEMPHC LOW = 十位数BCDMOV TEMPHC,AMOV A,TEMPLANL A,#0FHSWAP A ;TEMPLC HI = 个位数BCDORL A,TEMPLCMOV TEMPLC,AMOV A,R4JZ TEMPC12ANL A,#0FHSWAP AMOV R4,AMOV A,TEMPHC ;TEMPHC HI = 百位数BCDANL A,#0FHORL A,R4MOV TEMPHC,ATEMPC12: RET;************************ 二-十进制转换子程序*****************************HEX2BCD1: MOV B,#064HDIV ABMOV R4,AMOV A,#0AHXCH A,BDIV ABSWAP AORL A,BRETTEMPDOTTAB: DB 00H,00H,01H,01H,02H,03H,03H,04H ; 小数部分码表DB 05H,05H,06H,06H,07H,08H,08H,09H;********************** 查询温度报警值子程序***************************LOOK_ALARM: MOV DPTR,#M_ALAX2 ;指针指到显示信息区MOV A,#2 ;显示在第二行LCALL LCD_PRINTMOV A,#0C6HLCALL TEMP_BJ1MOV A,TEMP_TH ;加载TH数据MOV LCD_X,#3 ;设置显示位置LCALL SHOW_DIG2H ;显示数据MOV A,#0CEHLCALL TEMP_BJ1MOV A,TEMP_TL ;加载TL数据MOV LCD_X,#12 ;设置显示位置LCALL SHOW_DIG2L ;显示数据RETM_ALAX1: DB " LOOK ALERT CODE",0M_ALAX2: DB "TH: TL: ",0TEMP_BJ1: LCALL WCOMMOV DPTR,#BJ2 ;指针指到显示信息区 MOV R1,#0MOV R0,#2BBJJ2: MOV A,R1MOVC A,@A+DPTRLCALL WDATADJNZ R0,BBJJ2RETBJ2: DB 00H,"C";************************** LCD显示子程序**********************************SHOW_DIG2H: MOV B,#100DIV ABADD A,#30HPUSH BMOV B,LCD_XLCALL LCDP2POP BMOV A,#0AHXCH A,BDIV ABADD A,#30HINC LCD_XPUSH BMOV B,LCD_XLCALL LCDP2INC LCD_XMOV A,BMOV B,LCD_XADD A,#30HLCALL LCDP2RETSHOW_DIG2L: MOV B,#100DIV ABMOV A,#0AHXCH A,BDIV ABADD A,#30HPUSH BMOV B,LCD_XLCALL LCDP2POP BINC LCD_XMOV A,BMOV B,LCD_XADD A,#30HLCALL LCDP2RET;************************ 显示区BCD 码温度值刷新子程序**********************DISPBCD: MOV A,TEMPLCANL A,#0FHMOV 70H,A ;小数位MOV A,TEMPLCSWAP AANL A,#0FHMOV 71H,A ;个位MOV A,TEMPHCANL A,#0FHMOV 72H,A ;十位MOV A,TEMPHCSWAP AANL A,#0FHMOV 73H,A ;百位DISPBCD2: RET;*************************** LCD 显示数据处理子程序*************************CONV: MOV A,73H ;加载百位数据MOV LCD_X,#6 ;设置位置CJNE A,#1,CONV1JMP CONV2CONV1: CJNE A,#0BH,CONV11MOV A,#"-" ;"-"号显示JMP CONV111CONV11: MOV A,#" " ;"+"号不显示CONV111: MOV B,LCD_XLCALL LCDP2JMP CONV3CONV2: LCALL SHOW_DIG2 ;显示数据CONV3: INC LCD_XMOV A,72H ;十位LCALL SHOW_DIG2INC LCD_XMOV A,71H ;个位LCALL SHOW_DIG2INC LCD_XMOV A,#'.'MOV B,LCD_XLCALL LCDP2MOV A,70H ;加载小数点位INC LCD_X ;设置显示位置LCALL SHOW_DIG2 ;显示数据RET;*************************** 第二行显示数字子程序*************************SHOW_DIG2:ADD A,#30HMOV B,LCD_XLCALL LCDP2RET;*************************** 第二行显示数字子程序*************************LCDP2: PUSH ACCMOV A,B ;设置显示地址ADD A,#0C0H ;设置LCD的第二行地址LCALL WCOM ;写入命令POP ACC ;由堆栈取出ALCALL WDATA ;写入数据RET;*************************** 对LCD 做初始化设置及测试*************************SET_LCD: CLR LCD_ENLCALL INIT_LCD ;初始化 LCDLCALL STORE_DATA ;将自定义字符存入LCD的CGRAM RET;****************************** LCD初始化***********************************INIT_LCD: MOV A,#38H ;2行显示,字形5*7点阵LCALL WCOMLCALL DELAY1MOV A,#38HLCALL WCOMLCALL DELAY1MOV A,#38HLCALL WCOMLCALL DELAY1MOV A,#0CH ;开显示,显示光标,光标不闪烁 LCALL WCOMLCALL DELAY1MOV A,#01H ;清除 LCD 显示屏LCALL WCOMLCALL DELAY1RET;***************************** 清除LCD的第一行字符**************************CLR_LINE1:MOV A,#80H ;设置 LCD 的第一行地址LCALL WCOMMOV R0,#24 ;设置计数值C1: MOV A,#' ' ;载入空格符至LCDLCALL WDATA ;输出字符至LCDDJNZ R0,C1 ;计数结束RET;************************* LCD的第一行或第二行显示字符**********************LCD_PRINT:CJNE A,#1,LINE2 ;判断是否为第一行LINE1: MOV A,#80H ;设置 LCD 的第一行地址LCALL WCOM ;写入命令LCALL CLR_LINE ;清除该行字符数据MOV A,#80H ;设置 LCD 的第一行地址LCALL WCOM ;写入命令JMP FILLLINE2: MOV A,#0C0H ;设置 LCD 的第二行地址LCALL WCOM ;写入命令LCALL CLR_LINE ;清除该行字符数据MOV A,#0C0H ;设置 LCD 的第二行地址LCALL WCOMFILL: CLR A ;填入字符MOVC A,@A+DPTR ;由消息区取出字符CJNE A,#0,LC1 ;判断是否为结束码RETLC1: LCALL WDATA ;写入数据INC DPTR ;指针加1JMP FILL ;继续填入字符RET;*************************** 清除1行LCD 的字符****************************CLR_LINE: MOV R0,#24CL1: MOV A,#' 'LCALL WDATADJNZ R0,CL1RETDE: MOV R7,#250DJNZ R7,$RET;**************************** LCD 间接控制方式命令写入*************************WCOM: MOV P0,A ;写入命令CLR LCD_RS ;RS=L,RW=L,D0-D7=指令码,E=高脉冲 CLR LCD_RWSETB LCD_ENLCALL DELAY1CLR LCD_ENRET;**************************** LCD 间接控制方式数据写入*************************WDATA: MOV P0,A ;写入数据SETB LCD_RSCLR LCD_RWSETB LCD_ENLCALL DELCALL DERET;************************** 在LCD的第一行显示字符**************************LCDP1: PUSH ACCMOV A,B ;设置显示地址ADD A,#80H ;设置LCD的第一行地址LCALL WCOM ;写入命令POP ACC ;由堆栈取出ALCALL WDATA ;写入数据RET;****************************** 声光报警子程序*******************************BEEP_BL: MOV R6,#100BL2: LCALL DEX1CPL BEEPCPL RELAYDJNZ R6,BL2MOV R5,#10RETDEX1: MOV R7,#180DE2: NOPDJNZ R7,DE2RET;****************************** 延时子程序*******************************DELAY: MOV R6,#50DL1: MOV R7,#100DJNZ R7,$DJNZ R6,DL1DJNZ R5,DELAYRETDELAY1: MOV R6,#25 ;延时5毫秒DL2: MOV R7,#100DJNZ R7,$DJNZ R6,DL2RETEND。

单片机原理及应用 第4章 MCS-51单片机系统的扩展技术

单片机原理及应用 第4章 MCS-51单片机系统的扩展技术

2.数据存储器典型扩展电路
6264的地址范围为:0000H~1FFFH。
[例题] 在上页图的数据存储器扩展电路中,将片内RAM 以50H单 元开始的16个数据,传送片外数据存储器0000H开始的单元中。
程序如下:
ORG 1000H MOV R0, #50H MOV R7, #16 MOV DPTR, #0000H AGAIN: MOV A, @R0 MOVX @DPTR, A INC R0 INC DPTR DJNZ R7, AGAIN RET END ; 数据指针指向片内50H单元 ; 待传送数据个数送计数寄存器 ; 数据指针指向数据存储器6264的0000H单元 ; 片内待输出的数据送累加器A ; 数据输出至数据存储器6264 ; 修改数据指针 ; 判断数据是否传送完成
4.2.1
程序存储器扩展
单片机内部没有ROM,或虽有ROM但容量太小时,必须扩 展外部程序存储器方能工作。最常用的ROM器件是EPROM 1. 常用EPROM程序存储器 EPROM主要是27系列芯片,如:2764(8K)/27128(16K) /27256(32K)/27040(512K)等,一般选择8KB以上的芯片作为 外部程序存储器。
4.2.3 MCS-51对外部存储器的扩展
下图所示的8031扩展系统中,外扩了16KB程序存储器(使用两片 2764芯片)和8KB数据存储器(使用一片6264芯片)。采用全地址译码方 式,P2.7用于控制2―4译码器的工作,P2.6, P2.5参加译码,且无悬空地 址线,无地址重叠现象。 1# 2764, 2# 2764, 3# 6264的地址范围分别为:0000H~1FFFH, 2000H~3FFFH, 4000~5FFFH。
MOV DPTR, #7FFFH ; 数据指针指向74LS377 MOV A, 60H ; 输出的60H单元数据送累加器A MOVX @DPTR, A ; P0口将数据通过74LS377输出

基于51单片机的温度数据采集系统

基于51单片机的温度数据采集系统

8 | 电子制作 2018年11月格的,比如:工厂在生产某一种产品时温度要求范围在25到30摄氏度之间,只有在这个温度范围内才可以生产出合格的产品,还有在进行某些科研实验时对温度的要求就会更加严格,有的精确到1摄氏度以内,甚至有的精确到0.5摄氏度以内。

因此我想设计一个“电子温度计”,基本功能是对温度的采集与显示。

在温度采集的设计上必须要A/D 转换,也就是将模拟信号转化为数字信号,因此我选择了DS18B20温度传感器模块,该模块不仅可以对温度进行实时测控,并且具有较高的灵敏度。

在数据的显示方面我选择了LCD1602显示模块,整个系统采用STC89C52单片机控制。

本设计在Altium Designer 上画出原理图,然后通过热转印制作PCB 板,完成硬件部分。

此次设计在大量科学知识的支持下具有较高的可行性和实用性。

1 系统工作原理该系统是在C 语言编程以及51单片机知识为基础上进行设计的,同时采用了DS18B20温度传感器模块以及LCD1602显示模块,利用KEIL 软件进行软件编程,将编写好的程序录入51单片机中,在51单片机的控制下实现温度数据的采集。

图1 系统整体结构框图整个实时数据采集系统满足以下功能指标:线和表格中。

2 硬件系统设计图2 总体系统结构此系统以STC89C52单片机为控制核心,采用了数字温度传感器模块DS18B20,该模块将采集到的温度数据转化为数字信号,并将信号传送给单片机,单片机处理数据后,通过LCD1602液晶显示器将温度显示出来。

在整个作品上首先提到的是硬件系统的设计,然后就是各个模块的工作原理以及工作特点,详细介绍系统的硬件设计,在给出系统的连接图,通过PROTEL 99SE 进行系统电路原理图的绘制,生成相应的PCB 板,并分析系统的工作原理,在软件方面对整体和各个模块的程序进行设计,在KEIL 中进行编写,在编写过程中如果出现理论错误,系统会给与提示,编程结束后也可手动调试来改正错误,或者修改程序功能。

单片机多路数据采集控制系统课程设计报告

单片机多路数据采集控制系统课程设计报告

单片机多路数据采集控制系统课程设计报告叶醒Xb09610118 余希Xb09610120一、设计目的运用单片机原理及其应用等课程知识,根据题目要求进行软硬件系统的设计和调试,从而加深对本课程知识的理解,把学过的比较零碎的知识系统化,比较系统的学习开发单片机应用系统的基本步骤和基本方法,使学生应用知识能力、设计能力、调试能力以及报告撰写能力等有一定的提高。

二、设计要求用8051单片机设计数据采集控制系统,基本要求如下:基本部分:1.可实现8路数据的采集,假设8路信号均为0~5V的电压信号。

2.采集数据可通过LCD显示,显示格式为[通道号] 电压值,如[01] 4.5。

3.可通过键盘设置采集方式:单点采集、多路巡测、采集时间间隔。

4.具有异常数据声音爆晶功能:对第一路数据可设置正常数据的上限值和下限值,当采集的数据出现异常,发出报警信号。

选作功能:1.异常数据音乐报警。

2.可输出8路顺序控制信号,设每路顺序控制信号为一位,顺序控制的流程为:三、总体设计我们选择单片机与A/D转换芯片结合的方法实现本设计。

使用的基本元器件是:A T89C52单片机,ADC0809模数转换芯片,LCD显示器,按键,电容,电阻,晶振等。

数字电压测量电路由A/D转换、数据处理及显示控制等组成。

A/D转换由集成电路ADC0809完成。

ADC0809具有8路拟输入端口,地址线(23~- 25脚)可决定对哪一路模拟输入作A/D换。

22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。

6脚为测试控制,当输入一个2uS宽高电平脉冲时,就开始A/D转换。

7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。

9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。

10脚为0809的时钟输入端。

单片机的P1.5~P1.7、P3端口作1602液晶显示控制。

P2端口作A/D转换数据读入用,P0端口用作0809的A/D 转换控制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告书设计任务书一、设计任务1一秒钟采集一次。

2把INO口采集的电压值放入30H单元中。

3做出原理图。

4画出流程图并写出所要运行的程序。

二、设计方案及工作原理方案: 1. 采用8051和ADC0809构成一个8通道数据采集系统。

2. 能够顺序采集各个通道的信号。

3. 采集信号的动态范围:0~5V。

4. 每个通道的采样速率:100 SPS。

5.在面包板上完成电路,将采样数据送入单片机20h~27h存储单元。

6.编写相应的单片机采集程序,到达规定的性能。

工作原理:通过一个A/D转换器循环采样模拟电压,每隔一定时间去采样一次,一次按顺序采样信号。

A/D转换器芯片AD0809将采样到的模拟信号转换为数字信号,转换完成后,CPU读取数据转换结果,并将结果送入外设即CRT/LED显示,显示电压路数和数据值。

目录第一章系统设计要求和解决方案第二章硬件系统第三章软件系统第四章实现的功能第五章缺点及可能的解决方法第六章心得体会附录一参考文献附录二硬件原理图附录三程序流程图第一章系统设计要求和解决方案根据系统基本要求,将本系统划分为如下几个部分:●信号调理电路●8路模拟信号的产生与A/D转换器●发送端的数据采集与传输控制器●人机通道的接口电路●数据传输接口电路数据采集与传输系统一般由信号调理电路,多路开关,采样保持电路,A/D,单片机,电平转换接口,接收端(单片机、PC或其它设备)组成。

系统框图如图1-1所示1.1 信号采集分析被测电压为0~5V 直流电压,可通过电位器调节产生。

1.1.1 信号采集多路数据采集系统多采用共享数据采集通道的结构形式。

数据采集方式选择程序控制数据采集。

程序控制数据采集,由硬件和软件两部分组成。

,据不同的采集需要,在程序存储器中,存放若干种信号采集程序,选择相应的采集程序进行采集工作,还可通过编新的程序,以满足不同采样任务的要求。

如图1-3所示。

程序控制数据采集的采样通道地址可随意选择,控制多路传输门开启的通道地址码由存储器中读出的指令确定。

即改变存储器中的指令内容便可改变通道地址。

由于顺序控制数据采集方式缺乏通用性和灵活性,所以本设计中选用程序控制数据采集方式。

采集多路模拟信号时,一般用多路模拟开关巡回检测的方式,即一种数据采集的方式。

利用多路开关(MUX )让多个被测对象共用同一个采集通道,这就是多通道数据采集系统的实质。

当采集高速信号时,A/D 转换器前端还需加采样/保持(S/H)电路。

待测量一般不能直接被转换成数字量,通常要进行放大、特性补偿、滤波等环节的预处理。

被测信号往往因为幅值较小,而且可能还含有多余的高频分量等原因,不能直接送给A/D 转换器,需对其进行必要的处理,即信号调理。

如对信号进行放大、衰减、滤波等。

通常希望输入到A/D 转换器的信号能接近A/D 转换器的满量程以保证转换精度,因此在直流电流电源输出端与A/D 转换器之间应接入放大器以满足要求。

本题要求中的被测量为0~5V 直流信号,由于输出电压比较大,满足A/D 转换输入的要求,故可省去放大器,而将电源输出直接连接至A/D 转换器输入端。

多路数据采集输入通道的结构图1-4所示。

图1-3 程序控制数据采集原理 图1-1 一般系统框图图1-4 多路数据采集输入通道结构ADC0809是TI公司生产的8位逐次逼近式模数转换器,包括一个8位的逼近型的ADC部分,并提供一个8通道的模拟多路开关和联合寻址逻辑,为模拟通道的设计提供了很大的方便。

用它可直接将8个单端模拟信号输入,分时进行A/D转换,在多点巡回监测、过程控制等领域中使用非常广泛,所以本设计中选用该芯片作为A/D转换电路的核心。

1.2.1 单片机系统分析1.复位电路单片机在开机时都需要复位,以便中央处理器CPU以及其他功能部件都处于一个确定的初始状态,并从这个状态开始工作。

51的RST引脚是复位信号的输入端。

复位电平是高电平有效,持续时间要有24个时钟周期以上。

本系统中单片机时钟频率为6MHz则复位脉冲至少应为4us。

在MCS-51单片机系列芯片中,用8051或8751芯片可以构成最小系统。

因为8051和8751是片内有ROM/EPROM的单片机,用这种芯片构成的单片及最小系统简单、可靠。

8051构成的最小系统特点:●受集成度所限,只能用于小型控制单元。

●有可供用户使用的大量的I/O口线。

●仅有芯片内部的存储器,故存储器的容量有限。

●8051的应用软件要依靠半导体掩膜技术植入,适于在大批量生产的应用系统中使用。

第二章硬件系统2.1 信号调理电路信号调理的任务将被测对象的输出信号变换成计算机要求的输入信号。

对于多通道数据采集系统的输入通道,设置多路选择开关,可降低硬件开销。

如图2-1所示。

为避免小信号通过模拟开关造成较大的附加误差,在传感器输出信号过小时,每个通道应设前置放大环节(本文可不加以考虑)。

图2-1 信号调理过程2.2 数据采集电路把连续变化量变成离散量的过程称为量化,也可理解为信号的采样。

把以一定时间间隔T 逐点采集连续的模拟信号,并保持一个时间t ,使被采集的信号变成时间上离散、幅值等于采样时刻该信号瞬时值的一组方波序列信号,即采样信号。

2 ADC0809内部功能与引脚介绍分辨率和精度在第一章中已作了相应的计算和分析。

ADC0809八位逐次逼近式A /D 转换器是一种单片CMOS 器件,包括8位模拟转换器、8通道转换开关和与微处理器兼容的控制逻辑。

8路转换开关能直接连通8个单端模拟信号中的任何一个。

其内部结构如图2-2所示。

1.ADC0809主要性能◆ 逐次比较型◆ CMOS 工艺制造◆ 单电源供电◆ 无需零点和满刻度调整◆ 具有三态锁存输出缓冲器,输出与TTL 兼容◆ 易与各种微控制器接口◆ 具有锁存控制的8路模拟开关◆ 分辨率:8位◆ 功耗:15mW◆ 最大不可调误差小于±1LSB (最低有效位)◆ 转换时间(500CLK f KHz =)128us◆ 转换精度:0.4%±◆ ADC0809没有内部时钟,必须由外部提供,其范围为10~1280kHz 。

典型时钟频率为640kHz2.引脚排列及各引脚的功能,引脚排列如图2-3所示。

图2-2 ADC0809内部结构各引脚的功能如下:IN0~IN7:8D0~D7:8位转三态输出,D7是最高位,D0是最低位。

A、B、C:通道CBA=000时,CBA=111时,ALE:地址锁存信号在上升沿处把A、B、C 的状态锁存到内部的多路开关的地址锁存器中,从而选通8路模拟信号中的某一路。

START:启动转换信号输入端。

从START端输入一个正脉冲,其下降沿启动ADC0809开始转换。

脉冲宽度应不小于100~200ns。

EOC:转换结束信号输出端。

启动A/D转换时它自动变为低电平。

OE:输出允许端。

CLK:时钟输入端。

ADC0809的典型时钟频率为640kHz,转换时间约为100μs。

REF(-)、REF(+):参考电压输入端。

ADC0809的参考电压为+5V。

VCC、GND:供电电源端。

ADC0809使用+5V单一电源供电。

当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存,并译码。

在START上升沿时,所有的内部寄存器清零,在下降沿时,开始进行A/D转换,此期间START应保持低电平。

在START下降沿后10us左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,为高电平时,表示转换结束。

OE为低电平时,D0~D7为高阻状态,OE为高电平时,允许转换结果输出。

2.2.3 ADC0809与MCS-51系列单片机的接口方法ADC0809与8051单片机的硬件接口有3种形式,分别是查询方式、中断方式和延时等待方式,本题中选用中断接口方式。

由于ADC0809无片内时钟,时钟信号可由单片机的ALE信号经D触发器二分频后获得。

ALE引脚得脉冲频率是8051时钟频率的1/6。

该题目中单片机时钟频率采用6MHz,则ALE输出的频率是1MHz,二分频后为500Hz,符合ADC0809对频率的要求。

由于ADC0809内部设有地址锁存器,所以通道地址由P0口的低3位直接与ADC0809的A、B、C相连。

通道基本地址为0000H~0007H。

其对应关系如表2-1所示。

表2-1 0809输入通道地址1 0 1 IN51 1 0 IN61 1 1 IN7控制信号:将P2.7作为片选信号,在启动A/D转换时,由单片机的写信号和P2.7控制ADC的地址锁存和启动转换。

由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时也启动转换。

在读取转换结果时,用单片机的读信号RD和P2.7引脚经或非门后,产生正脉冲作为OE信号,用一打开三态输出锁存器。

START信号和OE信号的逻辑表达式为当8051通过对0000H~0007H(基本地址)中的某个口地址进行一次写操作,即可启动相应通道的A/D转换;当转换结束后,ADC0809的EOC端向8051发出中断申请信号;8051通过对0000H~0007H中的某个口地址进行一次读操作,即可得到转换结果。

第3章软件系统ORG 0000hMOV r1,#20h ;取数20h送 r1中MOV r2,#8h ; channel number! ;取数8h送r2中MOV TL0,#0h ;启动 TL0MOV TH0,#0b8h ;设置定时初值THO;MOV tmod,#1h ;选择工作方式1clr et0 ;清零setb tr0 ;启动T0工作MOV scon,#40h ;设置串口工作方式1MOV dptr,#78ffh ;取源数据地址送dptr loop: MOV a,r2 ;将r2中的数据送累加器a中SUBB a,r1 ;将r1中的数据与a中数据进位减法运算jnz loop2 ;结果不为零则转loop2MOV r1,#0h ;对r1清零MOV dptr,#78ffh ;取源数据地址送dptrMOV r1,#0h ;对r1清零MOV dptr,#78ffh ;取源数据地址送dptrloop1: jnb tf0,loop1 ;定时器无溢出则转入loop1clr tf0 ;对tf0清零MOV TL0,#0h ;对tlo清零MOV TH0,#0b8h ;设置定时初值TH0loop2: MOVx @dptr,a ;start A/D ;启动模数转换器loop3: jb p1.0,loop3 ;p1.0为1则转loop3loop4: jnb p1.0,loop4 ;check flag ;p1.0为0则转loop4MOVx a,@dptr ;读取结果MOV @r1,a ;保存结果inc dph ; ;选取下一个inc r1 ;计数器减1ljmp loop ;返回到loopend整个系统软件设计分为两个部分,作为主控的PC端的软件设计及作为数据采集器的单片机终端节点的软件设计。

相关文档
最新文档