杂志信息网-创作、查重、发刊有保障。

基于51单片机的温度检测系统论文

发布时间:2024-07-12 11:15:49

基于51单片机的温度检测系统论文

二系统软件设计图4 系统程序流程图1 系统程序流程图系统程序流程图如图4所示。2 温度部分软件设计DS18B20的一线工作协议流程是:初始化→ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序。故主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表示复位成功。程序主要函数部分如下:(1)初始化函数//读一个字节函数ReadOneChar(void){unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{ DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay(4);}return(dat);}//写一个字节函数WriteOneChar(unsigned char dat){unsigned char i=0;
for (i=8; i>0; i--)
{DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat>>=1;}}(2)读取温度并计算函数ReadTemperature(void){unsigned char a=0;
unsigned char b=0;
unsigned int t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); // 跳过读序号列号的操作
WriteOneChar(0x44); // 启动温度转换
Init_DS18B20();
WriteOneChar(0xCC); //跳过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度
a=ReadOneChar();
b=ReadOneChar();
t=b;
t<<=8;
t=t|a;
tt=t*0625;
t= tt*10+5; //放大10倍输出并四舍五入---此行没用
(3)主程序部分见前
return(t);}三 结束语AT89C2051单片机体积小、重量轻、抗干扰能力强、对环境要求不高、价格低廉、可靠性高、灵活性好。即使是非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠自己的技术力量来开发所希望的单片机应用系统。本文的温度控制系统只是单片机广泛应用于各行各业中的一例,相信读者会依靠自己的聪明才智使单片机的应用更加广泛化。另外对本例子可以作一些扩展,单片机的应用越来越广泛,由于单片机的运算功能较差,往往需要借助计算机系统,因此单片机和PC机进行远程通信更具有实际意义。目前此设计已成功应用于钻井模拟器实验室室温控制。本文作者创新观点:采用的单片机AT89C2051性价比高,而且温度传感器DS18B20转化温度的方法非常简洁且精度高、测试范围较广。参考文献[1]林伸茂8051单片机彻底研究基础篇 北京:人民邮电出版社 2004[2]范风强等单片机语言C51应用实战集锦 北京:电子工业出版社 2005[3]谭浩强C语言程序设计(第二版) 北京:清华大学出版社 1999[4]夏路易等电路原理图与电路板设计教程 北京:北京希望电子出版社 2002[5]赵晶Protel99高级应用 北京:人民邮电出版社 2000[6]聂毅单片机定时器中断时间误差的分析及补偿[J] 微计算机信息 2002,18(4):37~38

