您的位置:網站首頁 > 電器維修資料網 > 正文 >
建立PIC單片機源程序必備的基本知識
來源: 日期:2013-11-16 22:08:22 人氣:標簽:
我們在建立pic單片機的源程序時,若操作數是常數,必須按下表的方式進行書寫,否則匯編不會成功。
在書寫源程序有關常數時,不一定選取表1中的一種(制式)數,應由源程序指令的功能,決定其應該使用的進制數。當pic單片機用作彩燈控制器或用發光二極管led作輸出口的演示程序時,應選取二進制數給pic單片機輸出口送數,這種二進制數 為直觀。若用pic單片機制作定時器,因秒到分、分到時是60進制數,時到日是24小時進制數,此時,在設定源程序中的常數時,選取十進制數 為直觀、物理意義 清楚、查找程序 方便。所以讀者會看到,在今后介紹較長的實用源程序中,表達的常數往往是多種進制的。此外,在建立pic單片機的源程序時,常需進行簡單的加、減運算,這時記住表2的二進制、十六進制和十進制數之間的關系,對計算十分有用。
在下表中,僅列出了十進制數的0~15,十六進制數的0~f和二進制數的0000~1111等相互間對應值的轉換關系。因pic單片機內部的寄存器是8位的,所以給某個寄存器送數時, 多可送8位二進制數,其 大值為b’llllllll’;可送兩位十六進制數,其 大值為oxff;可送3位十進制數,其 大值為255。
在實際應用中,兩位十六進制數到十進制數的轉換用的較多,其轉換方法如下:
例1:oxbc對應的十進制數是多少?
解:oxbc轉換成十進制數一b×16+c(轉換),其中b、c是表2中的十六進制數b、c對應的十進制制數11和12,則
由實例計算可見,要將兩位十六進制數轉換成十進制數的方法是,只需從表2中,查出十六進制數的高位與十進制數的對應值,再乘16(16是十六進制數的“權”)、加其低位對應的十進制數即可。例如ox67轉換成十進制數應為
由此可見,牢記上表十分重要。
在建立pic單片機源程序時,首先會用到偽指令。偽指令是用來給匯編程序提供匯編的控制功能、完成匯編程序作各種準備工作的。與匯編指令不同,它沒有機器碼(目標碼)與其對應,所以僅在源程序的匯編過程中起一定作用。一旦匯編結束,偽指令的功能即告完成。但是,偽指令是建立pic單片機源程序不可缺少的組成部分,否則匯編不會成功。偽指令可分四類,現分別介紹如下:
(1)列表偽指令。實例:表達式list。功能,可作源程序中pic單片機的選項和控制其匯編過程。常用于源程序的起始列,如:
(2)數據偽指令。實例(a),表達式#include。功能,在mplab中調用系統指定的所有文件(若mplab的早期版本中,沒有指令中需要的文件,則不能匯編)。如:
實例(b),表達式equ。功能,可作為標號賦值或選擇pic單片機內部寄存器單元的地址,如
(3)控制偽指令。實例(a),表達式org。功能,可作pic單片機程序存放的起始地址和復位地址,
實例(b),表達式end。功能,程序結束指令。這條指令放在pic單片機源程序的結束行。若end之后還有語句,將被視為無效;若源程序結束無end,則匯編不會成功。
若小結上述列舉的幾條偽指令,可得出在建立pic單片機源程序時,必須按下述格式進行(這里以pic16f84為例)
【看看這篇文章在百度的收錄情況】
相關文章
- 上一篇: 鋰離子電池的優缺點介紹
- 下一篇: PIC單片機的指令和源程序