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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4246|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

STC單片機(jī)不斷電下載程序方法

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
背景:剛開始接觸STC單片機(jī),在給單片機(jī)下載程序的時(shí)候,總是要冷啟動(dòng)。一般情況都是加載相應(yīng)的程序文件,然后點(diǎn)擊“下載/編程”按鈕,然后再重新斷電上電,直到程序?qū)戇M(jìn)單片機(jī)里。那么有沒有其它更方便的方法呢?肯定是有的。
目的:
通過自定義的下載命令,在不需要冷啟動(dòng)的情況下,就可以對(duì)STC單片機(jī)進(jìn)行程序的下載,甚至通過進(jìn)一步的設(shè)置,在keil中程序編輯、編譯完成后,STC-ISP會(huì)自動(dòng)將程序下載到單片機(jī)里。
  1. #include <reg52.h>    //包含單片機(jī)寄存器的頭文件

  2. #define uchar unsigned char
  3. #define uint  unsigned int
  4.         
  5. #define Self_Define_ISP_Download_Command 0x3D// 與不斷電下載有關(guān),與本程序無關(guān),直接復(fù)制到自己的程序中
  6. sfr IAP_CONTR = 0xE7;                                             // 與不斷電下載有關(guān),與本程序無關(guān),直接復(fù)制到自己的程序中


  7. /****************************函數(shù)聲明****************************************/
  8. void delay(uint z);
  9. void Init_Com(void);// 與不斷電下載有關(guān),與本程序無關(guān),直接復(fù)制到自己的程序中


  10. /*******************************************************************************
  11. ** 函數(shù)名稱 : main(void)
  12. ** 函數(shù)功能 : 主函數(shù)
  13. *******************************************************************************/
  14. void main()
  15. {
  16.         uchar  num,dat1,dat2;          // 相關(guān)變量定義
  17.         Init_Com();                          // 與不斷電下載有關(guān),與本程序無關(guān),直接復(fù)制到自己的程序中
  18.         while(1)
  19.         {
  20.                 dat1 = 0xfe;
  21.                 dat2 = 0x7f;
  22.                 for(num=0; num<7; num++)         // led燈從上往下依次點(diǎn)亮
  23.                 {
  24.                         P1 = dat1;          //初始化賦值
  25.                         dat1 = dat1<<1; //左移一位
  26.                         delay(500);   //延時(shí)        
  27.                 }
  28.                 for(num=0; num<7; num++)         // led燈從下往上依次點(diǎn)亮
  29.                 {
  30.                         P1 = dat2;          //初始化賦值
  31.                         dat2 = dat2>>1; //右移一位
  32.                         delay(500);   //延時(shí)        
  33.                 }
  34.         }
  35. }

  36. /*******************************************************************************
  37. ** 函數(shù)名稱 : delay(uint z)
  38. ** 函數(shù)功能 : 延時(shí)函數(shù)
  39. *******************************************************************************/
  40. void delay(uint z)
  41. {
  42.     uchar j;
  43.     for(z;     z>0; z--)
  44.           for(j=200; j>0; j--);
  45. }

  46. /*******************************************************************************
  47. ** 函數(shù)名稱 : Init_Com(void)        
  48. ** 函數(shù)功能 : 串口初始化,晶振11.0592KHz,波特率9600,
  49. *******************************************************************************/
  50. void Init_Com(void)   //與不斷電下載有關(guān),與本程序無關(guān),直接復(fù)制到自己的程序中
  51. {
  52.      TMOD = 0x20;
  53.      SM0   = 0;
  54.      SM1   = 1;
  55.       REN  = 1;
  56.      TH1   = 0xFd;
  57.      TL1    = 0xFd;
  58.      TR1   = 1;
  59.       EA    = 1;
  60.       ES    = 1;
  61. }

  62. /*******************************************************************************
  63. ** 函數(shù)名稱 : UART_Interrupt_Receive(void)
  64. ** 函數(shù)功能 : 串口中斷處理函數(shù)
  65. *******************************************************************************/
  66. void UART_Interrupt_Receive(void) interrupt 4  //與不斷電下載有關(guān),與本程序無關(guān),直接復(fù)制到自己的程序中
  67. {
  68.         unsigned char k = 0;
  69.         unsigned int a,b;
  70.         if(RI == 1)
  71.         {
  72.                 RI = 0;
  73.                 k  = SBUF;
  74.                 if(k == Self_Define_ISP_Download_Command)
  75.                 {
  76.                         for(a=1000; a>0; a--)
  77.                         for(b=100;  b>0; b--);
  78.                         IAP_CONTR = 0x60;
  79.                 }
  80.         }
  81.         else
  82.         {
  83.                 TI = 0;
  84.         }
  85. }
復(fù)制代碼




Keil代碼下載: 不斷電程序 流水燈.zip (36.32 KB, 下載次數(shù): 32)

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:645485 發(fā)表于 2022-5-27 15:59 | 只看該作者
      第一次發(fā)帖,有許多地方不盡人意,尤其是添加代碼文字的時(shí)候,我以為把編輯好的程序復(fù)制粘貼進(jìn)去就可以了,但看到發(fā)帖后的效果,有些地方還是可以再調(diào)整調(diào)整的,后面會(huì)改善的。好在代碼本身是沒有問題的,是經(jīng)過驗(yàn)證的,大家可以放心參考。這種STC單片機(jī)不斷電下載程序的方法,我也是參考別人的,我這里還有視頻講解資料,有需要的請(qǐng)留言。
希望可以和大家共同討論、共同學(xué)習(xí)、共同進(jìn)步!



回復(fù)

使用道具 舉報(bào)

板凳
ID:645485 發(fā)表于 2022-5-27 16:12 | 只看該作者
還有一點(diǎn)需要補(bǔ)充一下,注意串口初始化函數(shù),晶振11.0592KHz,波特率9600,如果是12MHz晶振,則需要調(diào)整TH1,TL1的初值,不然下載基本不會(huì)成功的,不相信可以試試!
回復(fù)

使用道具 舉報(bào)

地板
ID:390416 發(fā)表于 2022-5-31 09:12 | 只看該作者

這就是自動(dòng)斷電下載。不需要手按,也不需要串口預(yù)先復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

5#
ID:645485 發(fā)表于 2022-5-31 11:39 | 只看該作者
本帖最后由 tongguan123 于 2022-5-31 15:47 編輯
人人學(xué)會(huì)單片機(jī) 發(fā)表于 2022-5-31 09:12
這就是自動(dòng)斷電下載。不需要手按,也不需要串口預(yù)先復(fù)制代碼

首先非常感謝老大的分享!你提供的這個(gè)應(yīng)該是一個(gè)完整的硬件電路,下載程序的時(shí)候,由硬件控制給單片機(jī)斷電和供電,來達(dá)到冷啟動(dòng)的目的,應(yīng)該是這樣子吧?而我分享的這個(gè)是通過對(duì)ISP/IAP命令寄存器ISP_CONTR的操作,ISP_CONTR=0X60,來達(dá)到在應(yīng)用編程。方法和思路不同,但殊途同歸,最終的目的都是方便我們操作。本人學(xué)習(xí)單片機(jī)時(shí)間不長(zhǎng),如果有哪些地方講的不對(duì),請(qǐng)指正!





回復(fù)

使用道具 舉報(bào)

6#
無效樓層,該帖已經(jīng)被刪除
7#
無效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 在线免费观看视频你懂的 | 永久看片 | 东京av男人的天堂 | 亚洲精品99 | 夜夜爽99久久国产综合精品女不卡 | 久久久久免费精品国产小说色大师 | 久久久久久久久久久久久九 | 亚洲国产成人av好男人在线观看 | 国产资源在线视频 | 亚洲国产成人av好男人在线观看 | 久久综合久久综合久久 | 欧洲av一区 | 日本黄色免费大片 | 91精品国产综合久久久久久 | 精品国产一区探花在线观看 | 中文久久 | 国产精品久久久久久久久久久免费看 | 欧美日韩国产在线观看 | 精品国产99 | 黄视频网址 | 国产清纯白嫩初高生在线播放视频 | 久久国产精品99久久久久 | 久久鲁视频 | 欧洲一区二区视频 | 国产成人精品午夜视频免费 | 天天拍天天操 | 日韩精品视频一区二区三区 | 日韩精品在线免费观看视频 | 日本在线精品视频 | 综合久久av | 91成人在线 | 久久久久香蕉视频 | 天天色av| 国产精品久久久久久影视 | 欧美日韩亚洲一区 | 一级毛片高清 | 夜夜精品视频 | 国产高清在线精品一区二区三区 | 伊人性伊人情综合网 | 欧美日韩国产在线观看 | 免费在线观看黄色av |