专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
if语句看不懂为什么
2019-03-27 09:25
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
电路设计
5652
12
1172
此帖出自
小平头技术问答
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
dinghao1
2019-03-27 19:49
#include <reg52.h>
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
//用数组来存储数码管的真值表,数组将在下一章详细介绍
unsigned char code LedChar[] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
void main(){
unsigned char cnt = 0; //记录 T0 中断次数
unsigned char sec = 0; //记录经过的秒数
ENLED = 0; //使能 U3,选择数码管 DS1
ADDR3 = 1;
ADDR2 = 0;
ADDR1 = 0;
ADDR0 = 0;
TMOD = 0x01; //设置 T0 为模式 1
TH0 = 0xB8; //为 T0 赋初值 0xB800
TL0 = 0x00;
TR0 = 1; //启动 T0
while (1){
if (TF0 == 1){ //判断 T0 是否溢出
TF0 = 0; //T0 溢出后,清零中断标志
TH0 = 0xB8; //并重新赋初值
TL0 = 0x00;
cnt++; //计数值自加 1
if (cnt >= 50){ //判断 T0 溢出是否达到 50 次
cnt = 0; //达到 50 次后计数值清零
P0 = LedChar[sec]; //当前秒数对应的真值表中的值送到 P0 口
sec++; //秒数记录自加 1
if (sec >= 16){ //当秒数超过 0x0F(15)后,重新从 0 开始
sec = 0;
}
}
}
}
}
加载中...
查看其它12个回答
一周热门
更多
>
相关问题
相关文章
初学者如何轻松学习元器件的焊接
0个评论
PCB贴片之模具高效设计指南
0个评论
TTL,RS232,RS485串口接口有哪些区别,使用该注意哪些?
0个评论
工程师,在做电路项目研发工作中,如何与领导融洽地相处?
0个评论
为什么PCB设计都要求保证3W原则?3.5W、4W或者2.5W原则不行吗?
0个评论
硬件设计思路之系统功耗,干货预警
0个评论
磁珠的作用及使用
0个评论
电压比较器的常用电路
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;
//用数组来存储数码管的真值表,数组将在下一章详细介绍
unsigned char code LedChar[] = {
0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};
void main(){
unsigned char cnt = 0; //记录 T0 中断次数
unsigned char sec = 0; //记录经过的秒数
ENLED = 0; //使能 U3,选择数码管 DS1
ADDR3 = 1;
ADDR2 = 0;
ADDR1 = 0;
ADDR0 = 0;
TMOD = 0x01; //设置 T0 为模式 1
TH0 = 0xB8; //为 T0 赋初值 0xB800
TL0 = 0x00;
TR0 = 1; //启动 T0
while (1){
if (TF0 == 1){ //判断 T0 是否溢出
TF0 = 0; //T0 溢出后,清零中断标志
TH0 = 0xB8; //并重新赋初值
TL0 = 0x00;
cnt++; //计数值自加 1
if (cnt >= 50){ //判断 T0 溢出是否达到 50 次
cnt = 0; //达到 50 次后计数值清零
P0 = LedChar[sec]; //当前秒数对应的真值表中的值送到 P0 口
sec++; //秒数记录自加 1
if (sec >= 16){ //当秒数超过 0x0F(15)后,重新从 0 开始
sec = 0;
}
}
}
}
}
一周热门 更多>