参考上图程序并修改,实现两位显示的秒表,秒表时间范围为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; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥40 复杂的限制性的商函数处理
- ¥15 程序不包含适用于入口点的静态Main方法
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来