一段代码写完了,编译下载都ok。

但是没有看到想要的结果?怎么排错???

借一个别人正常的板子是一种方法,但是镜像提供了全仿真工具,试一下吧。

新建项目:

添加time.c到工程中!

添加复用数码管。

当然程序要做微微调整。

单片机课堂思考题-2000秒倒计时?

参考上例程序:

先分配管脚和端口

#include<8052.h>                         unsigned char smgduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x0f8,0x80,0x90};
unsigned char T0RH = 0;
unsigned char T0RL = 0;
unsigned int cnt;
int sec;
int sec_all=6666;
int count=0;
void LedScan(unsigned char pos,unsigned char dispcode);
void EXINT0() __interrupt 0;
void Timer0() __interrupt 1;
void EXINT1() __interrupt 2;
void ConfigTimer0(unsigned int);
void main()
{cnt = 0;            sec = sec_all;      ConfigTimer0(2); IT0=1; EX0=1;IT1=1; EX1=1;PX1=1;                   TR0=1;          while(1){LedScan(0,smgduan[sec%10]);    LedScan(1,smgduan[sec/10%10]);  LedScan(2,smgduan[sec/100%10]); LedScan(3,smgduan[sec/1000]);   if(count%2==0){TR0 = 1;}else{TR0 = 0;} }
}void EXINT0() __interrupt 0
{count++;
}
void EXINT1() __interrupt 2
{sec_all=0;
}void ConfigTimer0(unsigned int ms)
{unsigned long tmp;          tmp = 11059200 / 12;   tmp = (tmp * ms) / 1000; tmp = 65536 - tmp;       tmp = tmp + 18;       T0RH = (unsigned char)(tmp>>8);     T0RL = (unsigned char)tmp;TMOD &= 0xF0;       TMOD |= 0x01;      TH0 = T0RH;        TL0 = T0RL;ET0 = 1;
}void Timer0() __interrupt 1
{TH0 = T0RH;   TL0 = T0RL;cnt++;        if (cnt >= 5){cnt = 0;sec--;   if (sec < 0)   {sec = sec_all; }}
}void LedScan(unsigned char pos,unsigned char dispcode)
{unsigned char i;for(i=0;i<=pos;i++){        switch(pos)     {case(0):P1_0=0;P1_1=1;P1_2=1;P1_3=1; break;case(1):P1_0=1;P1_1=0;P1_2=1;P1_3=1; break;case(2):P1_0=1;P1_1=1;P1_2=0;P1_3=1; break;case(3):P1_0=1;P1_1=1;P1_2=1;P1_3=0; break;}P0=dispcode; }
}

#include<8052.h>                         unsigned char smgduan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x0f8,0x80,0x90};
unsigned char T0RH = 0;
unsigned char T0RL = 0;
unsigned int cnt;
int sec;
int sec_all=6666;
int count=0;
void LedScan(unsigned char pos,unsigned char dispcode);
void EXINT0() __interrupt 0;
void Timer0() __interrupt 1;
void EXINT1() __interrupt 2;
void ConfigTimer0(unsigned int);
void main()
{cnt = 0;            sec = sec_all;      ConfigTimer0(1); IT0=1; EX0=1;IT1=1; EX1=1;PX1=1;                   TR0=1;          while(1){LedScan(0,smgduan[sec%10]);    LedScan(1,smgduan[sec/10%10]);  LedScan(2,smgduan[sec/100%10]); LedScan(3,smgduan[sec/1000]);   if(count%2==0){TR0 = 1;}else{TR0 = 0;} }
}void EXINT0() __interrupt 0
{count++;
}
void EXINT1() __interrupt 2
{sec_all=0;
}void ConfigTimer0(unsigned int ms)
{unsigned long tmp;          tmp = 11059200 / 12;   tmp = (tmp * ms) / 1000; tmp = 65536 - tmp;       tmp = tmp + 18;       T0RH = (unsigned char)(tmp>>8);     T0RL = (unsigned char)tmp;TMOD &= 0xF0;       TMOD |= 0x01;      TH0 = T0RH;        TL0 = T0RL;ET0 = 1;
}void Timer0() __interrupt 1
{TH0 = T0RH;   TL0 = T0RL;cnt++;        if (cnt >= 2){cnt = 0;sec--;   if (sec < 0)   {sec = sec_all; }}
}void LedScan(unsigned char pos,unsigned char dispcode)
{unsigned char i;for(i=0;i<=pos;i++){        switch(pos)     {case(0):P1_0=0;P1_1=1;P1_2=1;P1_3=1; break;case(1):P1_0=1;P1_1=0;P1_2=1;P1_3=1; break;case(2):P1_0=1;P1_1=1;P1_2=0;P1_3=1; break;case(3):P1_0=1;P1_1=1;P1_2=1;P1_3=0; break;}P0=dispcode; }
}

