找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2032|回复: 0
打印 上一主题 下一主题
收起左侧

一个太阳能充电管理系统的程序,使用了1602显示AD转换继电器控制,使用仿真时出现bug

[复制链接]
跳转到指定楼层
楼主
写了一个太阳能充电管理系统的程序,其中使用了1602显示、AD转换、继电器控制等等,但是使用Proteus仿真时出现了一个不清楚的bug,有请各位大佬帮我讲解一下

出现bug的部分程序是这样的:

/***********T0
中断服务程序
************/
void t0(void) interrupt 1 using 0
{  
  CLK=~CLK;
  if(uc_Clock==0)
{
     uc_Clock=5;
     b_DATransform=1;
}
else
   uc_Clock--;
   TH0=0x3C;     //恢复定时器0。
   TL0=0xB0;
}  

出现的bug是程序中的第407行-420行的那个中断服务函数中的那个if语句,如果去掉,仿真中1602便不可以显示(但是在实际中可以显示),不去掉仿真便可以正常显示,并且那个if语句中的内容并没有实际意义,程序中都没有使用,我把程序修改成这样

/***********T0
中断服务程序
************/
void t0(void) interrupt 1 using 0
{  
  CLK=~CLK;
  if(uc_Clock==0)
{
  //uc_Clock=5;
// b_DATransform=1;
}
else
   uc_Clock--;
//TH0=0x3C;     //恢复定时器0。
//TL0=0xB0;
}  

1602也还可以显示,(
CLK=~CLK; 是用作给ADC0809提供一个频率的不能去掉
)剩下的一去掉1602便不可以显示了

真的非常纳闷这样一个问题,希望各位大佬指点两下

我将Protues仿真文件和程序均以打包在下方,程序在实际中是可以使用的,程序中有关于1602显示,AD转换,独立键盘可控制,继电器控制的内容,有需要的朋友可以借鉴一下



TIM截图20180830182045.png (234.65 KB, 下载次数: 39)

TIM截图20180830182045.png

TIM截图20180830183512.png (227.6 KB, 下载次数: 43)

TIM截图20180830183512.png

TIM截图20180830183732.png (261.53 KB, 下载次数: 29)

TIM截图20180830183732.png

TIM截图20180830183848.png (191.4 KB, 下载次数: 40)

TIM截图20180830183848.png

Desktop.zip

120.38 KB, 下载次数: 17

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表