單片機實驗說明<一>數字口基本使用

      網友投稿 876 2022-05-29

      機器人類單片機課程為突出專業特色,對實驗作了大量補充和講解,除了uno,cozmo和tianbotmini之外,加入了大量相關單片機案例,使課程緊密融合物聯網和機器人工程,增加Linux下調試方式,作為windows之外的補充,補充esp8266,esp32等wifi單雙核單片機,補充操作系統概念。相關內容在課程中已經測試過,但并未得到有效的批評和建議,現全部公開。

      項目名稱:實驗一 流水燈設計/報警產生器設計

      這是典型數字口應用案例。

      實驗一(上) 流水燈設計

      設計要求:

      (1)掌握單片機實驗箱的使用方法與程序調試技巧;

      (2)學會使用51系列單片機I/O的基本輸入輸出功能。

      使發光二極管LED4-6-8-10閃爍 間隔1000毫秒。

      使發光二極管從LED10往LED3循環點亮間隔500毫秒,然后熄滅。

      依次點亮LED3到LED10發光二極管隔500毫秒。請編寫程序并完成調試。

      注意:LED3-LED10為重命名。

      通過了解 P1 口連接 3-8 譯碼器進行 LED 選通電路圖及數碼管位選電路、P0 的控制 74HC245

      驅動 LED 的電路和 P3 口連接的獨立鍵盤電路,見圖 1-1。

      軟件代碼:

      依據具體調試過程,方法不唯一,在重點部分加入注釋,使程序更容易閱讀和理解。

      參考代碼1:

      /*****************************************************************************

      * 頭文件 *

      *****************************************************************************/

      #include "hml/hml.h"

      #define LSA P1_5

      #define LSB P1_6

      #define LSC P1_7

      /*****************************************************************************

      * 初始化 *

      *****************************************************************************/

      void sys_init(void)

      {

      LSA = 0;

      LSB = 0;

      LSC = 0;

      }

      /*****************************************************************************

      * 主函數 *

      *****************************************************************************/

      void main(void)

      {

      sys_init();

      while(true)

      {

      /* send per 1000ms */

      sleep(1000);

      P0=0x55;

      /* send per 1000ms */

      sleep(1000);

      P0=0xFF;

      }

      }

      參考代碼2:

      /*****************************************************************************

      * 頭文件 *

      *****************************************************************************/

      #include "hml/hml.h"

      #define LSA P1_5

      #define LSB P1_6

      #define LSC P1_7

      /*****************************************************************************

      * 初始化 *

      *****************************************************************************/

      void sys_init(void)

      {

      LSA = 0;

      LSB = 0;

      LSC = 0;

      }

      /*****************************************************************************

      * 主函數 *

      *****************************************************************************/

      void main(void)

      {

      sys_init();

      unsigned char j=0,sel=0x7F;

      for(j=0;j<8;j++)

      {

      P0=sel;

      sleep(500);

      sel=sel>>1|0x80;

      }

      sel=0xFF;

      P0=sel;

      sleep(10000);

      }

      參考代碼3:

      /*****************************************************************************

      * 頭文件 *

      *****************************************************************************/

      #include "hml/hml.h"

      #define LSA P1_5

      #define LSB P1_6

      #define LSC P1_7

      /*****************************************************************************

      * 初始化 *

      *****************************************************************************/

      void sys_init(void)

      {

      LSA = 0;

      LSB = 0;

      LSC = 0;

      }

      /*****************************************************************************

      * 主函數 *

      *****************************************************************************/

      void main(void)

      {

      sys_init();

      unsigned char j=0,sel=0xFE;

      for(j=0;j<8;j++)

      {

      P0=sel;

      sleep(500);

      sel=sel<<1|0x01;

      }

      sel=0xFF;

      P0=sel;

      sleep(10000);

      }

      思考題:

      1.修改程序,實現 4 個按鍵控制,自上至下、自下至上、自中間至兩邊、自兩邊至中間循環點亮 LED,循環次數均為 3 圈,3 圈結束后恢復到所有 LED 熄滅的正常狀態。請編寫程序并調試。

      2.編寫程序,實現 8 個發光二極管同時點亮,但亮度從上到下由亮變暗(選做)。

      3. 簡述你在本實驗中遇到過哪些問題?這些問題是解決的?有何收獲和體會?

      實驗一(下) 報警產生器設計

      設計要求:

      用P4.4輸出1KHz和500Hz的音頻信號驅動揚聲器,作報警信號,要求1KHz信號響100ms,500Hz信號響200ms,交替進行,P1.7接一開關進行控制,當開關合上響報警信號,當開關斷開報警信號停止,請按流程圖編出程序。

      1)首先定義??sfr P4=0xe8

      2)然后主函數設置 P4SW=0X70; //將P4.4/5/6設置為I/O口

      注意P4.4口!

      把喇叭當作LED燈,分別給端口送1khz和500hz的方波試試看效果是什么樣的。

      軟件代碼:

      依據具體調試過程,方法不唯一,在重點部分加入注釋,使程序更容易閱讀和理解。

      參考代碼:

      /*****************************************************************************

      * 頭文件 *

      *****************************************************************************/

      #include "hml/hml.h"

      /*****************************************************************************/

      /** 初始化

      ******************************************************************************/

      void sys_init(void)

      {

      ;

      }

      void sound(int hz)

      {

      char time=500/hz;

      sleep(time);

      P4_4=1;

      sleep(time);

      P4_4=0;

      }

      /*****************************************************************************/

      /** 主函數

      ******************************************************************************/

      void main(void)

      {

      sys_init();

      unsigned int a=600;

      while(a--)

      {

      sound(500);

      }

      a=600;

      while(a--)

      {

      sound(250);

      }

      a=600;

      單片機實驗說明<一>數字口基本使用

      while(a--)

      {

      sound(125);

      }

      }

      思考題:

      揚聲器音量大小如何調節,是否和LED亮度調節類似呢?

      單片機 硬件開發

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:嵌入式是什么意思?嵌入式是干什么的?
      下一篇:HDFS文件讀寫流程(2)
      相關文章
      久久精品国产亚洲av水果派 | 精品日韩99亚洲的在线发布| 精品亚洲一区二区三区在线观看 | 国产中文在线亚洲精品官网| 亚洲精品无码永久在线观看| 国产精品自拍亚洲| 亚洲精品9999久久久久无码| 亚洲精品无码高潮喷水A片软| 国产成人精品日本亚洲11| 亚洲香蕉久久一区二区| 亚洲高清有码中文字| 国产亚洲精品bv在线观看| 亚洲综合无码无在线观看| 亚洲欧洲精品成人久久曰| 亚洲日韩精品无码专区加勒比☆| 亚洲中文字幕久久无码| 亚洲欧美日韩中文字幕一区二区三区| 日韩亚洲国产综合高清| 亚洲AV永久无码精品网站在线观看| 亚洲妇女无套内射精| 日韩亚洲人成在线综合| 日韩精品亚洲专区在线观看| 伊在人亚洲香蕉精品区麻豆| 亚洲男人av香蕉爽爽爽爽| 相泽亚洲一区中文字幕| 亚洲精品高清国产一线久久| 亚洲AV永久青草无码精品| 337p日本欧洲亚洲大胆色噜噜| 亚洲狠狠狠一区二区三区| 亚洲国产亚洲片在线观看播放| 亚洲人xxx日本人18| 亚洲国产一区二区三区在线观看 | 久久青草亚洲AV无码麻豆| 亚洲国产精品久久66| 亚洲国产精品久久丫| 亚洲综合激情五月色一区| 久久久久亚洲精品无码网址色欲| 亚洲国产黄在线观看| 亚洲日韩欧洲乱码AV夜夜摸 | 久久亚洲精品成人av无码网站| 亚洲神级电影国语版|