找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 2489|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

一個太陽能充電管理系統(tǒng)的程序,使用了1602顯示AD轉(zhuǎn)換繼電器控制,使用仿真時出現(xiàn)bug

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:294657 發(fā)表于 2018-8-30 18:48 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
寫了一個太陽能充電管理系統(tǒng)的程序,其中使用了1602顯示、AD轉(zhuǎn)換、繼電器控制等等,但是使用Proteus仿真時出現(xiàn)了一個不清楚的bug,有請各位大佬幫我講解一下

出現(xiàn)bug的部分程序是這樣的:

/***********T0
中斷服務(wù)程序
************/
void t0(void) interrupt 1 using 0
{  
  CLK=~CLK;
  if(uc_Clock==0)
{
     uc_Clock=5;
     b_DATransform=1;
}
else
   uc_Clock--;
   TH0=0x3C;     //恢復(fù)定時器0。
   TL0=0xB0;
}  

出現(xiàn)的bug是程序中的第407行-420行的那個中斷服務(wù)函數(shù)中的那個if語句,如果去掉,仿真中1602便不可以顯示(但是在實際中可以顯示),不去掉仿真便可以正常顯示,并且那個if語句中的內(nèi)容并沒有實際意義,程序中都沒有使用,我把程序修改成這樣

/***********T0
中斷服務(wù)程序
************/
void t0(void) interrupt 1 using 0
{  
  CLK=~CLK;
  if(uc_Clock==0)
{
  //uc_Clock=5;
// b_DATransform=1;
}
else
   uc_Clock--;
//TH0=0x3C;     //恢復(fù)定時器0。
//TL0=0xB0;
}  

1602也還可以顯示,(
CLK=~CLK; 是用作給ADC0809提供一個頻率的不能去掉
)剩下的一去掉1602便不可以顯示了

真的非常納悶這樣一個問題,希望各位大佬指點兩下

我將Protues仿真文件和程序均以打包在下方,程序在實際中是可以使用的,程序中有關(guān)于1602顯示,AD轉(zhuǎn)換,獨立鍵盤可控制,繼電器控制的內(nèi)容,有需要的朋友可以借鑒一下



TIM截圖20180830182045.png (234.65 KB, 下載次數(shù): 59)

TIM截圖20180830182045.png

TIM截圖20180830183512.png (227.6 KB, 下載次數(shù): 64)

TIM截圖20180830183512.png

TIM截圖20180830183732.png (261.53 KB, 下載次數(shù): 47)

TIM截圖20180830183732.png

TIM截圖20180830183848.png (191.4 KB, 下載次數(shù): 57)

TIM截圖20180830183848.png

Desktop.zip

120.38 KB, 下載次數(shù): 17

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表