基于51单片机的温度测量系统摘 要: 单片机在检测和控制系统中得到广泛的应用, 温度则是系统常需要测量、控制和保持的一个量。本文从硬件和软件两方面介绍了AT89C2051单片机温度控制系统的设计,对硬件原理图和程序框图作了简洁的描述。关键词: 单片机AT89C2051;温度传感器DS18B20;温度;测量引言单片机在电子产品中的应用已经越来越广泛,并且在很多电子产品中也将其用到温度检测和温度控制。为此在本文中作者设计了基于atmel公司的AT89C2051的温度测量系统。这是一种低成本的利用单片机多余I/O口实现的温度检测电路, 该电路非常简单, 易于实现, 并且适用于几乎所有类型的单片机。一系统硬件设计系统的硬件结构如图1所示。1数据采集数据采集电路如图2所示, 由温度传感器DS18B20采集被控对象的实时温度, 提供给AT89C2051的P2口作为数据输入。在本次设计中我们所控的对象为所处室温。当然作为改进我们可以把传感器与电路板分离,由数据线相连进行通讯,便于测量多种对象。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0625℃,被测温度用符号扩展的16位数字量方式串行输出,支持3V~5V的电压范围,使系统设计更灵活、方便;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20使电压、特性有更多的选择,让我们可以构建适合自己的经济的测温系统。如图2所示DS18B20的2脚DQ为数字信号输入/输出端;1脚GND为电源地;3脚VDD为外接供电电源输入端。AT89C2051(以下简称2051)是一枚8051兼容的单片机微控器,与Intel的MCS-51完全兼容,内藏2K的可程序化Flash存储体,内部有128B字节的数据存储器空间,可直接推动LED,与8051完全相同,有15个可程序化的I/O点,分别是P1端口与P3端口(少了P6)。2接口电路图2 单片机2051与温度传感器DS18B20的连接图接口电路由ATMEL公司的2051单片机、ULN2003达林顿芯片、4511BCD译码器、串行EEPROM24C16(保存系统参数)、MAX232、数码管及外围电路构成, 单片机以并行通信方式从P0~P7口输出控制信号,通过4511BCD译码器译码,用2个共阴极LED静态显示温度的十位、个位。串行EEPROM24C16是标准I2C规格且只要两根引脚就能读写。由于单片机2051的P1是一个双向的I/O端口,所以在我们在设计中将P1端口当成输出端口用。由图2可知,P7作为串性的时钟输出信号与24C16的第6脚相接,P6则作为串行数据输出接到24C16的第5脚。P 4和P5则作为两个数码管的位选信号控制,在P4=1时,选中第一个数码管(个位);P5=1时,选中第二个数码管(十位)。P0~P3的输出信号接到译码器4511上作为数码管的显示。此外,由于单片机2051的P3端口有特殊的功能,P0(RXD)串行输入端口,P1(TXD)串行输出端口,P2(INTO)外部中断0,P3(INT1)外部中断1P4,(T0)外部定时/计数输入点,P5(T1)外部定时/计数输入点。由图2可知,P0和P1作为与MAX232串行通信的接口;P2和P3作为中断信号接口;P4和P5作为外部定时/记数输入点。P7作为一个脉冲输出,控制发光二极管的亮灭。由于在电路中采用的共阴极的LED数码管,所以在设计电路时加了一个达林顿电路ULN2003对信号进行放大,产生足够大的电流驱动数码管显示。由于4511只能进行BCD十进制译码,只能译到0至9,所以在这里我们利用4511译码输出我们所需要的温度。3报警电路简介图3 温度在七段数码管上显示连接图本文中所设计的报警电路较为简单,由一个自我震荡型的蜂鸣器(只要在蜂鸣器两端加上超过3V的电压,蜂鸣器就会叫个不停)和一个发光二极管组成(如图3所示)。在这次设计中蜂鸣器是通过ULN2003电流放大IC来控制。在我们所要求的温度达到一定的上界或者下界时(在文中我们设置的上界温度是45℃,下界温度是5℃),报警电路开始工作,主要程序设计如下:main()//主函数{unsigned char i=0;
unsigned int m,n;
while(1)
{i=ReadTemperature();//读温度}if(i>0 && i<=10) //如果温度在0到10度之间直接给七段数码管赋值{P1=designP1[i];}else//如果温度大于10度{m=i%10;//先给第一个七段数码管赋值
D1=1;
D2=0;
P1=designP1[m];
n=i/10;//再给第二个七段数码管赋值
D1=0;
D2=1;
P1=designP1[n];
if(n>=4&&m>=5)%%(m<=5)//判断温度的取值范围,如果大于45或小于5度,则蜂鸣器叫,发光二极管闪烁
{ int a,b;
Q1=1;//蜂鸣器叫
for(a=0;a<1000;a++)//发光二极管闪烁
for(b=0;b<1000;b++)
Q2=1;
for(a=0;a<1000;a++)
for(b=0;b<1000;b++)
Q2=0;}}}

很简单的问题,最好使用18B20来做;使用一个字节保存温度上限,一个字节保存下限。每次测量之后,将测温结果与这两数字做比较就行了。具体的控制量自己根据要求决定。