单片机故障排除篇--如何判定是硬件问题还是软件问题?相关推荐

  1. 三菱mr服务器如何显示脉冲数,MR-JE-200A参数设置三菱MR-JE-200A操作手册(故障排除篇) - 广州正凌...

    类型:MR-C型. 符号10A适用电机型号:HC-PQ23. 电源电压:单相AC220V. 驱动器方面:伺服驱动器在发展了变频技术的前提下, 在驱动器内部的电流环, 速度环和位置环(变频器没有该环)都 ...

  2. r710服务器系统故障排除,DELL R710服务器安装windows sever2008 故障排除经历(一)硬件排错...

    前些天导师说服务器操作系统版本太低,当时运过来的时候要装win7的,结果装了两天没装上,经销商只好装了个win2000sever了事.但是买的时候可是2011年啊,用个win2000的系统,这种硬件不 ...

  3. 三菱服务器报警je系列c01,MR-JE-70A手册三菱伺服放大器MR-JE-70A故障排除篇操作手册 - 广州凌控...

    电缆长度:20m. 用于MR-J2S-700A(4)/CP/CL或更小. 编码器用于HC-KFS:HC-MFS:HC-UFS 3000r/min伺服电机. -H产品有很长的弯曲寿命三菱伺服放大器操作手 ...

  4. 三菱mr系列服务器故障代码a6,三菱MR-JE-40A操作手册MR-JE-40A故障排除篇手册 - 广州凌控...

    三菱电机通用交流伺服放大器MELSERVO-J3系列. 额定输出:11.0kw. 接口类型:SSCNETⅢ光纤通讯型. 电源规格:三相AC200V. 通过采用运动控制器和伺服放大器之间最快高达0.44 ...

  5. WINDOWS故障排除篇-1

    问题一:电脑使用着发现系统时间更改成2005或更久之前的日期,导致某些杀毒软件或其他程序不能正常使用. 处理:原因之一,可能是电脑的内置电源没有电了,需要更换电脑中的内置电源. 原因之二,可能是中了某 ...

  6. 关于单片机对三极管B值测量的硬件电路和软件思路分享

    三极管的B值的侧量: 首先应该知道三极管的B值是怎么怎么测量 这是重点也是测量的终点. 在学习模拟电路时记得有一个三极管测量实验 ,首先调整静态工作电压使三极管导通之后通过测量Ice.Ibe之后产生的 ...

  7. [单片机框架][drivers层][cw2015/ADC] fuelgauge 硬件电量计和软件电量计(一)

    接上一篇:[单片机框架][device层] fuelgauge 电量计 CW2015 是一款超紧凑.低成本.主机侧/电池组侧.无传感电阻器的电量计量系统 IC,适用于手持和便携式设备中的锂离子 (Li ...

  8. EMC测试仪器_电巢学堂:单片机系统EMC测试和故障排除

    原标题:电巢学堂:单片机系统EMC测试和故障排除 对于从事单片机应用系统(软硬件)设计的工程技术人员来说,掌握一定的EMC测试技术是十分必要的. 一.关于EMC EMC:Electromagnetic ...

  9. vSphere 故障排除之网络篇

    上一个话题讨论了vSphere故障排除的网络相关典型场景,本篇内容探讨一下存储相关的典型故障场景. 首先我们简单回顾一下vSphere所支持的常见的存储类型:DAS,NAS(NFS),SAN(iSCS ...

最新文章

  1. golang 第三方包的使用总结
  2. c语言printf()输出格式控制
  3. 7-1 最大子列和问题
  4. 计算机组成 指令扩展,计算机组成原理课程设计--指令扩展设计.doc
  5. java培训学费_北京Java培训班学费很贵吗,包含了哪些收费项目
  6. ffmpeg处理RTMP流媒体的命令 发送流媒体的命令(UDP,RTP,RTMP)
  7. php yaf框架扩展实践一——配置篇
  8. jquery版本之间的冲突
  9. XFTP6 要继续使用此程序,您必须应用最新的更新或使用新版本
  10. ZZULIOJ1011: 圆柱体表面积
  11. 计算机网络:小明在家打开一个网址过程细致版(DNS缓存、DNS查询、TCP/IP协议、ARP协议、HTML渲染)
  12. js 公共方法 数组对象求和
  13. Spring Admin 入门
  14. c语言报告对老师的致谢,论文对老师的致谢
  15. 查看iOS手机系统日志,在mac/window电脑上查看
  16. idea工具和激活码获取
  17. 【FinE】在险价值(VaR)计算
  18. 从 .NET 开发人员的角度理解 Excel 对象模型 (From MSDN)
  19. 计算机策略组无法打开怎么办,电脑打不开gpedit.msc组策略怎么办
  20. 车辆底盘自动集中润滑系统的研究分析

热门文章

  1. 计算机组成原理左规右规,计算机组成原理[袁春风]chap3homework.ppt
  2. Win10下将CapsLock键(大小写锁定键)转换映射成Ctrl键
  3. Jackson 自定义序列化和反序列化
  4. 写一篇产品体验报告需从哪些方面入手?
  5. android开发中使用硬件加速有什么用,Android 开发中使用硬件加速
  6. python学生选课_Python开发Day07(学生选课)
  7. 吐槽 | 参加IT培训的正确姿势
  8. 快压弹出垃圾广告如何设置
  9. 社会保障类毕业论文文献有哪些?
  10. 电子信息类与计算机类