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

【物联网专业】案例9_2:控制数码管(定时器中断)

文章目录0 文章介绍1 仿真图2 效果图3 不完整代码4 思考题0 文章介绍对应定时器/计数器案例目标的实现用计数器中断0P3^4控制数码管段选P1^6控制数码位选1 仿真图2 效果图3 不完整代码复制该代码其中有7个补充点补充点1-3自己思考补充点567见下方图片#includereg52.h// 包含51单片机特殊功能寄存器定义头文件// 定义无符号整型类型别名#defineuintunsignedint#defineucharunsignedchar// 数码管控制引脚定义sbit dulaP3^4;// 段选锁存器控制引脚U2锁存器控制显示内容sbit welaP1^6;// 位选锁存器控制引脚U3锁存器控制显示位置// 拆分后的时间显示变量十位和个位uchar shi2,shi1;// 小时十位、个位uchar fen2,fen1;// 分钟十位、个位uchar miao2,miao1;// 秒钟十位、个位// 当前时间变量初始为11:12:13uchar shi11;// 当前小时uchar fen12;// 当前分钟uchar miao13;// 当前秒钟uchar count;// 定时器计数变量用于每秒计时50ms × 20 1秒// 数码管段码表无小数点按0~9的显示编码连接至段选锁存器uchar code tabledula[]{【补充1】};// 数码管段码表带小数点用于显示冒号效果通过点亮小数点位置uchar code tableduladian[]{【补充2】};// 数码管位选码控制哪一位被选中// 依次对应数码管第1位~第6位从左到右// 注意这些值为逐位取0低电平有效共阴极数码管常见uchar code tablewela[]{【补充3】};// 简单延时函数x 约等于 x 毫秒voiddelay(uchar x){【补充4】}// 数码管动态显示函数依次点亮6位数码管显示“时:分:秒”voiddisplay(uchar shi2,uchar shi1,uchar fen2,uchar fen1,uchar miao2,uchar miao1){// 防止误触发先清除锁存控制引脚wela0;dula0;// 显示第1位小时的十位P0tablewela[0];// 选中第1位wela1;wela0;// 鎖存位选信号P0tabledula[shi2];// 发送段码无小数点dula1;dula0;// 鎖存段选信号delay(1);// 稍作延时防止闪烁// 显示第2位小时的个位带小数点P0tablewela[1];wela1;wela0;P0tableduladian[shi1];// 段码带小数点模拟冒号dula1;dula0;delay(1);// 显示第3位分钟的十位wela0;dula0;P0tablewela[2];wela1;wela0;P0tabledula[fen2];dula1;dula0;delay(1);// 显示第4位分钟的个位带小数点P0tablewela[3];wela1;wela0;P0tableduladian[fen1];// 带小数点模拟冒号dula1;dula0;delay(1);// 显示第5位秒钟的十位P0tablewela[4];wela1;wela0;P0tabledula[miao2];dula1;dula0;delay(1);// 显示第6位秒钟的个位P0tablewela[5];wela1;wela0;P0tabledula[miao1];dula1;dula0;delay(1);}// 定时器0初始化函数设置50ms中断voidinit(){【补充5】}// 主函数程序入口voidmain(){init();// 初始化定时器while(1){// 主循环中不断刷新6位数码管的显示内容display(shi2,shi1,fen2,fen1,miao2,miao1);}}// 定时器0中断服务函数每50ms进入一次voidtime0()interrupt1{// 重装载定时器初值确保下次50ms【补充6】 count;// 每50ms中断一次累积20次为1秒if(count20){count0;// 归零计数miao;// 秒钟1// 进位判断处理if(miao60){miao0;fen;// 分钟1if(fen60){fen0;shi;// 小时1if(shi24){shi0;// 24小时制归零}}}}// 将当前时间变量拆分为“十位”和“个位”数字以便送入数码管显示// 例如shi 11将被拆为 shi2 1十位shi1 1个位// miao 13将被拆为 miao2 1miao1 3【补充7】}补充点5674 思考题实现以下效果
http://www.gsyq.cn/news/1334527.html

相关文章:

  • MySQL 查询数据
  • 2026年5月中小型犬狗粮排行:科学喂养优选参考 - 优质品牌商家
  • VibeCoding提出者Karpathy加入Anthropic#CTO们集体加入AI公司:零员工公司时代来了
  • VLA算法工程师面试题(八)
  • 保姆级教程:手把手教你为ARM64平台(如LS1046A)交叉编译和运行CoreMark 1.01
  • 1987年5月10日晚上21-23点出生性格、运势和命运
  • AI办公实战:从模板资源到智能生成,求职简历PPT的技术选型与实践
  • 国产操作系统深度适配实践:银河麒麟与WPS Office的融合部署与优化
  • tcpdump实战指南:从核心参数到网络排障的深度解析
  • 2026年工业端侧AI落地全景:谁在场景深水区更具成熟度
  • 56、CAN总线RC低通滤波器截止频率计算与实战
  • Spring AI Alibaba零基础速成(5) ---- Memory(记忆)
  • Modbus三种类型详解:RTU、ASCII、TCP
  • 为内部ai工具平台集成taotoken实现多模型灵活切换的方案
  • 单频信号频谱检测仿真:从周期图到匹配滤波器的性能对比
  • 别再为多品牌摄像头头疼了!用Java+ONVIF协议统一控制云台和回放的实战踩坑记录
  • 【c++面向对象编程】第36篇:析构函数应永远不抛出异常——原因与最佳实践
  • 项目初始化:Vite + React + shadcn/ui
  • FPGA新手避坑指南:Vivado MIG IP核那些必须搞懂的接口时序(以DDR3为例)
  • 避坑指南:Keil uVision5安装激活全流程(含C51/MDK双版本、Win11系统适配及汉化问题)
  • 2026绵阳美新家政联系方式及服务实力深度解析:绵阳市美新家政服务有限公司联系/整理收纳培训/早教师培训/月嫂培训/选择指南 - 优质品牌商家
  • 别再手动画流程图了!Flowable UI 6.6.0 + Tomcat 保姆级部署教程,从安装到登录一次搞定
  • 【2026年】中考初中语文必背古诗词与文言文PDF电子版(含默写练习题)
  • 【26年7月】日语N1、N2、N3、N4、N5历年真题及答案PDF电子版(2010-2025年12月)
  • 终极指南:3分钟掌握Mousecape,让你的macOS光标焕然一新
  • 告别龟速下载!保姆级教程:用百度网盘离线下载搞定Android 1.6到16全版本AOSP源码
  • NY352固态MT29F32T08GWLBHD6-24QJ:B
  • 现在不看就晚了:Perplexity 2.5正式版已弃用旧Query Schema!3小时内完成迁移的4步零误差操作法
  • 2026越南公司注册新规解读及合规服务机构技术分析 - 优质品牌商家
  • 快速傅里叶变换(FFT)原理与工程实践:从分治算法到信号处理应用