这是我自己用DS18B20做的温度检测程序,复制给你看看,我这是通过串口可以在电脑上的串口助手上显示出实时的温度:  #include  #include  #define uint unsigned int  #define uchar unsigned char  sbit ds=P1^0;  bit flag;  uchar count_t0;  float f_temp;  void delay(uint z)  {  uint x,y;  for(x=z;x>0;x--)  for(y=122;y>0;y--);  }  void init() // 串口初始化  {  TMOD=0x21;  SCON=0x50;  TH0=0x4c;  TL0=0x00;  TH1=0xf3;  TL1=0xf3;  EA=1;  ET0=1;  TR0=1;  TR1=1;  }  void timer0() interrupt 1  {  TH0=0x4c;  TL0=0x00;  if(++count_t0>=20)  {  count_t0=0;  flag=1;  }  }  void dsreset()  {  uint i;  ds=0;  i=103;  while(i>0)  i--;  ds=1;  i=4;  while(i>0)  i--;  }  bit read_bit()  {  uint i;  bit dat;  ds=0;i++;  ds=1;i++;i++;  dat=ds;  i=8;  while(i>0)  i--;  return dat;  }  uchar read_byte()  {  uchar i,j,dat;  dat=0;  for(i=1;i<=8;i++)  {  j=read_bit();  dat=(j<<7)|(dat>>1);  }  return dat;  }  void write_byte(uchar dat)  {  uint i;  uchar j;  bit testb;  for(j=1;j<=8;j++)  {  testb=dat&0x01;  dat=dat>>1;  if(testb)  {  ds=0;  i++;i++;  ds=1;  i=8;  while(i>0)  i--;  }  else  {  ds=0;  i=8;  while(i>0)  i--;  ds=1;  i++;i++;  }  }  }  void begin_change()  {  dsreset();  delay(1);  write_byte(0xcc);  write_byte(0x44);  }  float get_temp()  {  uchar a,b;  uint temp;  float f_temp;  dsreset();  delay(1);  write_byte(0xcc);  write_byte(0xbe);  a=read_byte();  b=read_byte();  temp=b;  temp<<=8;  temp=temp|a;  f_temp=temp*0625;  temp=f_temp*10+5;  f_temp=f_temp+05;  return f_temp;  }  void main()  {  init();  while(1)  {  if(flag==1)  {  flag=0;  begin_change();  TI=1;  printf("The tempeature is %f/n",get_temp());  while(!TI);  TI=0;  }  }  }

基于单片机的温度控制系统设计论文

你需要我帮忙吗?、、、、、 看我名联系

本科生有啥钱啊,楼上的,这点钱也想赚。。。既然是本科毕业设计,那还是老老实实自己做吧,也算对自己有个交代

用DS18B20测试温度,然后做出相应的控制,也可以报警创新方面可以做多路温度测试和控制吧,加温度显示,用LED数码管或者LCD显示屏

很简单的问题,最好使用18B20来做;使用一个字节保存温度上限,一个字节保存下限。每次测量之后,将测温结果与这两数字做比较就行了。具体的控制量自己根据要求决定。

温度检测与控制系统的论文

