参考上图程序并修改,实现两位显示的秒表,秒表时间范围为100秒(00-99),要求采用数码管的最右边两位数码管显示,采用定时器T0编写程序。
单片机计数器定时器实验
参考上图程序并修改,实现两位显示的秒表,秒表时间范围为100秒(00-99),要求采用数码管的最右边两位数码管显示,采用定时器T0编写程序。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 智者知已应修善业 2022-05-28 17:11关注
数码管的最右边两位数码管显示,数码管是几位的?位引脚是怎么接的?给出电路图才好写代码,代码依据电路写的。假设是8位数码管位引脚接P1,则修改代码
# include <reg51.h> #define uint unsigned int #define uchar unsigned char uchar n=0,shiw=0,gew=0; uchar code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void main() { uchar y=0; TMOD|=0x01; EA=1; ET0=1; TR0=1; TH0=(65536-15536)/256;//3cb0=15536 TL0=(65536-15536)%256; while(1) { P0=~smgduan[gew]; P1=0x01; while(++y); P0=~smgduan[shiw]; P1=0x02; while(++y); P0=P1=0x00;//P0=P1=0xff; } } void T0_time() interrupt 1 { uchar i; TH0=(65536-15536)/256; TL0=(65536-15536)%256; i++; if(i==20) { i=0; P0=~smgduan[n++]; if(n==100)n=0; shiw=n/10; gew=n%10; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 宇视监控服务器无法登录
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
- ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)