当前位置: 首页 > news >正文

基于430单片机多用途定时提醒器设计

设计一个定时器用于如吃药、烧水等事件提醒
用LCD显示计时时间,可以加计时或倒计时
设置按键:时间+、时间-、启动、停止、暂停等
用LCD显示计数时间
在计时到点用LED灯闪烁提醒,并在LCD显示提醒内容(与时间在同一页面显示)
可以用键消除提醒
在这里插入图片描述

3.2 显示模块设计
3.2.1 器件及功能说明
显示模块使用液晶1602显示,实现计时显示。
3.2.2 相关函数和具体功能
显示模块用到的函数如表2所示:
表2 显示模块函数表
函数名 实现功能
void LCD_Write(unsigned char style, unsigned char input) 写命令/写数据
void chushihua(void) 初始化液晶

  1. void LCD_Write(unsigned char style, unsigned char input) ;函数实现方式
    具体程序如下:
    void LCD_Write(unsigned char style, unsigned char input)
    {
    LcdEn_0;
    //LcdRs=style;
    if(style0)
    LcdRs_0;
    if(style
    1)
    LcdRs_1;

    LcdRw_0; nop();
    DBPort=input; nop();//注意顺序
    LcdEn_1; nop();//注意顺序
    LcdEn_0; nop();
    LCD_Wait();
    }
    根据style等于1,先RS拉高,style等于0,先RS拉低,RW拉低,使能LCD_EN拉高,将 data输入DBPort端,等待数据完成,使能LCD_EN拉低,既可以写数据或命令到液晶里面。

  2. void LCD_Initial()函数的实现方式
    具体程序如下:
    void LCD_Initial()
    {
    LcdEn_0;
    LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,57点阵
    delay(5);
    LCD_Write(LCD_COMMAND,0x38);
    delay(5);
    LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标
    delay(5);
    LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏
    delay(5);
    LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动
    delay(5);
    }
    液晶首先清屏,再配置液晶显示模式,2行显示,5
    7点阵,给液晶送开显示,光标闪烁关闭命令,延时5MS,再送地址指针加1命令到液晶,延时5MS,完成初始化。
    3.2.3流程图
    3.3 按键模块设计
    3.3.1 器件及功能说明
    采用独立按键,实现时间+、时间-、启动、停止、暂停等功能。
    3.3.2 相关函数和具体功能

因为该按键接在单片机P4.0端口,所以可以通过判断 if(!(k1))
判断该按键是否按下。主函数调用该函数,在不断循环中判断P4.0口是否为低电平,若为低电平则表示该按键按下,进入设置。
3.3.3流程图
3.4 定时器模块设计
3.4.1 器件及功能说明
定时器定时,定时1秒用于计时。
3.4.2 相关函数和具体功能

  1. void timeint();函数实现方式
    程序如下:
    void timeint()// 定时器初始化
    {
    CCTL0 = CCIE; // 使能CCR0 中断
    TAR=0XFF; // 计数装入初值
    TACTL=TASSEL_2+TAIE+ID_0;//设置时钟源和计数模式 采用SMCLK/1 =1Mhz ID时钟源 MC模式 =0停止

    TBCCTL0 = CCIE; // 使能CCR0 中断
    TBCTL=TASSEL_2+ID_0+MC_1+CNTL_0;//时钟源ACLK/8,up mode ID0 无分频 MC1 计数到TBCCR0 TASSEL_2 主时钟
    TBCCR0=50000;//(32768/8),周期为1秒
    }
    定时器初始化,先配置定时器模式,设置分频系数,装载定时器初始化,打开定时器中断。

  2. ___interrupt void Timer_B(void) ;函数实现方式
    定时器中断处理函数,定时50MS进入中断,累加20次,定时1秒计时。
    #pragma vector=TIMERA0_VECTOR //定时器A 中断服务程序
    __interrupt void Timer_B(void) //定时器B中断 倒计时用
    {
    if(start)
    {
    date++;
    if(date==20)
    {
    //led();
    date=0;
    sec++;
    if(sec>=set_sec)
    {
    start=0;
    flag_ok=1;
    }
    }
    }
    }

http://www.dtcms.com/a/589456.html

相关文章:

  • 【C++】Reactor和Proactor
  • MCP概念及NetSuite应用与拓展
  • 深圳外贸网站建设公司帮别人做网站开价
  • 基于nginx的openlab的网站配置
  • web开发,在线%超市销售%管理系统,基于idea,html,jsp,java,ssh,sql server数据库。
  • Linux复习:系统调用与fork
  • 做网站需要哪些成本全屋定制网络平台
  • go-ethereum之rpc
  • 开源模型登顶?Kimi K2 Thinking 实测解析:它真能超越 GPT-5 吗?
  • 积分交易网站开发学院网站整改及建设情况报告
  • 影刀RPA实战:一键生成视频号销售日报,告别手工统计,效率提升10倍![特殊字符]
  • C语言算法:时间与空间复杂度分析
  • 最新选题-基于Hadopp和Spark的国漫推荐系统
  • Rust 练习册 :构建自然语言数学计算器
  • 中专旅游管理专业职业发展指南:从入门到精通的成长路径
  • 视频网站 建设绿化公司网站建设
  • 【Chrono】Cargo.toml 配置文件深度分析
  • 基于深度学习的车载视角路面病害检测系统【python源码+Pyqt5界面+数据集+训练代码】
  • 前端计算精度解决方案:big.js库
  • 珠海网站制作推广公司哪家好王野天个人简介
  • 微前端架构:JavaScript 隔离方案全解析(含 CSS 隔离)概要
  • 敏感性分析(Sensitivity Analysis)在机器学习中的应用详解
  • 北京怀柔做网站管理运营的公司最大的源码分享平台
  • 计算机网络自顶向下方法44——网络层 ICMP:因特网控制报文协议 网络控制与管理协议 管理信息库 NETCONF、YANG
  • Java面向对象实验:类的设计、构造方法重载与图形面积计算
  • 网站有哪些备案青海企业网站建设开发
  • 网站制作公司怎么找定制微信软件
  • autocad2025下载安装教程
  • 在页面上写C#(我的Blazor学习一)
  • 洛阳免费网站建设合肥建筑公司