51编程

本文介绍了一个基于51单片机的模拟风扇控制系统设计,包括三种工作模式(睡眠风、自然风、常风)的实现,通过按键控制风扇转动速度和定时时间,数码管实时显示工作模式和倒计时。设计中使用了PWM控制电机转速,LED指示灯显示当前模式,同时要求学生在一周内完成程序编写,并在开学后用DS18B20传感器进行验证并撰写实验报告。
摘要由CSDN通过智能技术生成

2019级《单片机系统设计》作业

请使用课程中的单片机开发板,完成以下项目编程,具体要求如下:
1、 功能描述
“模拟风扇控制系统”能够模拟电风扇工作,通过按键控制风扇的转动速度和定时时间,数码管实时显示风扇的工作模式,动态倒计时显示剩余的定时时间,系统主要由数码管显示、单片机最小系统、按键输入和电机控制保护电路组成,系统框图如图1 所示:

2、 设计任务及要求
(1)工作模式
设备具有“睡眠风”、“自然风”和“常风”三种工作模式可以通过按键切换,通过单片机P34 引脚输出脉宽调制信号控制电机运行状态,信号频率为1KHz。
1.1 “睡眠风”模式下,对应PWM 占空比为20%;
1.2 “自然风”模式下,对应PWM 占空比为30%;
1.3 “常风”模式下,对应PWM 占空比为70%;
(2)数码管显示
数码管实时显示设备当前工作模式和剩余工作时间(倒计时),如图2 所示。

(3)按键控制

(4)LED 指示灯
“睡眠风”模式下,L1 点亮,“自然风”模式下L2 点亮,“常风”模式下L3 点亮;
按下停止按键或倒计时结束时,LED 全部熄灭。

注释:
(1) 自学DS18B20课程视频,掌握工作原理及编程方法;
(2) PWM输出可以接到某颗LED灯上,使用LED灯的亮度示意电机转速;
(3) 一周内完成程序的编写,留存源文件。
(4) 开学后发放DS18B20传感器,验证现象,并撰写实验报告。该任务作为结课作业给课程成绩。

子模块

sbit DQ = P3^7;

void DS18_delay(int useconds)
{
int s;
for (s=0; s<useconds;s++);
}

void write_bit(char bitval)
{
DQ = 0;
if(bitval==1) DQ =1;
ET0=0;
DS18_delay(5);
ET0=1;

DQ = 1; 	       

}

void ds18write_byte(char val)
{
unsigned char i;
unsigned char temp;
for (i=0; i<8; i++)
{
temp = val>>i;
temp &= 0x01;
write_bit(temp);
}
ET0=0;
DS18_delay(5);
ET0=1;

}

unsigned char read_bit(void)
{
unsigned char i;
DQ = 0;
DQ = 1; <

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值