第一范文网 - 专业文章范例文档资料分享平台

单片微型计算机原理与接口技术课程设计报告 - 温度测量

来源:用户分享 时间:2025/7/29 14:48:33 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

本系统设计三个按键,采用查询方式,一个用于选择切换设置温度上下限和当前温度,另外两个分别用于设置报警温度的加和减。均采用软件消抖。

图3.4按键电路

3.5步进电机

3.5.1步进电机驱动电路

本设计选用驱动芯片ULN2003驱动四相步进电机。

ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。ULN2003 的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和 CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。

ULN2003 工作电压高,工作电流大,灌电流可达 500mA,并且能够在关态时承受 50V 的电压,输出还可以在高负载电流并行运行。

图3.5.2.1 ULN2003方框图

表3.5.2 ULN2003极限值参数

ULN2003

与单片机连接驱动步进电机原理图如下:

图3.5.2.2步进电机驱动电路

3.6双机通信

利用单片机串行口实现两个单片机(主机、从机)之间的通信,其中

一个单片机作为主机(发送方),另一个为从机(接收方),主机读入按键值并将相应命令发送给从机,从机收到命令后执行相应的功能。双机通信示意图如下:

TXD RXD GND RXD TXD GND AT89C51 AT89C51 图3.6双机通信示意图

4、软件清单

系统程序主要包括主程序和通信程序。

其中主程序包括延时函数、扫描显示函数、DS18B20 复位函数、DS18B20 写命令函数、DS18B20 读1 字节函数、读出温度函数、温度数据处理函数、报警函数、步进电机函数、设置温度显示转换函数、按键查询程序、主函数。

通信上位机程序包括延时函数、扫描显示函数、初始化函数、按键查询程序、主函数。下位机函数包括初始化、接收程序、主函数。 上位机软件清单:

#include \

#include \//_nop_();延时函数用

#define dm P0 //段码输出口 #define uchar unsigned char #define uint unsigned int uint h;

sbit w0=P2^0; //数码管4

sbit w1=P2^1; //数码管3 sbit w2=P2^2; //数码管2 sbit w3=P2^3; //数码管1 sbit aa=P1^0; sbit bb=P1^1; sbit cc=P1^2;

uchar idata buf[1];

uchar code table_dm[15]=

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40,0x38,0x76,0x39};

//共阴LED 段码表\\\\\\不亮%uchar data display[4]={0x00,0x00,0x00,0x00}; //显示单元数据,共4 个数据和一个运算暂用

/******11us 延时函数*******/ void delay(uint t) {

for (;t>0;t--); }

/************scan*************/ void scan() { int j;

for(j=0;j<4;j++) {

switch (j) { case 0: dm=table_dm[display[0]];w0=0;delay(50);w0=1; case 1: dm=table_dm[display[1]];w1=0;delay(50);w1=1; case 2: dm=table_dm[display[2]];w2=0;delay(50);w2=1; case 3: dm=table_dm[display[3]];w3=0;delay(50);w3=1; } } }

/**********初始化函数***********/ void init() {

TMOD=0x20; TH1=0xfd; TL1=0xfd; PCON=0x00; TR1=1;

SCON=0x50; }

/*************keyscan***********/ void keyscan() {

if (aa==0) {

SBUF=0x06;

do{} while(TI==0);TI=0; }

else if (bb==0) {

SBUF=0xaa;

do{} while(TI==0);TI=0; }

else if(cc==0) {SBUF=0x55; display[3]=0x0d; display[2]=0x0d; display[1]=0x0d; display[0]=0x0d;

do{} while(TI==0);TI=0; } else ; }

/************main***************/ void main() { init();

dm=0x00; //初始化端口 w0=0; w1=0; w2=0; w3=0;

for(h=0;h<4;h++) //开机显示\{

display[h]=0; }

while(1) {

scan();

单片微型计算机原理与接口技术课程设计报告 - 温度测量.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c507lo53iyr0h1ll01eyq0a6ri16ozy014ej_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top