锅炉温度控制策略的应用研究 摘要:针对锅炉汽温控制的特点,设计了过热汽温串级模糊控制系统,介绍了系统的构成、原理 及该系统的优越性,并利用MATLAB仿真软件进行了仿真分析。 关键词:汽温;串级模糊控制;系统仿真 0 引言 过热蒸汽温度是衡量锅炉能否正常运行的重要 指标。假如过热蒸汽温度过高,若超过了设备部件 (如过热器管、蒸气管道、阀门、汽轮机的喷嘴、叶片 等)的允许工作温度,将使钢材加速蠕变,从而降低 使用寿命。严重的超温甚至会使管子过热而爆破。 可能造成过热器、蒸汽管道和汽轮机的高压部分损 坏。过热蒸汽温度过低,会引起热耗上升,引起汽轮 机末级蒸汽湿度增加,从而降低汽轮机的内效率,加 剧对叶片的侵蚀。因此在锅炉运行中,必须保持过 热汽温稳定在规定值附近。通常允许变化范围为额 定值±5℃。目前对锅炉过热汽温调节大都采用导 前汽温的微分作为补充信号的系统。其系统原理如 图1所示。 系统针对过热汽温调节对象调节通道惯性延迟 大、被调量反馈慢的特点,从对象调节通道找出一个 比被调量反应快的中间信号θ1作为调节器的补充 信号,以改善对象调节通道的动态特性。动态时调 节器根据θ1的微分和θ2这两个信号而动作。但在 静态时(调节过程结束后)θ1不再变化,则dθ1/dt= 0,这时过热器汽温必然恢复到给定值。实际使用 中,中间信号θ1的引入在一定程度上确实改善了控 制系统的动态特性,但是,影响蒸汽温度的因素很 多,除减温水流量的扰动外,负荷的变化,工况的不 稳定,过剩空气系数等都会导致蒸汽θ2温度发生波 动。这些波动是无法预知的,无法用精确的数学模 型来描述。由于模糊控制不依赖被控对象的精确数 学模型,它主要是根据人的思维方式,总结人的操作 经验,完成控制作用,特别适合于大滞后、时变、非线 性场合,因此该文提出一种锅炉过热气温的串级模 糊控制系统。 1 控制方案的研究设计 串级调节系统是改善大惯性、纯滞后系统调节 质量的最有效方法之一,所以设计的控制方案采用 串级模糊控制,其控制系统如图2所示。 图2中F为减温水流量调节阀。P为副调节 器,采用比例调节;FC为主调节器,采用混合模糊控 制器,即一个二维模糊控制器和常规PI调节器并联 而成,除能够尽快消除副环外的扰动之外还可以校 正汽温偏差,保证汽温控制的精度。 汽温调节对象由减温器和过热器组成,减温水 流量Wj为对象调节通道的输入信号,过热器出口汽 温θ2为输出信号。为了改善调节品质,系统中采用 减温器出口处汽温θ1作为辅助调节信号(称为导前 汽温信号)。当调节机构动作(喷水量变化)后,导 前汽温信号θ1的反应显然要比被调量信号θ2早很 多。由于从调节对象中引出了θ1信号,对象调节通 道的动态特性可以看成由两部分构成:①以减温水 流量Wj作为输入信号,减温器出口处温度θ1作为 输出信号的通道,这部分调节通道称为导前区,传递 函数为G01(s);②以减温器出口处汽温θ1作为输入 信号,过热器出口汽温θ2为输出信号的通道,这部 分调节通道称为惰性区,传递函数为G02(s),显然 导前区G01(s)的延迟和惯性要比惰性区G02(s)小 很多。系统结构如图3所示。 图3中有两个闭合的调节回路:①由对象调节 通道的惰性区G02(s)、副控制器Gc2(s)、副检测变送 器Gm2(s)组成的副调节回路;②由对象调节的导前 区G01(s)、主控制器(PI+混合模糊控制器)、主检 测变送器Gm1(s)以及副调节回路组成的主回路。 引入θ1负反馈而构成的副回路起到了稳定θ1的作 用,从而使过热汽温保持基本不变,因此可以认为副 回路起着粗调过热汽温θ2的作用。而过热汽温的 给定值,主要由主控制器(PI+混合模糊控制器)来 严格保持。只要θ2不等于给定值,主控制器就会不 断改变其输出信号σ2,并通过副调节器去不断改变 减温水流量,直到θ2恢复到等于给定值为止。可 见,主调节器的输出信号σ2相当于副调节器的可变 给定值。稳态时,过热汽温等于给定值,而导前汽温 θ1则不一定等于主调节器输出值σ2。 当扰动发生在副回路内,例如当减温水流量发 生自发性波动(可能是减温水压力或蒸汽压力改 变),由于有副回路的存在,而且导前区的惯性又很 小,副调节器将能及时动作,快速消除其自发性波 动,从而使过热汽温基本不变。当扰动发生在副回 路以外,引起过热汽温偏离给定值时,串级系统首先 由主调节器(PI+混合模糊控制器)迅速改变其输 出校正信号σ2,通过副调节回路去改变减温水流 量,使过热汽温恢复到给定值。由于主调节器(PI+ 混合模糊控制器)的惯性迟延小,故反应迅速。 因此在串级模糊蒸汽温度控制系统中,副回路 的任务是尽快消除减温水流量的自发性扰动和其他 进入副回路的各种扰动,对过热汽温的稳定起粗调 作用。主调节器的任务是保持过热汽温等于给定 值。系统在主控制器的设计上将模糊控制与常规的 PI调节器相结合,使控制系统既具有模糊控制响应 快、适应性强的优点,又具有PI控制精度高的特点。 2 模糊控制器的设计 模糊控制是一种基于规则的控制,在设计中不 需要建立被控对象的精确的数学模型。 1 模糊控制器的结构设计 该系统以过热蒸汽的实际温度T与设定值Td 之间的误差E=Td-T和误差变化DE作为输入语 言变量,系统控制值U为输出语言变量,构成一个 二维模糊控制器。其结构如图4所示。 Ku为模糊控制器比例因子,Ke,Kec为量化因子。 Ke:在输入量化等级确定之后,算法中改变误差 输入论域大小即改变了Ke的值,Ke增大,相当于缩 小误差的基本论域,起增大误差变量的控制作用。 若Ke选择较大,则上升时间变短,但会使系统产生 较大超调,从而过渡过程变长;Ke很小,则系统上升 较慢,快速性差。同时它还直接影响模糊控制系统 的稳态品质。 Kec:Kec选择较大时,超调量减小,但系统的响应 速度变慢,Kec对超调的抑制作用十分明显。但在 Ke,Kec和Ku中,系统对Kec的变化最不敏感,一般Kec 可调整范围较宽,其鲁棒性较好,给实际调试带来很 大方便。 Ku:比例因子Ku实质上是模糊控制器总的增益, 它的大小对系统输出的影响较大。Ku增大,系统超 调量随之增大,动态过程加快;反之,Ku减小,系统超 调量减小,动态过程变慢;Ku选择过大将会导致系统 震荡。由于Ku的敏感性,故可调范围较小。 模糊控制器可调参数Ke,Kec和Ku对系统性能 的影响各不相同,改变这3个参数可使控制器适用 于不同系统的性能要求。 2 模糊概念的确定及模糊化过程 对输入变量E进行模糊化,选择语言集为{负 大(NB),负中(NM),负小(NS),零(ZE),正小 (PS),正中(PM),正大(PB)},模糊论域选择如下 [-n,-n-1,…,-1,0,1,…, n-1, n],E的实际 变化范围为[-x,x],则量化因子为Ke=n /x。对偏 差变化率DE进行模糊化,选择合适的模糊论域和 偏差变化率范围,同理可以计算出相应的模糊量化 因子Kec,在这里为了方便起见,选择偏差e、偏差变 化率DE具有相同模糊论域。 对于输出量U,调节范围为[-R,R],语言集为 {负大(NB),负中(NM),负小(NS),零(ZE),正小 (PS),正中(PM),正大(PB)},模糊论域选择为[- m,-m-1,…,-1,0,1,…,m-1,m ],输出比例 因子为Ku=R /m。 在设计过程中,选取各变量的模糊论域,E= {-3,-2,-1,0,1,2,3};DE={-3,-2,-1,0,1, 2,3};U={-3,-2,-1,0,1,2,3},输入量E,DE 及输出量U模糊集的隶属函数选择为三角形,如图 5所示。 3 模糊规则的确定 模糊决策一般都采用“选择从属度大”的规则, 在过热蒸汽温度调节过程中,当系统的偏差较大时, 系统的快速性为主要矛盾,系统的稳定性控制精度 却是次要的,这时应使系统快速减小偏差;而当系统 偏差较小时,则要求以保证系统的稳定性及控制精 度为主。因而模糊控制规律应遵循:过热汽温上升 速度快,汽温偏高,则汽温的控制量应向下浮动;过 热汽温下降速度快,汽温偏低,则汽温的控制量应向 上浮动。因此采用的模糊控制器的模糊控制规则具 有以下的形式: if {E=AiandDE=Bi}thenU=Ci, i=1, 2,,n 其中Ai, Bi以及Ci分别为E, EC、和U的模糊子 集。控制规则的多少可视输入输出物理量数目及所 需的控制精度而定。由于模糊控制器采用两个输入 E, EC,每个输入分为7级共有49条规则。 按模糊数学推理法则选则表1所示控制规则。 4 逆模糊化过程 文中采用的模糊推理方式是常用的Mamdani 的Min-Max-COA法,即前项取小,多规则取大合 成结论,然后取重心得出非模糊化结论的算法。在 上述规则中,Ai,Bi, Ci分别为论域E,DE,U的模糊 子集,根据上述规则可推出模糊关系Ri=ExDE,这 里采用的最小运算规则,在按最大—最小合成(max -min composition)推理算法求得控制器输出的模糊 子集为U=(ExDE)·Ri,其中“·”为合成运算,非 模糊化后的结论即为输出U的修正值。逆模糊化 方法采用重心平均法(centroid of area)。 3 系统仿真 为了说明串级模糊控制系统在锅炉过热蒸汽温 度的控制上有更好的调节效果,分别搭建具有导前 微分信号控制系统和串级模糊控制系统的仿真框 图。在保持相同输入信号条件下设置两系统被控对 象为相同的参数,以利于比较。 考虑到在实际应用中,各种随机扰动的影响及 过程的复杂性,被控对象有着大惯性、纯滞后的特 性,设系统的主副被控对象的数学模型分别为: 两系统仿真方框图搭建分别如图6、图7所示; 过热汽温响应曲线分别如图8、图9所示。 从仿真曲线可以很清楚的看到:串级模糊控制 系统应用在锅炉过热蒸汽温度控制上能够获得比具 有导前微分信号控制系统更好的调节效果。具有导 前微分信号的控制系统仿真曲线有振荡,有超调,动 态过渡时间长,误差大。而串级模糊控制系统仿真 曲线基本无振荡,无超调,动态过渡时间短,误差小, 有较好的控制品质。 根据现场锅炉运行情况,为了能 更好地说明问题,在保持两个系统中 各调节器、控制器参数不变的情况下, 同时改变两个系统的被控对象的参 数。 W02=e-5s12s+1 观察仿真曲线,如图10、图11所 示。 由于被控对象在电厂中各种设备复杂的运行环 境下,一直处于波动状态,改变主被控对象参数后而 其他参数保持不变时,具有导前微分信号的控制系

