温度测量及显示报告(2)

2018-12-29 22:52

当PWM1端输入波形而PWM2端置为低电平时,Q14,Q15导通,此时电机逆时针旋转,当PWM2端输入波形而PWM1端置为低电平时,Q13,Q16导通,此时电机顺时针旋转,此时只要将PWM1和PWM2两端接在单片机的I/O口上,可以很容易的实现控制,硬件整体电路如下:

上图中按键用于调节波形输出的占空比和切换正反转,通过H桥驱动直流电机,二极管用于续流,防止直流电机产生的电势将三极管击穿损坏。

2、温度测量及显示(LCD)

硬件整体电路图如下:

通过DS18B20测量温度,然后经过单片机的处理以后再通过LCD1602显示出来,电路图中的滑动变阻器用于调节LCD显示的对比度,发光二级管用于显示单片机当前处于工作状态,由后面的程序可以看出,发光二级管闪烁的时间间隔正好是读一次温度并且显示的时间,当然显示后有100微秒的延时。

三、软件设计

1、直流电机正反转及调速

直流电机正反转调速,软件设计的思想是利用单片机的外部中断0来变更标志位,从而实现正反转的控制,通过设置基本的定时时间来调节占空比,即首先设置一个单位时间,然后通过计数的方式来确定高电平的时间和低电平的时间,这样,输出波形不但频率可调,而且占空比也可调。具体实现如下:

#include unsigned char a=5;

unsigned char b=5; unsigned char AA=5; unsigned char BB=5; sfr p2=0xa0; sfr p1=0x90; sbit p2_0=p2^0;

sbit p2_1=p2^1; sbit p1_0=p1^0; sbit p1_1=p1^1; sbit p1_2=p1^2; sbit p1_3=p1^3; bit flag1=0;

void saomiao()

{ if(p1_0==0) {a++;} else if(p1_1==0) { b++;} else if(p1_2==0)

{a--; }

else if(p1_3==0) {b--; } AA=a;

BB=b;

}

void int_r() interrupt 0 {flag1=!flag1; } void init(void)

//将地址定义等申明包含进来 //定义变量

//特殊功能寄存器绝对地址定义 //同上

//特殊功能寄存器位定义

//定义位变量为标志位 //按键扫描子程序

//按键按下,则高电平持续时间增加

//按键按下,则低电平持续时间增加

//按键按下,则高电平持续时间减少 //按键按下,则低电平持续时间减少

//外部中断0服务程序,中断号为0 //变更标志位,实现正反转切换

//程序的初始化

{ }

void main() {

init(); while(1) {

while(TF1==0); if(flag1==0) {

if(p2_0==1)

{

AA--; TF1=0;

//标志位清零

//等待定时时间到 //判断标志位

//调用初始化程序

EA=1;

//开总中断 //开外部中断

//中断方式置为边沿触发方式 //定时器1工作方式1 //计数初值高位,计时0.5ms //计数初值低位,计时0.5ms //启动定时器 //端口初始化 //端口初始化

EX0=1; IT0=1;

TMOD=0x10; TH1=0xFE; TL1=0x0C; TR1=1; p2_0=0; p2_1=0;

TH1=0xFE; //重新赋初值 TL1=0x0C; if(AA==0) {

p2_0=0; p2_1=0;

//取反 //其他位为零

//看高电平持续时间有没有到

saomiao(); }

}

else if(p2_0==0) { BB--; TF1=0; TH1=0xFE; TL1=0x0C; if(BB==0) { p2_0=1; p2_1=0; saomiao();

}

}

}

else if(flag1==1)

{

if(p2_1==1) { AA--; TF1=0; TH1=0xFE; TL1=0x0C; if(AA==0) {

p2_0=0;

//扫描看有没有按键按下

//取反 //其他位为零

//扫描看有没有按键按下

//判断标志位

//其他位为零


温度测量及显示报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:17春西南交《应用写作》在线作业一

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: