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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

“新手求教!!” 延時程序 的使用方法。

  [復制鏈接]
跳轉到指定樓層
樓主
ID:219774 發表于 2017-7-28 16:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
詳細
一定要詳細!
拜托了!!!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2017-7-28 16:21 | 只看該作者
我7年前發布的單片機延時函數教程:http://www.zg4o1577.cn/bbs/dpj-4711-1.html
回復

使用道具 舉報

板凳
ID:223039 發表于 2017-7-28 16:47 | 只看該作者
void delay(int a)
{
      unsigned char i,j;
      for(i=a;i>0;i--)
       for(j=110;j>0;j--);
}
能夠延時ams,具體看什么樣的單片機了,處理速度越快,a值越大
回復

使用道具 舉報

地板
ID:34643 發表于 2017-7-29 07:00 | 只看該作者
你到本壇上下載一個"單片機小靈“http://www.zg4o1577.cn/bbs/dpj-23766-1.html
這款工具可是很好用的,寫中斷、寫延時程序直接生成,大大減少了編程者的工作量和腦力勞動。
回復

使用道具 舉報

5#
ID:219197 發表于 2017-7-29 08:55 | 只看該作者
void yanshi(uint xms)
{
   uint i,j;
   for(i=xms;i>0;i--)
  for(j=110;j>0;j--);
}
優先定義延時功能函數,定義形參uint形xms,進入for嵌套循環,達到延時目的
回復

使用道具 舉報

6#
ID:210162 發表于 2017-7-29 10:33 | 只看該作者
void delay(u16 i)
{
   while(i--);
}
主函數里再寫delay();括號里面寫時間,為1的時候是10微秒。這是最簡單的一個延時。
還有就是主程序里面需要短暫的延時的時候可以直接寫個for的空循環。
回復

使用道具 舉報

7#
ID:111634 發表于 2017-7-29 11:12 | 只看該作者
本帖最后由 zl2168 于 2017-7-29 11:17 編輯

延時可用延時函數,也可用延時語句。
最簡單的延時語句


unsigned long  t;                  //定義延時參數t(長整型)


for (t=0; t<=n; t++ );             //n值延時


回復

使用道具 舉報

8#
ID:223169 發表于 2017-7-29 11:40 | 只看該作者
找本書,書上應該有詳細的教程
回復

使用道具 舉報

9#
ID:212343 發表于 2017-7-29 14:35 | 只看該作者
下載一個單片機小精靈,很好用,輸入自己想延時的時間就能出來程序。
回復

使用道具 舉報

10#
ID:223214 發表于 2017-7-29 15:59 | 只看該作者
用一個51單片機,for循環吧。
回復

使用道具 舉報

11#
ID:195298 發表于 2017-7-29 16:32 | 只看該作者
找個單片機小精靈
回復

使用道具 舉報

12#
ID:223372 發表于 2017-7-30 13:31 | 只看該作者
先定義一個
void delayms(uint k)
{
uint i,j;
for(i=k;i>0;i--)
for(j=110;j>0;j--);
}
然后后面調用
delayms(5);
里面的數值自己設定
回復

使用道具 舉報

13#
ID:219774 發表于 2017-7-30 22:25 | 只看該作者
謝謝大家了!!!
回復

使用道具 舉報

14#
ID:188030 發表于 2017-7-31 13:07 來自手機 | 只看該作者
void delay(int a)
{
      unsigned char i,j;
      for(i=a;i>0;i--)
       for(j=110;j>0;j--);
}
回復

使用道具 舉報

15#
ID:223579 發表于 2017-7-31 15:36 | 只看該作者
32的程序,有詳細的解釋
  1. static uint8_t fac_us = 0; /* us延時倍乘數 */
  2. static uint16_t fac_ms = 0; /* ms延時倍乘數 */

  3. /* 初始化延遲函數 */
  4. /* SYSTICK的時鐘固定為HCLK時鐘的1/8
  5. * SYSCLK:系統時鐘 */
  6. void delay_init(void)
  7. {
  8.         SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
  9.         fac_us = SystemCoreClock / 8000000; /* 為系統時鐘的1/8 */
  10.         fac_ms = (uint16_t)fac_us * 1000; /* 每個ms需要的systick時鐘數 */
  11. }

  12. /* 延時nus */
  13. void delay_us(uint32_t nus)
  14. {
  15.         uint32_t temp;
  16.         SysTick->LOAD = nus * fac_us; /* 時間加載 */
  17.         SysTick->VAL = 0x00; /* 清空計數器 */
  18.         SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; /* 開始倒數 */
  19.         do {
  20.                 temp = SysTick->CTRL;
  21.         }
  22.         while ((temp & 0x01) && !(temp & (1 << 16))); /* 等待時間到達 */
  23.         SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; /* 關閉計數器 */
  24.         SysTick->VAL =0x00; /* 清空計數器 */
  25. }

  26. /* 延時nms */
  27. /* 注意nms的范圍
  28. * SysTick->LOAD為24位寄存器,所以,最大延時為:
  29. * nms<=0xffffff*8*1000/SYSCLK
  30. * SYSCLK單位為Hz,nms單位為ms
  31. * 對72M條件下,nms<=1864 */
  32. void delay_ms(uint16_t nms)
  33. {
  34.         uint32_t temp;
  35.         SysTick->LOAD = (uint32_t)nms * fac_ms; /* 時間加載(SysTick->LOAD為24bit) */
  36.         SysTick->VAL = 0x00; /* 清空計數器 */
  37.         SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk; /* 開始倒數 */
  38.         do {
  39.                 temp = SysTick->CTRL;
  40.         }
  41.         while ((temp & 0x01) && !(temp & (1 << 16))); /* 等待時間到達 */
  42.         SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; /* 關閉計數器 */
  43.         SysTick->VAL = 0x00; /* 清空計數器 */
  44. }
復制代碼
回復

使用道具 舉報

16#
ID:219126 發表于 2017-7-31 18:11 | 只看該作者
是不清楚它怎么計算延時時間的還是不清楚什么   先找些資料把基本的原理  理論性東西弄懂  延時函數就起了延時de作用啊
回復

使用道具 舉報

17#
ID:223214 發表于 2017-8-12 00:57 | 只看該作者
用個for循環就行了。
回復

使用道具 舉報

18#
ID:227217 發表于 2017-8-12 11:48 | 只看該作者
用單片機精靈就得了
回復

使用道具 舉報

19#
ID:218870 發表于 2017-8-13 06:02 | 只看該作者
void delay_1ms(unsigned int mas)   //延時1ms
{
        uint i,j;
        for(i=0;i<mas;i++)
        for(j=0;j<110;j++);
}
回復

使用道具 舉報

20#
ID:227454 發表于 2017-8-13 21:38 來自手機 | 只看該作者
呂聰聰 發表于 2017-7-29 10:33
void delay(u16 i)
{
   while(i--);

哪里抄的?我問問你u16是什么你知道嗎?你的重定義語句呢?自己一知半解就不要來教別人了好吧?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品久久国产 | 偷偷操视频| 992人人草 | 亚洲国产网 | 日韩一区二区在线播放 | 日韩欧美视频 | 久久精品国产一区二区电影 | 欧美成人性生活 | 亚洲成人久久久 | 久久久精品影院 | av午夜激情| 国产精品日日摸夜夜添夜夜av | 国产一区二区三区免费 | 亚洲欧美一区二区三区情侣bbw | 日日日日日日bbbbb视频 | 精品一区二区三区四区 | 天堂av中文在线 | 欧美片网站免费 | 久久久91精品国产一区二区精品 | 男人天堂午夜 | 亚洲欧美中文日韩在线v日本 | 国产精品美女一区二区 | a级毛片毛片免费观看久潮喷 | 欧美国产日韩在线观看 | 2019中文字幕视频 | 免费高潮视频95在线观看网站 | 日本一区二区视频 | 国产电影一区二区在线观看 | 91久久国产综合久久91精品网站 | 欧美日韩国产传媒 | 日韩乱码在线 | 成人网址在线观看 | 精品成人在线视频 | 日本一区二区不卡视频 | 日韩精品中文字幕在线 | 国产美女一区二区 | 亚洲久久一区 | 91在线第一页 | 在线91| 国产成人精品亚洲日本在线观看 | 九色在线观看 |