PIC微控制器程式

時間 2021-09-11 22:24:40

1樓:甜甜圈的店鋪

movf 30h,w 將暫存器30h的值放入w暫存器

addwf 50h,f 把w暫存器與暫存器50h的值相加,結果放在50h

btfss status,c 判斷status暫存器裡的c位是否置1(這是一個進位標誌,判斷30h和50h的值相加時候有沒有產生進位),如果為1則跳過下一條指令(goto loop)

incf 20h,f 暫存器20h的值加1,結果存在20h(這是因為低位30h和50h相加時候產生進位了,所以高位要加一)

movf 20h,w 把20h的值放入w暫存器

addwf 40h,f 20h和40h的值相加,結果儲存在40h

其實整個程式的意思就是低位相加:30h+50h

再進行高位相加:20h+40h

中間加入判斷了一下30h+50h的時候有沒有進位產生

程式沒有問題。

2樓:

切忌:程式設計的重點是演算法,組合語言和c語言等都只是輔助工具。

16位資料相加的演算法:首先要讓低位相加並判斷有沒有進位產生,然後對兩種情況進行高位相加。

有了演算法,其它都好辦,愛放哪個暫存器就放哪個暫存器。

3樓:從曲以弘義

#include

//呼叫標頭檔案,可以去picc軟體下去查詢pic16f87xa微控制器的標頭檔案

__config(xt&wdten&lvpdis);

//定義配置字,晶振型別:xt,啟動開門狗,禁止低電壓程式設計

#define

hc138_a

re2//定義u6、u7、u8的a為re2埠

#define

hc138_b

re1//定義u6、u7、u8的b為re1埠

#define

hc138_c

re0//定義u6、u7、u8的c為re0埠

#define

u6_e

ra2//定義u6_e為ra2埠,u6e=1時,u6使能否則失能

#define

u7_e

ra3//定義u7_e為ra3埠,u7e=1時,u7使能否則失能

#define

u8_e

ra1//定義u8_e為ra1埠,u8e=1時,u8使能否則失能

#define

v1ra5

//定義v1為ra5埠

unsigned

inttmcon;

//---------------------------------------

//名稱:

初始化函式

//日期:20101001

//-----------------------------------------

void

init(void)

//---------------------------------------

//名稱:

t0初始化函式

//日期:20100501

//-----------------------------------------

void

timer0init(void)

//---------------------------------------

//名稱:

t0中斷函式(250us)

//日期:20101001

//-----------------------------------------

void

interrupt

isr(void)}}

//---------------------------------------

//名稱:

主函式//日期:20101001

//-----------------------------------------

void

main(void)}

PIC微控制器的序列通訊問題,PIC微控制器序列通訊的波特率又高速和低速之分,請問這兩者有什麼區別

注意,這裡說的高速 低速不是通常說的速度快就是高速,速度慢就是低速。這裡所謂的高速 低速,指的是同一個波特率因子下的波特率的快慢。得看一下式子 高速 波特率 fosc 16 x 1 fosc代表外部晶振 低速 波特率 fosc 64 x 1 從上面的公式可以看到,對同一個x,顯然用 fosc 16 ...

51微控制器好學還是pic微控制器好學

51好學一些,但是pic也沒比51難多少。我現在用的就是pic。首先,pic比51多個配置位,這個看看就懂了基本上。然後,pic的埠要配置成輸入或者輸出,51不用。pic的中斷沒有優先順序,需要軟體判斷。最後,pic比51多許多暫存器,你要使用pic的各種功能,都需要去初始化暫存器。再說說pic的優...

PIC微控制器判斷按鍵pic16F

你的埠設定為輸出的,那麼輸入就為高阻態是沒有辦法讀取資料的。rb口沒有上拉電阻可以配置rbpu位,使rb為弱上拉,埠要配置位輸入,才可以讀去該口的值。pic微控制器按鍵設計時最好是要上拉,按鍵按下就接地,按下讀取數值為低。如果把埠懸空,按鍵按下才接高電平,認為不按時沒有接高電平,沒有輸入為低電平,這...