基于51单片机数字温度计设计课程设计


    





    课 题: 基51单片机数字温度计设计
    专 业: 电子信息工程
    班 级: 班
    学 号:
    姓 名:
    指导教师:
    设计日期:
    成 绩:

    XX学XX学院电气学院



    基51单片机数字温度计设计
    设计目
    1掌握单片机电路设计原理组装调试方法
    2掌握LED数码显示电路设计方法
    3掌握DS18B20温度传感器工作原理方法
    二设计求
    1次单片机课程设计求51系列单片机核心开发板台
    2设计数字式温度计求DS18B20温度传感器测量温度
    3单片机处理求4位体阴LED数码设计显示电路显示测量温度值
    4外求设计中加入报警系统果设计系统监控某设备设备温度超低设定温度值时系统会产生报警
    5求设计中加入限警报温度设置电路
    三 设计具体实现
    1数字温度计设计方案
    做数字温度计单片机电路中信号采集电路传感器非常容易实现采温度传感器DS18B20传感器容易直接读取测温度值进行转换满足设计求采集通51系列单片机数进行相应处理LED显示电路数进行显示
    2系统设计框图
    温度计电路设计总体设计方框图图示控制器采单片机AT89C51温度传感器采DS18B204位体阴LED数码串口传送数实现温度显示外添加报警系统温度实施监控

    3控器AT89C51芯片
    单片机选择考虑80318051系列8031没部RAM系统需量存存储数适AT89C51 低价位单片机提供许高性价应场合灵活应种控制领域简单测温系统已足够单片机AT89C51具低电压供电体积等特点四端口需两口满足电路系统设计需该器件INTEL公司生产MCS5l系列单片机中基础产品采CMOS工艺制造技术具高性8位单片机属标准MCS—51CMOS产品
    AT8951脚图示:

    AT89C51芯片脚图
    4时钟电路
    80C51时钟两种方式产生部方式外部方式80C51中构成部震荡器高增益反放器引脚XTAL1XTAL2分该放器输入端输出端次采部震荡电路瓷片电容采22PF晶振12MHZ

    晶体震荡电路图

    5 复位电路
    单片机系统复位电路里采电+钮复位电路形式中电阻R采10KΩ阻值 电容采10μF电容值

    复位电路
    6 温度传感电路
    DALLAS 新单线数字温度传感器DS18B20种新型线器件体积更更适种场合适电压更宽更济DALLAS 半导体公司数字化温度传感器DS18B20世界第片支持线总线接口温度传感器温度测量范围55~+125 摄氏度编程9位~12 位转换精度测温分辨率达00625摄氏度分辨率设定参数户设定报警温度存储EEPROM 中掉电然保存测温度符号扩展16位数字量方式串行输出
    DS18B20部结构四部分组成:64位光刻ROM温度传感器非挥发温度报警触发器THTL配置寄存器DS18B20脚排列种封装形式DQ 数输入输出引脚开漏单总线接口引脚着寄生电源器件提供电源GND信号VDD选择VDD引脚工作寄生电源时引脚必须接图示

    DS18B20脚图
    7 显示电路
    数字温度显示采4位体阴LED数码足够显示0~100中位数显示位数部分

    4位LED数码显示
    8 温度报警电路
    数字温度计设计温度数字显示功外加入报警系统测量温度超低设定温度值时系统会产生报警亮红灯报警
    电路图示

    蜂鸣器红灯报警系统电路图

    源程序:
    ********************************************************************
    * 程序名 基51单片机温度计
    * 功 : 实时测量温度超限报警报警温度手动调整K1
    * 进入限调节模式K1进入限调节模式进入限
    * 调节模式正常模式K2进入查限温度模式显示1s左右动
    * 退出K3进入查限温度模式显示1s左右动退出K4消
    * 键音启动键音调节限温度模式K2实现加1功
    * K1实现减1功K3设定限温度正负
    *********************************************************************
    #include
    #includeintrinsh头文件包含程序(调中_nop_()空操作函数延时)
    #define uint unsigned int
    #define uchar unsigned char
    uchar max0x00min0x00 max限报警温度min限报警温度
    bit s0 s调整限温度时温度闪烁标志位s0显示200mss1显示1s左右
    bit s10 s1标志位限查时显示
    void display1(uint z)
    #includeds18b20h
    #includekeyscanh
    #includedisplayh
    ******************************************************
    * 函数
    *****************************************************
    void main()
    {
    beer1 关闭蜂鸣器
    led1 关闭LED灯
    timer1_init(0) 初始化定时器1(未启动定时器1)
    get_temperature(1) 首次启动DS18B20获取温度(DS18B20电动EEPROM中限温度复制THTL寄存器)
    while(1)
    {
    keyscan()
    get_temperature(0)
    display(temptemp_d*0625)
    alarm()
    }
    }
    **********************************************************************
    * 程序名 ds18b20数码动态显示头文件
    * 功 : 通定时器0延时数码动态显示
    **********************************************************************
    #ifndef __ds18b20_display_H__
    #define __ds18b20_display_H__
    #define uint unsigned int 变量类型宏定义uint表示符号整形(16位)
    #define uchar unsigned char 变量类型宏定义uchar表示符号字符型(8位)
    sbit wei1P2^4 位寻址变量定义wei1表示P24口
    sbit wei2P2^5 wei2表示P25口
    sbit wei3P2^6 wei3表示P26口
    sbit wei4P2^7 wei4表示P27口
    uchar num0 定义num全局符号字符型变量赋初值0’
    uchar code temperature1[]{ 0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f} 定义显示码表0~9
    uchar code temperature2[]{ 0xbf0x860xdb0xcf0xe60xed0xfd0x870xff0xef} 带数点0~9
    uchar code temperature3[]{ 0x000x800x400x760x38}次显示’’’H’L’
    ******************************************************
    延时子函数
    *****************************************************
    void display_delay(uint t) 延时1ms左右
    {
    uint ij
    for(iti>0i)
    for(j120j>0j)
    }
    ******************************************************
    * 定时器1初始化函数
    *****************************************************
    void timer1_init(bit t)
    {
    TMOD0x10
    TH00x3c
    TL00xb0
    EA1
    ET11
    TR1t 局部变量t1启动定时器10关闭定时器1
    }
    ******************************************************
    * 定时器1中断函数
    *****************************************************
    void timer1() interrupt 3
    {
    TH00x3c 重新赋初值定时50ms
    TL00xb0
    num++ 进入次定时器中断num加1(50ms加1次)
    if(num<5)
    {s1if(w1){beer1led1}else{beer1led1}}
    else 进入4次中断定时200ms时报警标志位w1’启动报警1’启动
    实现间歇性报警功
    {s0if(w1){beer0led0}else{beer1led1}}
    if(num>20) 进入20次中断定时1s
    {
    num0 num0重新定开始定时1s
    s10 定时1s时间时动关闭报警限显示功
    v11 定时1s时间时动关闭报警限查功
    }
    }
    ******************************************************
    * 调整报警限选择函数
    *****************************************************
    void selsct_1(uchar fuchar k) 消百位0显示正负温度显示选择
    {
    if(f0) 正温度百位0显示百位0显示
    {
    if(k1000) P0temperature3[0]
    else P0temperature1[k100]
    }
    if(f1) 负温度十位0百位显示否百位显示’
    {
    if(k100100) P0temperature3[0]
    else P0temperature3[2]
    }
    }
    void selsct_2(bit fuchar k) 消十位0显示正负温度显示选择
    {
    if(f0) 正温度百位十位均0显示十位否显示十位
    {
    if((k1000)&&(k100100))
    P0temperature3[0]
    else P0temperature1[k10010]
    }
    if(f1) 负温度十位0十位显示否十位显示’
    {
    if(k100100) P0temperature3[2]
    else P0temperature1[k10010]
    }
    }
    ******************************************************
    * 函数显示
    *****************************************************
    void display(uchar tuchar t_d) 实测温度限温度显示
    {
    uchar i
    for(i0i<4i++) 次左右选通数码显示实现动态显示
    {
    switch(i)
    {
    case 0 选通第数码
    wei21 关第二数码
    wei31 关第三数码
    wei41 关第四数码
    wei10 开第数码
    if(a0){selsct_1(ft)} a0第数码显示测量温度百位’
    if(a1)
    {
    P0temperature3[3] a1第数码显示H’
    }
    if(a2)
    {
    P0temperature3[4] a2第数码显示L’
    }
    break
    case 1 选通第二数码
    wei11
    wei31
    wei41
    wei20
    if(a0){selsct_2(ft)} a0第二数码显示测量温度十位’
    if(a1) a1第二数码显示限报警温度百位’
    {
    if(s0) selsct_1(f_maxmax)s0显示第二数码否显示
    else P0temperature3[0] 通s标志位变化实现调节限报警温度时数码闪烁
    if(s11) selsct_1(f_maxmax)s11显示第二数码(s1标志位限查时显示)
    }
    if(a2) a2第二数码显示限报警温度百位’
    {
    if(s0) selsct_1(f_minmin)
    else P0temperature3[0]
    if(s11) selsct_1(f_minmin)
    }
    break
    case 2 选通第三数码
    wei11
    wei21
    wei41
    wei30
    if(a0){P0temperature2[t10]}a0第三数码显示测量温度位
    if(a1) a1第三数码显示限报警温度十位’
    {
    if(s0) selsct_2(f_maxmax)s0显示第三数码否显示
    else P0temperature3[0]
    if(s11) selsct_2(f_maxmax)s11显示第三数码
    }
    if(a2) a2第三数码显示限报警温度十位’
    {
    if(s0) selsct_2(f_minmin)
    else P0temperature3[0]
    if(s11) selsct_2(f_minmin)
    }
    break
    case 3 选通第四数码
    wei11
    wei21
    wei31
    wei40
    if(a0){P0temperature1[t_d]}a0第四数码显示测量温度数位
    if(a1) a1第四数码显示限报警温度位
    {
    if(s0) P0temperature1[max10]s0显示第四数码否显示
    else P0temperature3[0]
    if(s11) P0temperature1[max10]s11显示第四数码
    }
    if(a2) a2第四数码显示限报警温度位
    {
    if(s0) P0temperature1[min10]
    else P0temperature3[0]
    if(s11) P0temperature1[min10]
    }
    break
    }
    display_delay(10) 数码显示3ms左右
    }

    }
    ******************************************************
    * 开机显示函数
    *****************************************************
    void display1(uint z) 开机动画显示
    {
    uchar ij
    bit f0
    for(i0i {
    for(j0j<4j++) 次左右显示’
    {
    switch(j)
    {
    case 0
    wei21
    wei31
    wei41
    wei10 break
    P0temperature3[2]第数码显示
    case 1
    wei11
    wei31
    wei41
    wei20break
    P0temperature3[2]第二数码显示
    case 2
    wei11
    wei21
    wei41
    wei30break
    P0temperature3[2]第三数码显示
    case 3
    wei11
    wei21
    wei31
    wei40break
    P0temperature3[2]第四数码显示
    }
    display_delay(400) 数码显示200ms左右
    }
    }
    }
    #endif
    ********************************************************************
    * 程序名 DS18B20头文件
    * 说 明:全局变量:符号字符型变量temp(测温度整数部分)temp_d
    * (测温度数部分)标志位f(测量温度标志位0’表示正温度1’表
    * 示负温度)标志位f_max(限温度标志位0’表示正温度1’表
    * 示负温度)标志位f_min(限温度标志位0’表示正温度1’表
    * 示负温度)标志位w(报警标志位1’启动报警0’关闭报警)
    *********************************************************************
    #ifndef __ds18b20_h__ 定义头文件
    #define __ds18b20_h__
    #define uint unsigned int
    #define uchar unsigned char
    sbit DQ P2^3 DS18B20接口
    sbit beerP1^0 beer表示P10
    sbit ledP1^1 led表示P11
    uchar temp0 测量温度整数部分
    uchar temp_d0 测量温度数部分
    bit f0 测量温度标志位0’表示正温度 1’表示负温度)
    bit f_max0 限温度标志位0’表示正温度 1’表示负温度)
    bit f_min0 限温度标志位0’表示正温度1’表示负温度)
    bit w0 报警标志位1’启动报警0’关闭报警
    ******************************************************
    * 延时子函数
    *****************************************************
    void ds18b20_delayus(uint t) 延时μs
    {
    while(t)
    }
    void ds18b20_delayms(uint t) 延时1ms左右
    {
    uint ij
    for(iti>0i)
    for(j120j>0j)
    }
    ******************************************************
    * DS18B20初始化函数
    *****************************************************
    void ds18b20_init()
    {
    uchar c0
    DQ1
    DQ0 控制器DS18B20发低电脉
    ds18b20_delayus(80) 延时1580μs
    DQ1 控制器拉高总线
    while(DQ) 等DS18B20拉低总线60240μs间
    ds18b20_delayus(150) 延时等拉电阻拉高总线
    DQ1 拉高数线准备数传输
    }
    ******************************************************
    * DS18B20字节读函数
    *****************************************************
    uchar ds18b20_read()
    {
    uchar i
    uchar d0
    DQ 1 准备读
    for(i8i>0i)
    {
    d >> 1 低位先发
    DQ 0
    _nop_()
    _nop_()
    DQ 1 必须写1否读出预期数
    if(DQ) 12us处读取数
    d | 0x80
    ds18b20_delayus(10)
    }
    return d 返回读取值
    }
    ******************************************************
    * DS18B20字节写函数
    *****************************************************
    void ds18b20_write(uchar d)
    {
    uchar i
    for(i8i>0i)
    {
    DQ0
    DQd&0x01
    ds18b20_delayus(5)
    DQ1
    d >> 1
    }
    }
    ******************************************************
    * 获取温度函数
    *****************************************************
    void get_temperature(bit flag)
    {
    uchar a0b0c0d0
    uint i
    ds18b20_init()
    ds18b20_write(0xcc) DS18B20发跳读ROM命令
    ds18b20_write(0x44) 写启动DS18B20进行温度转换命令转换结果存入部RAM
    if(flag1)
    {
    display1(1) 开机动画耗时
    }
    else
    ds18b20_delayms(1)
    ds18b20_init()
    ds18b20_write(0xcc)
    ds18b20_write(0xbe)
    ads18b20_read() 读部RAM (LSB)
    bds18b20_read() 读部RAM (MSB)
    if(flag1) 局部位变量f1时读线报警温度
    {
    maxds18b20_read() 读部RAM (TH)
    minds18b20_read() 读部RAM (Tl)

    }
    if((max&0x80)0x80) 读取限温度高位(符号位)1’表明负温度
    {f_max1max(max0x80)} 限温度符号标志位置1’表示负温度限温度装换成符号数
    if((min&0x80)0x80)读取限温度高位(符号位)1’表明负温度
    {f_min1min(min0x80)} 限温度符号标志位置1’表示负温度限温度装换成符号数
    ib
    i>>4
    if (i0)
    {
    f0 i0正温度设立正温度标记
    temp((a>>4)|(b<<4)) 整数部分
    a(a&0x0f)
    temp_da 数部分
    }
    else
    {
    f1 i1负温度设立负温度标记
    a~a+1
    b~b
    temp((a>>4)|(b<<4)) 整数部分
    a(a&0x0f) 数部分
    temp_da
    }
    }

    ******************************************************
    * 存储极限温度函数
    *****************************************************
    void store_t()
    {
    if(f_max1) 限温度负限温度转换成符号数 maxmax+0x80
    if(f_min1) 限温度负限温度转换成符号数
    minmin+0x80
    ds18b20_init()
    ds18b20_write(0xcc)
    ds18b20_write(0x4e) DS18B20发写字节暂存器23(THTL)命令
    ds18b20_write(max) 暂存器TH(限温度暂存器)写温度
    ds18b20_write(min) 暂存器TL(限温度暂存器)写温度
    ds18b20_write(0xff) 配置寄存器写命令进行温度值分辨率设置
    ds18b20_init()
    ds18b20_write(0xcc)
    ds18b20_write(0x48) DS18B20发RAM中23字节容写入EEPROM
    } DS18B20电会动EEPROM中限温度拷贝THTL暂存器
    ******************************************************
    * 温度超限报警函数
    *****************************************************
    void alarm()
    { 限值正值
    if(f_max0)
    {
    if(f_min0) 限值正值
    {
    if(f0) 测量值正值
    {
    if(tempmax)
    {w1TR11} 测量值值值时报警
    if((tempmin))
    {w0} 测量值值值时报警
    }
    if(f1){w1TR11} 测量值负值时报警
    }
    if(f_min1) 限值负值
    {
    if(f0) 测量值正值
    {
    if(temp>max)测量值值时报警
    {w1TR11}
    if(temp {w0}
    }
    if(f1) 测量值负值
    {
    if(temp>min)测量值值时报警
    {w1TR11}
    if(temp {w0}
    }
    }
    }

    if(f_max1) 限值负值
    {
    if(f_min1) 限值负值
    {
    if(f1) 测量值负值
    {
    if((tempmin))
    {w1TR11} 测量值值值时报警
    if((tempmax))
    {w0} 测量值值值时报警
    }
    if(f0){w1TR11} 测量值正值时报警
    }

    }
    }
    #endif
    ********************************************************************
    * 程序名 基51单片机温度计
    * 功 : 实时测量温度超限报警报警温度手动调整K1
    * 进入限调节模式K1进入限调节模式进入限
    * 调节模式正常模式K2进入查限温度模式显示1s左右动
    * 退出K3进入查限温度模式显示1s左右动退出K4消
    * 键音启动键音调节限温度模式K2实现加1功
    * K1实现减1功K3设定限温度正负
    *********************************************************************
    #include
    #include intrinsh头文件包含程序(调中_nop_()空操作函数延时)
    #define uint unsigned int
    #define uchar unsigned char
    uchar max0x00min0x00 max限报警温度min限报警温度
    bit s0 s调整限温度时温度闪烁标志位s0显示200mss1显示1s左右
    bit s10 s1标志位限查时显示
    void display1(uint z) 声明display1()函数(displayh头文件中函数ds18b20h应先声明)
    #includeds18b20h
    #includekeyscanh
    #includedisplayh
    ******************************************************
    * 函数
    *****************************************************
    void main()
    {
    beer1 关闭蜂鸣器
    led1 关闭LED灯
    timer1_init(0) 初始化定时器1(未启动定时器1)
    get_temperature(1) 首次启动DS18B20获取温度(DS18B20电动EEPROM中限温度复制THTL寄存器)
    while(1)
    {
    keyscan()
    get_temperature(0)
    display(temptemp_d*0625)
    alarm()
    }
    }
    **********************************************************************
    * 程序名 ds18b20keyscan函数
    * 功 : 通键盘设定设定限报警温度
    **********************************************************************
    #ifndef __keyscan_H__ 定义头文件
    #define __keyscan_H__
    sbit key1P2^2
    sbit key2P2^1
    sbit key3P2^0
    sbit key4P3^3
    uchar i0 定义全局变量i功模式选择0’正常模式1’限调节模式2’限调节模式
    uchar a0 定义全局变量a模式数码显示选择
    bit k40 K4键双功选择位k40时K4键选择消键音功k41时K4键选择正负温度设定功
    bit v0 K2K3键双功选择位v0时选择限查功v1时选择限温度加减功
    bit v10 v11时定时1250ms时间动关闭报警限查功
    bit v20 消键音功调整位0’时开键音1’时关键音
    ******************************************************
    * 读键盘延时子函数
    *****************************************************
    void keyscan_delay(uint z) 延时1ms左右
    {
    uint ij
    for(izi>0i)
    for(j120j>0j)
    }
    ******************************************************
    * 温度调节函数
    *****************************************************
    int temp_change(int countbit f) 限温度调整
    {
    if(key20) 判断K2否
    {
    if(v20)beer0 v20开键音否消键音
    keyscan_delay(10) 延时10ms
    if(key20) 次判断K2否(实现键时消抖)
    {
    beer1 K2关键音
    if(f0) 温度正
    {
    count++ K2温度调1
    if(a1){if(count>125) count125}温度值125时调
    if(a2){if(count>125) count125}
    }
    if(f0) 温度负
    {
    count++ K2温度调1
    if(a1){if(count>55) count55}温度值55时调
    if(a2){if(count>55) count55}
    }
    }
    while(key20) K2松开键时消抖
    keyscan_delay(10)

    }
    if(key30)
    {
    if(v20)beer0
    keyscan_delay(10)
    if(key30) K3键时消抖
    {
    beer1
    count K3温度正时调1负时调1
    if(a1){if(count<0) count0}温度值达0时调
    if(a2){if(count<0) count0}
    }
    while(key30)
    keyscan_delay(10) K3松开键时消抖
    }
    return count
    }
    ******************************************************
    * 读键盘函数
    *****************************************************
    void keyscan()
    {
    if(key10)
    {
    if(v20)beer0
    keyscan_delay(10)
    if(key10) K1键时消抖
    {
    beer1
    TR11 开定时器1通s标志位变化实现限温度调整时温度显示时闪烁功
    k41 温度调节功模式选择K4调整限温度正负功
    v1 温度调节功模式选择K2K3温度加减功
    i++ K1i加1i0’进入正常模式i1’进入调限模式i2’进入调限模式
    if(i>2) K1三次退出调节模式
    {
    i0 进入正常模式
    TR10 关定时器1
    k40 正常模式选择K4消键音功
    v0 正常模式选择K2K3查限报警温度功
    store_t() 存储调整限报警温度
    }
    switch(i) 显示选择
    {
    case 0a0break a0选择显示测温度
    case 1a1break a1选择显示限温度
    case 2a2break a2选择显示限温度
    defaultbreak
    }
    }
    while(key10) K1松键时消抖
    keyscan_delay(10)
    }
    if(a1&&v1) a1选择显示限温度v1时选择限温度加功
    {led0maxtemp_change(maxf_max)}显示限温度
    else if(a2&&v1) a2选择显示限温度v1时选择限温度减功
    {led1mintemp_change(minf_min)}
    else
    if(k41) k41时K4键选择正负温度设定功
    {
    if(key40)
    {
    if(v20)beer0
    keyscan_delay(5)
    if(key40)
    {
    beer1
    if(a1)
    {if(max>55) f_max0else f_max~f_max}温度55度时设定正温度
    if(a2)
    {if(min>55) f_max0else f_min~f_min}温度55度时设定正温度
    }
    while(key40)
    keyscan_delay(10)
    }
    }
    if(v0) v0时选择限查功
    {
    if(key20)
    {
    if(v20)beer0
    keyscan_delay(10)
    if(key20)
    {
    beer1
    a1 选择限显示
    TR11 开定时器1开始定时分钟左右
    s11 限显示闪烁显示分钟左右动退出
    }
    while(key20)
    keyscan_delay(10)
    }
    if(key30)
    {
    if(v20)beer0
    keyscan_delay(10)
    if(key30)
    {
    beer1
    a2 选择限显示
    TR11 开定时器1开始定时1s
    s11 限显示闪烁显示1s动退出
    }
    while(key30)
    keyscan_delay(10)
    }
    if(v11) v11时定时1s时间动关闭报警限查功
    {a0v10TR10} a0显示实测温度v1清零关定时器1
    if(k40) k40时K4键选择消键音功
    {
    if(key40)
    {
    if(v20)beer0
    keyscan_delay(10)
    if(key40)
    {
    beer1
    v2~v2 0’时开键音1’时关键音 }
    while(key40)
    keyscan_delay(10)
    }
    }
    }
    }
    #endif

    四 总结
    单片机学应相关总结体会课设程中仅巩固时学单片机知识通断查阅相关资料学新知识说通次单片机实践学学单片机关知识现实生活中方面应更深层次认识学步入社会参加工作帮助
    次课程设计进程中遇问题例开始确定课设题目编写程序时思路太清晰设计求中需新器件DS18B20智测温相关知识模糊甚说知通查找相关资料书寻求辅导老师帮助动思考理清思路终程序修改正确仿真时前数模电课设仿真验时课设进行利没受什阻碍
    通次单片机课程设计明白理指导实践理需实践予证明盲目相信书事通思考推敲否会取进步时学生活中应该周围学相互学交流验遇会东西时切忌焦躁首先独立思考定想法查找相关资料书刊者找学讨果实解释找辅导老师遇问题解决问题程中断加强动脑力进指导动手力样思路清晰条理畅时候进行软件编写硬件操作工作起事半功倍效果
    五 附录

    系统硬件原理电路图

    数字温度计设计器材表
    单片机STC89C52
    1
    DS18B20
    1
    晶振12M
    1
    三极8850
    1
    电容30PF
    2
    电解电容10UF25V
    1
    蜂鸣器
    1
    LED ø5红
    1
    电阻10k3k2k1k510330
    5
    4位体阴数码
    1
    ACDC(5V1A)电源
    1
    IC插座40
    1
    9X15cm万板
    1
    六 参考文献
    1李群芳编单片微型计算机接口技术[M]电子工业出版社
    2楼然苗编51系列单片机设计实例[M]北京航空航天学出版社
    3黄勤编计算机硬件技术基础实验教程[M]重庆学出版社


    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    基于51单片机的数字温度计毕业设计

    数字测温计设计摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术。在工业生产中温度是常用的被控参数,而采用单片机来对这些被控参数进行控制...

    3年前   
    1186    0

    基于单片机的数字温度计设计课程设计

    基于单片机的数字温度计设计引言随着现代信息技术的飞速发展和传统工业改造的逐步实现.能够独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需...

    3年前   
    919    0

    基于单片机的数字温度计课程设计

    摘要 本文提出了关于MCS-51系列单片机的数字温度计的制作电路方法和编程思想。设计一直灌输着电子电路制作软硬结合,以硬件为主的理念。采用模块化的设计思想。硬件模块分为温度的感应模块、时钟...

    3年前   
    771    0

    基于51单片机的定时闹钟设计单片机课程设计

    单片机 课 程 设 计 报 告 院系: 信息工程学院 ...

    1年前   
    471    0

    基于热敏电阻数字温度计课程设计

    单片机应用系统(三级)项目设计说明书(2012/2013学年第二学期)题 目 : 基于热敏电阻的数字温度计 __专业班级 : 电子信息工程 学生姓...

    4年前   
    641    0

    学士论文开题报告基于51单片机的数字示波器设计

    XX学院信息工程学院学士学位论文开题报告课题名称 基于51单片机的数字示波器设计 学生姓名 导师姓名 所在系部 信息工程学院 ...

    2年前   
    715    0

    基于51单片机音乐盒课程设计

    基于51单片机音乐盒课程设计 课程名称: 微机原理课程设计 题 目: 基于51单片机的音乐盒设计 摘要 随着人类社会的发展,人们对视觉、听觉方面的享受提出了越来越高的要求。小小的...

    5年前   
    1246    0

    基于51单片机的智能窗户设计毕业设计

    基于51单片机的智能窗户设计【摘 要】 随着电子技术的发展和人民生活水平的不断提高,智能窗已经越来越多地被用到了现代智能化建筑中,提供住户一个安全、方便的环境。据统计,在未来的几年内,安装智...

    4个月前   
    105    0

    基于AT89S51单片机无线传输系统设计毕业设计

    毕业论文(设计) 题 目: 单片机无线传输系统设计 完 成 人: ...

    3年前   
    866    0

    基于51单片机压力检测系统设计毕业设计

     学号: xx 大 学 毕业设计(论文) (xxxx届) 题 目 ...

    5年前   
    2681    0

    单片机课程设计报告基于单片机的温控系统

    职业学院机械与电子工程学院基于单片机温控系统课程设计报告班 级 电信班 学生姓名 学 号 指导教...

    3年前   
    979    0

    基于AT89C51单片机的简易计算器的设计

     毕 业 设 计 题目 简易计算器的制作 ...

    5年前   
    2326    0

    论文:基于51单片机的智能充电器的设计

    在我们的日常生活中,手机已经变得越来越重要了。我们经常需要使用手机,打电话、发短信、上网、看电影、听歌、玩游戏等等。随着大屏幕和高主频的手机出现,锂离子电池就变得更加重要了,其锂离子电池充电器也...

    5年前   
    1652    0

    基于51单片机的智能充电器的设计

    课题:基于51单片机的智能充电技术基于51单片机的智能充电器设计摘 要:智能充电器的设计第一步需要解决的就是选择什么样的芯片来进行工作,其本身需要将51单片机作为基本的设计基础,这里选择的充...

    7个月前   
    216    0

    基于51单片机红外感应家用小夜灯的设计

     本科毕业论文(设计)题 目: 基于51单片机红外感应家用小夜灯的设计 院 系:物理与电子信息科学系 专 业:电子信息科学与技术...

    2年前   
    544    0

    基于51单片机的电子密码锁设计

    近年来,在我国社会经济不断进步和迅猛发展的背景下,人们的生活水平越来越高,更多的人开始享受高质量的生活。就拿我们家家离不开的锁具来说,从我国古代历史上就有了各种锁的记载和使用,发展到今天人们追求...

    3年前   
    657    0

    基于51单片机的LED点阵显示屏设计

    目录摘要 IIAbstract III第一章 绪论 11.1 课题背景 11.2 选题意义 11.3 论文主要内容 1第二章 方法论证对比 32.1 单片机编程语言 32.2 控制系统设计 3...

    3年前   
    603    0

    基于单片机的拔河游戏机设计课程设计

    ××大学××学院××课程设计基于单片机的拔河游戏机设计学生姓名学 号所 在 系专业名称班 级指导教师成 绩 ...

    3年前   
    571    0

    基于单片机的交通灯显示系统的设计与研究课程设计

     XX学院课程设计课 程 单片机课程设计 题 目 交通灯系统 院 系 机电系 ...

    3年前   
    887    0

    基于单片机的“叮咚”门铃设计课程设计

    基于单片机的“叮咚”门铃设计摘要:本文设计了一种基于单片机的“叮咚”门铃,主要有键盘,音频功率放大器LM386,AT89S51单片机,扬声器等构成,通过单片机定时/计数器t0来产生700Hz和...

    3年前   
    726    0

    文档贡献者

    文***品

    贡献于2020-12-29

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档