欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機INT0中斷子程序 - 單燈左移3圈 實驗 Proteus仿真和源代碼 [打印本頁]

作者: 51黑電子happy    時間: 2017-4-5 02:53
標題: 單片機INT0中斷子程序 - 單燈左移3圈 實驗 Proteus仿真和源代碼
單片機INT0中斷子程序的仿真原理圖(proteus仿真工程文件可到本帖附件下載):



單片機源代碼:
  1. //==聲明區(qū)===================================
  2. #include        <reg51.h>                                                  //        定義8x51特殊功能寄存器
  3. #define        LED        P1                                                //        定義LED接至P 1
  4. void  delay1ms(int);                                                //        聲明延遲函數(shù)
  5. void  left(int);                                                        //        聲明單燈左移函數(shù)
  6. //==主程序===================================
  7. main()                                                                  //        主程序開始
  8. {        IE=0x81;                                                     //        準許INT 0中斷
  9.         LED=0x00;                                                  //        初值=0000 0000,燈全亮        
  10.         while(1)                                                     //        無窮循環(huán),程序一直跑
  11.         {        delay1ms(250);                                         //        延遲250*1m=0.25s
  12.                 LED=~LED;                                          //        LED反相
  13.         }                                                              //        while循環(huán)結(jié)束
  14. }                                                                      //        主程序結(jié)束
  15. //==子程序===================================
  16. /* INT 0的中斷子程序 - 單燈左移3圈 */
  17. void  my_int0(void)  interrupt  0                        //        INT0 中斷子程序開始
  18. {        unsigned  saveLED=LED;                              //        儲存中斷前LED狀態(tài)
  19.         left(3);                                               //        單燈左移3圈
  20.         LED=saveLED;                                            //        寫回中斷前LED狀態(tài)
  21. }                                                              //        結(jié)束INT0 中斷子程序
  22. /* 延遲函數(shù),延遲約x 1ms */
  23. void  delay1ms(int  x)                                     //        延遲函數(shù)開始
  24. {        int  i, j;                                                         //        聲明整數(shù)變數(shù)i,j
  25.         for (i=0;i<x;i++)                                              //        計數(shù)x次,延遲x 1ms
  26.         for (j=0;j<120;j++);                                        //        計數(shù)120次,延遲1ms
  27. }                                                                         //        延遲函數(shù)結(jié)束
  28. /* 單燈左移函數(shù),執(zhí)行x圈 */
  29. void  left(int x)                                                     //        單燈左移函數(shù)開始
  30. {        int  i,  j;                                                            //        聲明變數(shù)i,j
  31.         for(i=0;i<x;i++)                                                    //        i循環(huán),執(zhí)行x圈
  32.         {        LED=0xfe;                                                    //        初始狀態(tài)=1111 1110,最右燈亮
  33.                 for(j=0;j<7;j++)                                    //        j循環(huán),左移7次
  34.                 {        delay1ms(250);                          
  35.                         LED=(LED<<1)|0x01;                 //        左移1位後,LSB設(shè)為1
  36.                 }                                                    //        j循環(huán)結(jié)束
  37.                 delay1ms(250);                              
  38.         }                                                           //        i循環(huán)結(jié)束*/
  39. }                                                               //        單燈左移結(jié)束

復(fù)制代碼

該系列源碼包含有很多非常經(jīng)典,代碼風(fēng)格十分規(guī)范,而且注釋詳細的單片機例程,還帶仿真,對于MCU學(xué)習(xí)特別是初學(xué)者是很有幫助的,全部源碼下載(共幾十個項目):http://www.raoushi.com/bbs/dpj-80575-1.html


本例程下載(含proteus仿真工程文件與源碼):
單片機INT0中斷子程序.rar (12.88 KB, 下載次數(shù): 7)






歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1