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


    单片机 课 程 设 计 报 告






    院系: 信息工程学院
    专业: 电子信息工程
    课程设计题目: 基51单片机定时闹钟设计





















    目 录





    概述3


    二 原理图绘制3

    21原理工作程说明4

    22原理图4

    23元器件功说明5

    231 STC89C52单片机引脚功说明5

    232 LCD1602液晶显示器7

    233 重元件9



    三 流程图绘制说明10


    四 Proteus仿真说明11


    五 课程设计体会11


    六 参考文献12


    七 原理图程序13





    概述
    设计师定时闹钟设计单片机STC89C52芯片LCDLED显示器辅必电路构成单片机定时闹钟电子钟采数字电路实现采单片机完成LCD显示时分LED闪动做秒计数定时时间发出警报声者启动继电器控制电器启停现动化高度发达时代特电子类产品部控制电路实现产品控制达动运行目需里做设计中电器元件电路支持
    次设计中STC89S52进行定时结合着辅助电路实施控制定时时候控制时键时加控制分钟键分钟加达预设时间电路会发出报警声音提示已点

    二原理图绘制说明
    1原理工作程说明
    (1)定时闹钟基功 :
    (a)LCD液晶显示器显示现时间
    (b)程序执行显示Time:0000 LED闪烁表示开始已计时
    (c)LED闪动做秒计数表示
    (2)键功 :
    键K1设置现时间时调整键K2显示闹钟设置时间分调整键K3设置闹铃时间设置完成键K4闹铃ONOFF状态设置设置ON时连续三次发出哗声设置OFF发出哗声闹铃时间时发出阵声响键停止声响
    (3)调整计时器时间 :
    K1键然K1调整时K2调整分钟K3表示时间设置完成
    (4)调整闹钟时间设置
    次K3开始闹中设置LCD行显示Alarm0000K1设置时K2设置分钟次K3设置完成设置时间消失次K2时Alarm0000次显示马消失K4关闭闹钟次开闹钟

    2原理图




    图1 总原理图




    3元器件功说明
    31 STC89C51单片机引脚功说明
    设计核心硬件8051芯片里选择STC89C51STC89C51种带4K字节闪烁编程擦读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)低电压高性CMOS8位微处理器俗称单片机该器件采高密度非易失存储器制造技术制造工业标准MCS51指令集输出脚相兼容功8位CPU闪烁存储器组合单芯片中STC89C51种高效微控制器嵌入式控制系统提供种灵活性高价廉方案
    P0口:P0口8位漏级开路双 IO口脚吸收8TTL门电流P1口脚第次写1时定义高阻输入P0够外部程序数存储器定义数址第八位FIASH编程时P0 口作原码输入口FIASH进行校验时P0输出原码时P0外部必须拉高
    P1口:P1口部提供拉电阻8位双IO口P1口缓器接收输出4TTL门电流P1口脚写入1部拉高作输入P1口外部拉低电时输出电流部拉缘FLASH编程校验时P1口作第八位址接收
    P2口:P2口部拉电阻8位双IO口P2口缓器接收输出4TTL门电流P2口写1时脚部拉电阻拉高作输入作输入时P2口脚外部拉低输出电流部拉缘P2口外部程序存储器16位址外部数存储器进行存取时P2口输出址高八位出址1时利部拉优势外部八位址数存储器进行读写时P2口输出特殊功寄存器容P2口FLASH编程校验时接收高八位址信号控制信号
    P3口:P3口脚8带部拉电阻双IO口接收输出4TTL门电流P3口写入1部拉高电作输入作输入外部拉低电P3口输出电流(ILL)拉缘
    P3口作STC89C52特殊功口示:
    P3口脚 备选功
    P30 RXD(串行输入口)
    P31 TXD(串行输出口)
    P32 INT0(外部中断0)
    P33 INT1(外部中断1)
    P34 T0(记时器0外部输入)
    P35 T1(记时器1外部输入)
    P36 WR(外部数存储器写选通)
    P37 RD(外部数存储器读选通)
    P3口时闪烁编程编程校验接收控制信号
    RST:复位输入振荡器复位器件时保持RST脚两机器周期高电时间
    ALEPROG:访问外部存储器时址锁存允许输出电锁存址位字节FLASH编程期间引脚输入编程脉时ALE端变频率周期输出正脉信号频率振荡器频率16作外部输出脉定时目然注意:作外部数存储器时跳ALE脉想禁止ALE输出SFR8EH址置0时 ALE执行MOVXMOVC指令ALE起作外该引脚略微拉高果微处理器外部执行状态ALE禁止置位效
    PSEN:外部程序存储器选通信号外部程序存储器取指期间机器周期两次PSEN效访问外部数存储器时两次效PSEN信号出现
    EAVPP:EA保持低电时期间外部程序存储器(0000HFFFFH)否部程序存储器注意加密方式1时EA部锁定RESETEA端保持高电时间部程序存储器FLASH编程期间引脚施加12V编程电源(VPP)
    XTAL1:反振荡放器输入部时钟工作电路输入
    XTAL2:反振荡器输出























    图2 STC89C52引脚图


    32 1602LCD液晶显示器



    图3 LCD1602引脚图


    功说明

    图4 LCD引脚图说明

    第1脚:VSS电源
    第2脚:VDD接5V正电源
    第3脚:VL液晶显示器度调整端接正电源时度弱接时度高度高时会产生鬼影时通10K电位器调整度
    第4脚:RS寄存器选择高电时选择数寄存器低电时选择指令寄存器
    第5脚:RW读写信号线高电时进行读操作低电时进行写操作RSRW低电时写入指令者显示址RS低电RW高电时读忙信号RS高电RW低电时写入数
    第6脚:E端端E端高电跳变成低电时液晶模块执行命令
    第7~14脚:D0~D78位双数线
    第15脚:背光源正极
    第16脚:背光源负极



    33 重元件
    独立式键盘接口电路:单片机应系统中时需简单键系统输入信息时键接根IO接口线种方式连接称独立式键盘独立式键单独占根 IO接口线根IO接口线工作状态 会影响 IO接口线 种键接口电路配置灵活硬件结构简单键必须占根IO接口线IO接口线浪费较键数量时采种键电路电路中键输入采低电效拉电阻保证键断开时IO接口线确定高电IO接口部拉电阻时外电路配置拉电阻





    图5 键盘


    三流程图绘制说明
    次课程设计实验程序中单片机外部中断定时器计时然通判断计时器闹铃时间闹铃响通单片机端口进行扫描判断时分秒调整选择计时器调时定时闹钟调时否闹铃
    程序开始

    程序流程图



    初始化变量

    初始化LCD




    初始化计时器初始化闹铃



    扫描显示器更新时间数
    闹钟时间?


    否4键 NO
    YSE


    K1调时
    K2调分
    K3:完成
    K4开闹铃




    图6 程序流程图



    四proteus仿真说明
    1开始程序

    图7 显示器开始定时

    图8 定时闹铃开调定时闹钟时间
    2闹铃开计时时间定时闹铃时间喇叭开始

    图9 仿真结果


    五课程设计体会
    次课程设计星期刚知道课程设计时候感觉题目简单应该花少时间完成课程设计感觉果汇编语言话感觉程序会点决定C语言编程开始编程时发现编程时候问题学会KEIL然生成HEX文档加载Proteus里89C52芯片芯片工作次仿真单片机种重两部分外部中断外部计时器外学会驱动1602液晶显示器次课程设计学会C语言编写程序供单片机单片机中外部中断P0P1P2口P0需添加拉电阻单片更加深入解Proteuskeil更加熟练实验中样出现问题闹钟设定K4功实现延时功实现单片机执行程序需机器周期完全解清楚汇编语言容易计算机器周期C语言话难次课程设计单片机够实现定时闹钟功实现次设计求次课程设计更加认真做前想做想学东西认识请教学










    六 参考文献
    [1]余发山单片机原理应技术中国矿业学出版社
    [2]刘 单片机编程入门重庆学出版社
    [3]郭天祥51单片机C语言教程电子工业出版社
    [4]刘瑞新 单片机原理应教程北京机械工业出版社
    七 程序
    源程序代码

    #include
    #define uchar unsigned char
    #define uint unsigned int
    uchar code shuzi[]{0x300x310x320x330x340x350x360x370x380x39
    0x20}阿拉伯数字9 0x2a表示:*
    uchar kongbai0x20
    sbit rsP2^5
    sbit rwP2^6
    sbit enP2^7
    sbit k1P1^0
    sbit k2P1^1
    sbit k3P1^2
    sbit k4P1^3sbit led_miaoP1^7
    sbit buzzP2^3
    sbit lampP2^4
    uchar shi10x85shi20x86
    uchar fen10x88fen20x89
    uchar ns10xcbns20xcc
    uchar nf10xcenf20xcf
    uchar aaak11aaak21aaak31aaak41clockonringoff
    uchar bcdechhou10
    uchar bncndnchnhoun10
    uchar tt0tt1tt2tt3tt4changeho10
    int tt5aan
    uchar pt
    时钟说明
    a b c d

    闹钟说明
    an bn cn dn

    void delay(uint z)
    {
    uint xy
    for(xzx>0x)
    for(y110y>0y)
    }
    void wc(uchar com)
    {
    rs0
    P0com
    delay(5)
    en1
    delay(5)
    en0
    }
    void wd(uchar date)
    {
    rs1
    P0date
    delay(5)
    en1
    delay(5)
    en0
    }
    void init()
    {
    en0
    rs0
    rw0 写数指令时口必须低电
    wc(0x38)
    wc(0x0c)
    wc(0x06)写字符址指针加
    wc(0x01)
    }
    void showtime(uchar fen_1uchar fen_2uchar f1uchar f2)
    {
    wc(fen_1)delay(1)wd(shuzi[f1])delay(1)
    wc(fen_2)delay(1)wd(shuzi[f2])delay(1)
    }
    void showmao(uchar kkkkk)
    {
    if(kkkkk0)
    { wc(0x87)delay(1)wd(0x3a)delay(1)}
    else if(kkkkk1)
    { wc(0xcd)delay(1)wd(0x3a)delay(1)}
    else
    { wc(0xcd)delay(1)wd(kongbai)delay(1)}
    }
    void key()
    {
    if(k10)1 start
    {
    delay(100)
    if(k10)
    {
    wc(0x80+0x40)delay(1)wd(0x59)delay(1)
    delay(100)
    while(1)
    {
    if(k10)11 start
    {
    delay(100)
    if(k10)
    {
    b++
    if(b>hou)
    {
    ch++
    if(ch>2)
    hou4
    else
    hou10
    if(a>2&&b>hou)
    {
    a(1)
    b0
    ch0
    hou10
    }
    a++
    b0
    }
    showtime(shi1shi2ab)
    }
    }11 end
    if(k20)12 start
    {
    delay(100)
    if(k20)
    {
    d++
    if(d>10)
    {
    d0
    c++
    if(c>6)
    c0
    }
    showtime(fen1fen2cd)
    }
    }12 end
    if(k30)13 start
    {

    wc(0x80+0x40)delay(1)wd(kongbai)delay(1)
    tt5att4btt3ctt2d
    EA1ET01TR01
    break
    }13 end
    if(k40)14 start
    {

    }14 end
    }
    }
    }1 end
    if(k20)2 start
    {
    delay(100)
    if(k20)
    {
    if(aaak11)
    {
    aaak1++
    wc(0x80+0x41)delay(1)wd(0x59)delay(1)
    showtime(ns1ns2anbn)
    showmao(1)
    showtime(nf1nf2cndn)
    }
    else
    {
    wc(0x80+0x41)delay(1)wd(kongbai)delay(1)
    showtime(ns1ns21010)
    showtime(nf1nf21010)
    showmao(2)
    aaak11
    }
    }
    }2 end
    if(k30)3 start
    {
    delay(100)
    if(k30)
    {
    showtime(ns1ns2anbn)
    showmao(1)
    showtime(nf1nf2cndn)
    wc(0x80+0x42)delay(1)wd(0x59)delay(1)
    delay(100)
    while(1)
    {
    if(k10)31 start
    {
    delay(100)
    if(k10)
    {
    bn++
    if(bn>houn)
    {
    chn++
    if(chn>2)
    houn4
    else
    houn10
    if(an>2&&bn>houn)
    {
    an(1)
    bn0
    chn0
    houn10
    }
    an++
    bn0
    }
    showtime(ns1ns2anbn)
    }
    }31 end
    if(k20)32 start
    {
    delay(100)
    if(k20)
    {
    dn++
    if(dn>10)
    {
    dn0
    cn++
    if(cn>6)
    cn0
    }
    showtime(nf1nf2cndn)
    }
    }32 end
    if(k30)33 start
    {
    wc(0x80+0x42)delay(1)wd(kongbai)delay(1)
    showtime(ns1ns21010)
    showtime(nf1nf21010)
    showmao(2)
    break
    }33 end
    if(k40)14 start
    {
    delay(100)
    if(k40)
    {
    if(aaak31)
    {aaak3++ringoff1
    wc(0x80+0x43)delay(1)wd(0x52)delay(1)}
    else
    {aaak31ringoff0
    wc(0x80+0x43)delay(1)wd(kongbai)delay(1)}
    }
    }34 end
    }
    }
    }3 end
    if(k40)4 start
    {
    delay(100)
    if(k40)
    {
    if(aaak41)
    {
    aaak4++
    lamp1
    clockon1
    wc(0x80+0x4a)delay(1)wd(0xef)delay(1)
    buzz0delay(50)buzz1delay(50)
    buzz0delay(50)buzz1delay(50)
    buzz0delay(50)buzz1
    }
    else
    {
    aaak41
    lamp0
    clockon0
    wc(0x80+0x4a)delay(1)wd(kongbai)delay(1)
    buzz0delay(50)buzz1
    }
    }
    }4 end
    }
    void time0()
    {
    TH0(6553650000)256 50ms
    TL0(6553650000)256
    }
    void main()
    {
    TMOD 0x01
    init()
    showtime(shi1shi200)
    showtime(fen1fen200)
    showmao(0)
    showtime(ns1ns21010)
    showtime(nf1nf21010)
    showmao(2)
    time0()
    lamp0
    while(1)
    {
    key()
    }
    }

    void t0() interrupt 1
    {
    time0()
    tt0++
    if(k10)
    {
    delay(5)硬件实现时延时10
    if(k10)
    {
    att5btt4ctt3dtt2
    EA0ET00TR00
    }
    }
    if(k20)
    {
    delay(5)硬件实施时延时10
    if(k20)
    {
    if(aaak11)
    {
    aaak1++
    wc(0x80+0x41)delay(1)wd(0x59)delay(1)
    showtime(ns1ns2anbn)
    showmao(1)
    showtime(nf1nf2cndn)
    }
    else
    {
    wc(0x80+0x41)delay(1)wd(kongbai)delay(1)
    showtime(ns1ns21010)
    showtime(nf1nf21010)
    showmao(2)
    aaak11
    }
    }
    }
    if(k40)
    {
    delay(5)
    if(k40)
    {
    if(aaak41)
    {
    aaak4++
    lamp1
    clockon1
    wc(0x80+0x4a)delay(1)wd(0xef)delay(1)
    buzz0delay(50)buzz1delay(50)
    buzz0delay(50)buzz1delay(50)
    buzz0delay(50)buzz1
    }
    else
    {
    aaak41
    lamp0
    clockon0
    wc(0x80+0x4a)delay(1)wd(kongbai)delay(1)
    buzz0delay(50)buzz1
    }
    }
    }
    if(tt0>1)20
    {
    tt00
    led_miao~led_miao
    tt1++
    if(tt1>1)判断否够秒
    {
    tt2++
    if(tt2>10)判断分钟位否满
    {
    tt20
    tt3++
    if(tt3>6)判断分钟十位否满
    {
    tt30
    tt4++
    if(tt4>hou)判断时位否满
    {
    ch++
    if(ch>2)时时判断条件变
    {
    hou4
    }
    else
    {
    hou10
    }

    if(tt5>2&&tt4>hou)满时时候全部清零头算起
    {
    tt5(1)
    tt40
    ch0
    hou10
    }
    tt5++
    tt40
    showtime(shi1shi2tt5tt4)时十位加
    }
    showtime(shi1shi2tt5tt4)时位加
    }
    showtime(fen1fen2tt3tt2)分钟十位加
    }
    showtime(fen1fen2tt3tt2)分钟位加
    tt10
    }
    }
    if(clockon1&&tt5an&&tt4bn&&tt3cn&&tt2dn&&pt<60)ring for 3s
    {buzz0e1lamp0pt++}
    if((k40&&e1)|pt>60)if ring more than 3sit will stop
    {buzz1e0clockon0wc(0x80+0x4a)delay(1)wd(kongbai)delay(1)pt0}
    }
    文档香网(httpswwwxiangdangnet)户传

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

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

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

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

    下载文档

    相关文档

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

    课 题: 基于51单片机数字温度计设计专 业: 电子信息工程班 级: 班学 号: 姓 名: ...

    3年前   
    972    0

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

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

    5年前   
    1266    0

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

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

    3年前   
    990    0

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

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

    4年前   
    871    0

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

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

    5个月前   
    113    0

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

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

    5年前   
    2719    0

    单片机课程设计报告

    1 方案设计与论证1.1 硬件总体设计设计并制作一个基于单片机的数字电压表的电路其结构框图如图 1-1 所示: 图1-1 硬件结构框图(1)单片机最小系统电路部分 (2)数码管显示部分(3) ...

    5年前   
    1663    0

    基于单片机的时钟设计

    随着时间的推移,事物的发展越来越趋向于高科技,单片机的出现,受到了社会各界的广泛关注,这是由于单片机具备丰富的功能。单片机的特点为:尺寸小,价格低,抗干扰强,开发容易等。运用的范围也很广,如检测...

    4年前   
    1028    0

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

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

    3年前   
    1197    0

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

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

    5年前   
    2343    0

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

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

    5年前   
    1658    0

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

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

    2年前   
    744    0

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

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

    2年前   
    554    0

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

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

    7个月前   
    225    0

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

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

    3年前   
    614    0

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

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

    3年前   
    667    0

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

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

    3年前   
    898    0

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

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

    3年前   
    583    0

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

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

    3年前   
    929    0

    基于单片机的直流稳压电源设计课程设计

    课程设计论文 设计题目:单片机控制直流稳压电源设计学校:院系:专业:年级:2013级姓名学号: 指导教师 ...

    4年前   
    897    0

    文档贡献者

    文***品

    贡献于2022-09-25

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

    该用户的其他文档