本科生有啥钱啊,楼上的,这点钱也想赚。。。既然是本科毕业设计,那还是老老实实自己做吧,也算对自己有个交代

很简单的问题,最好使用18B20来做;使用一个字节保存温度上限,一个字节保存下限。每次测量之后,将测温结果与这两数字做比较就行了。具体的控制量自己根据要求决定。

51单片机论文

8、 基于单片机的数字温度计的设计最简单 驱动DS18B02就能实现

6、 基于单片机的超声波测距仪的设计11、 定时闹铃的设计与实现

LED显示器是用发光二极管构成的显示器。构成方式有两大类:一是笔段字符式,一般又有三种:7段(/8段)数码管、15段(/17段)数码管和6段符号显示器;二是点阵字符式,一般有5×7、5×8、8×8和16×16等若干种点阵结构。为了适应不同电路的需要,根据构成LED显示器的发光二极管公共极的极性,有共阴极和共阳极两种形式。对共阴极数码管,公共阴极接地,当各段阳极上的电平为高电平时,该段接通亮,电平为0时,该段关断不亮。对共阳极数码管则刚好相反,高电平时不亮,低电平时亮。这种器件根据显示数位分类,可以分为一位、双位和多位LED显示器,一位LED显示器就称作LED数码管,两位以上的一般就称作LED显示器。 要实现LED的汉字显示在进行、列的扫描的同时还要对其进行供电,因为每行16个二极管点亮电流很大,普通芯片的输出电流远不能满足。下面为你提供实例参考 以16×16显示器为例,你可以用并行扩展芯片8255实现点阵的行扫描,8255可以将单片机一个8位并行I/O口扩展成16位(8255的PA口、PB口同时使用);列扫描的16位可以用两个TTL门74LS164(8位移位寄存器),74LS164再接ULN2803以对电流放大后再接16×16点阵。74LS164的移位触发端A、B可以接上一片的相邻输出端,Q1或Q7这样实现能实现多个芯片连续移位,以实现显示屏汉字从右到左或从左到右的移动显示功能。 由于百度知道不能插入图片,所以不提供图片了,将具体引脚接法告诉你:8255的D0--D7数据输入端接单片机P0--P7(任一并行I/O口),A0接P0,A1接P1,/WR接单片机的/WR,/RD接高电平,如果单片机资源足够,则片选端/CS接低电平;74LS164芯片的触发端A、B接到一起,与CK脚、CLK脚、随意接到单片机的I/O上。

