久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2182|回復: 11
打印 上一主題 下一主題
收起左側

ht66f70a單片機led燈的閃爍,求大神指教

[復制鏈接]
回帖獎勵 20 黑幣 回復本帖可獲得 20 黑幣獎勵! 每人限 1 次(中獎概率 50%)
跳轉到指定樓層
樓主
ID:499479 發表于 2019-9-20 18:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
代碼如下:
#include "HT66F70A.H"
void Delay_ms(unsigned int dly)//延時dly ms的子程序
{
unsigned int i;
for(i=0;i<dly;i++)
for(i=0;i<dly;i++);

}
void main()
{
_pa=0;
_pac=0;//pa設置為輸出
_pa0=0;
while(1)
{Delay_ms(500);
Delay_ms(500);//延時500ms,即0.5s
_pa0=~_pa0;
}
}

功能是實現led燈的閃爍。
但是我無論怎么該延遲函數這個燈都閃的很快(亮的時間很長,暗的時間幾乎看不到),之前也用這個芯片做步進電機的實驗,步進電機也是只震動不轉,而且震動的頻率也是固定的。求解。。。。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:401564 發表于 2019-9-20 20:44 | 只看該作者
_pa0=~_pa0;
這語句放到兩個延時的中間
而不是放到最后
回復

使用道具 舉報

板凳
ID:275826 發表于 2019-9-20 21:15 | 只看該作者
延時函數錯誤,改成
void Delay_ms(unsigned int dly)//延時dly ms的子程序
{
unsigned int i,j;
for(i=0;i<dly;i++)
for(j=0;j<dly;j++);

}
回復

使用道具 舉報

地板
ID:499479 發表于 2019-9-20 21:57 | 只看該作者
Y_G_G 發表于 2019-9-20 20:44
_pa0=~_pa0;
這語句放到兩個延時的中間
而不是放到最后

一樣的結果,我有個while死循環,根本不是你說的那樣
回復

使用道具 舉報

5#
ID:67199 發表于 2019-9-20 22:18 | 只看該作者
樓上正解。
回復

使用道具 舉報

6#
ID:395176 發表于 2019-9-21 08:38 | 只看該作者
合泰單片機,我記得要把看門狗關閉的啊
回復

使用道具 舉報

7#
ID:123289 發表于 2019-9-21 08:39 | 只看該作者
兩個:
for(i=0;i<dly;i++)
for(i=0;i<dly;i++);
將其中的一個改成 j 試試         
回復

使用道具 舉報

8#
ID:213173 發表于 2019-9-21 08:40 | 只看該作者
樓主的延時函數是錯誤的,Delay_ms(500);只能得到約6ms延時,肉眼哪能看得出來?
正確寫法:
void Delay_ms(unsigned int dly)//延時dly ms的子程序
{
        unsigned int i,j;
        for(i=0;i<dly;i++)
                for(j=0;j<125;j++);
}
回復

使用道具 舉報

9#
ID:452974 發表于 2019-9-21 13:26 | 只看該作者
感覺是不是電路連接上面的問題,延時函數變量命名習慣個人感覺很差,但第二個 for 循環,會首先將 i 重置0,語法角度是沒錯的。不過建議該有的大括號,還有重命名弄好一點。

建議題主把電路圖也順便貼出來,一個軟硬結合的東西,只拿代碼說有可能布線的鍋,幫不得的。

按照題主的說法是暗的時間幾乎沒有,那就是有暗的時間了,那調試的時候不先試試先將開關量置1?如果結果相反的話,這個代碼加幾行相反代碼就好了。
回復

使用道具 舉報

10#
ID:614442 發表于 2019-9-21 16:07 | 只看該作者
void Delay_ms(unsigned int dly)//延時dly ms的子程序 { unsigned int i,j; for(i=0;i<dly;i++) for(j=0;j<dly;j++);  }
回復

使用道具 舉報

11#
ID:401564 發表于 2019-9-21 16:49 | 只看該作者
在燒錄界面看一下,好像是有關閉看門狗和低電壓復位的
合泰的指令和8051是不一樣的,你把語句改了之后,延時加長幾看一下

順便說一下,雖然現在C是主流,但合泰這種低端單片機,最好還是用匯編,幾乎所以的臺系的單片機數據手冊都會推薦用匯編的
回復

使用道具 舉報

12#
ID:499479 發表于 2019-9-21 21:34 | 只看該作者
問題已經解決了,今天重新吧延遲函數換了下,但同樣的代碼我燒錄幾遍,有時候正常有時候有問題,估計是硬件的問題
#include <HT66F70A.H>
void delay(unsigned int);//延時dly ms的子程序
void main()
{
_pa=0;
_pac=0;//pa設置為輸出
_pa0=0;
while(1)
{delay(5000);
  _pa0=~_pa0;
delay(5000);
delay(5000);
delay(5000);//延時500ms,即0.5s

}
}
void delay(unsigned int count)
{
    volatile unsigned int i;
    for(i=0;i<count;i++)
        asm("nop");
}
注:跟這個volatile和 asm("nop")無關
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区av | 欧美专区在线观看 | 免费一看一级毛片 | 欧美一级在线观看 | 精品国产91乱码一区二区三区 | 精品福利一区 | 成人久久18免费网站 | 国产福利视频导航 | 99国产精品99久久久久久 | 毛片在线视频 | 精品国产黄a∨片高清在线 成人区精品一区二区婷婷 日本一区二区视频 | 国产极品车模吞精高潮呻吟 | 成人在线视频免费播放 | 国产精品不卡 | 国产有码 | 操操日 | 一级电影免费看 | 亚洲人人 | 日本三级黄视频 | 国产日韩一区二区三区 | 欧美1区2区| 国产精品中文字幕在线 | 国产一级淫片免费视频 | 免费超碰| 国产成人高清视频 | 成人做爰9片免费看网站 | 国产xxxx在线| 精品国产欧美一区二区 | 国产精品乱码一区二区三区 | 色偷偷人人澡人人爽人人模 | 成人午夜电影在线观看 | 久久久久久久一区 | 999久久久久久久久 国产欧美在线观看 | 欧美日韩三级在线观看 | 久久久久免费精品国产小说色大师 | 天天射网站 | 欧美成人a∨高清免费观看 欧美日韩中 | 国产一区二区不卡 | 伊人99| 成人h视频在线观看 | 黄色成人国产 |