學習利用組合語言寫微控制器程式的第一步是要學習組合語言的相關理論知識,那麼實踐操作的第一步肯定是從點燈開始啦!
編譯環境:keil41、建立新工程 --> atmel --> at89c52編譯語言:組合語言
內容:一、keil4建立at89c52的工程環境
二、程式
三、分析
2、 選中後會彈出是否匯入啟動檔案
如果是c語言環境選擇「是」,這裡我們是彙編,選擇「否」
3、建立彙編檔案,字尾名.asm,將檔案新增到工程
4、環境搭建完成
這裡我們直接上彙編點亮at89c52微控制器p1.0口的程式,然後再進行語句分析
org 0000h
ljmp main1
main:
mov p1,#001h
main1:
mov p1,#00ah
end
分析:1、org:規定程式塊或資料塊存放的起始位址,即規定程式從0000h位址開始,換句話說,以上述程式為例,org 0000h 使得ljmp main1這條指令的機器碼就在hex檔案的0x00的位置
2、ljmp:長轉移指令(64kb範圍內轉移指令)
長轉移指令的功能是:把指令碼中的目標位址裝入程式計數器pc(program counter)中,位址範圍:0000h - ffffh,為了使程式設計方便易編,目標位址常採用標號位址(如:main,main1,loop…),換句話說,相當於c語言中的goto語句
3、在51微控制器中p1口的位元組位址為90h,位位址位90h - 97h,可位定址
mov p1,#00ah 語句的含義是將p1的低4位賦予立即數,即將90h - 93h 位址賦予 「1」,即將p1.0 - p1.3口拉高
4、#的作用
立即數的標誌,如#0ffh,表示的是乙個十六進製制的數ff,若沒有「#」,0ffh則表示位直接位址為00ah的儲存單元,at89c52微控制器的ram中有256個儲存單元,每個單元8位,即乙個位元組,ffh就是最後的那個單元
利用AT89C52定時器輸出可調PWM
知識儲備 pwm即是脈寬衝寬度調製,也稱脈寬調變,其意義就是通過微處理器的數字輸出來對模擬電路進行調製的一種有效技術。由於微控制器只能輸出高電平 1 或者低電平 0 因此對於類似正弦曲波等無法直接輸出。因此需要通過控制高低電平的有效時間,用等效面積的方式輸出曲波。pwm 1.定時器 51微控制器中內...
如何使用AT89C52製作的簡易門禁
把理論付諸實踐才能收穫更加有效的知識 為了實現智慧型門禁,使用手機開鎖成了 我乙個短期最想要完成的目標 主要器件如下 g90s舵機 讀寫器 某寶上買的可充電鋰電池,電壓是5v電流1安 由於小舵機的驅動能力非常有限,使用較長槓桿才可以轉動,可以用力矩計算需要多長 使用這樣的機械連線方式可以用5v的舵機...
基於AT89C52和MQ 2的煙霧報警器設計
摘要 介紹了一種基於at89c52 微控制器和mq 2 型半導體電阻式煙霧感測器的煙霧報警器設計。該煙霧報警器具有聲光報警 濃度顯示以及與上位機串列埠通訊等功能。其結構簡單,低廉,效能穩定,具有較好的實用價值。隨著社會高速發展,火災對於人類的生產生活造成了巨大的危害。煙霧報警器是用來監測環境中煙霧的...