建议你去"幸福校园"看看 里面有些样子 你可以参考 前言传统的数字频率计都是采用纯硬件方式组成(纯数字电路)。它的集成电路(IC)用量较大,因而产品的体积、功耗都较大,生产成本较高。产品定型后不能升级(加入新功能)。而采用单片机和相关可编程智能集成器件制成的现代数字频率计方式情况就不同了,单片机的内核CPU可完成多项工作如计数、读入、译码、驱动和时基的产生等。和纯硬件方式比,它减少了很大一部分的集成电路的用量,还可加入许多的智能操作,这更是纯硬件方式所望尘莫及的。目前市场上的频率计产品很多,但基本上都是采用专用计数芯片(如ICM7240 , ICM7216) 和数字逻辑电路组成,由于这些芯片本身的工作频率不高(如ICM7240 仅有15MHz 左右) ,从而限制了产品的工作频率的提高, 远不能达到在一些特殊的场合需要测量很高的频率的要求,而且测量精度也受到芯片本身极大的限制。自从80年代单片机引入我国之后,单片机已广泛地应用于各行各业的电子设计中,使频率计智能化水平在广度和深度上产生了质的飞跃,数字化也成为了电子设计的必由之路 运用单片机和高速计数器的组合设计频率计,并采用适当的算法取代传统电路,次方法不仅能解决传统频率计结构复杂、稳定性差、精度不高的弊端,而且性能也将大有提高,可实现精度较高、等精度和宽范围频率计的要求;随着单片机技术的不断发展,可以用单片机通过软件设计直接用十进制数字显示被测信号频率。本设计正是基于此技术进行的传统频率计技术改进。

基于单片机的系统设计论文

必须要有实物啊,理论的东西都是要靠实物来验证的啊。温度控制系统不难吧,学过电子、单片机的都很轻松的,同学看来你大学过得还挺滋润的啊。去文库看看,基本都会有资料参考的。知识要点:1,AD采样,也就是温度的数据采集。2,中断,采集数据后比较,做相应的处理。

用DS18B20测试温度,然后做出相应的控制,也可以报警创新方面可以做多路温度测试和控制吧,加温度显示,用LED数码管或者LCD显示屏

只要论文吗设计要吗我是做单片机的

这些方向都可以些,但是plc也可以你觉得如

相关百科