新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)學(xué)習(xí)之七:基本I/O口試驗(yàn)三-左右跑馬燈

單片機(jī)學(xué)習(xí)之七:基本I/O口試驗(yàn)三-左右跑馬燈

作者: 時(shí)間:2016-09-20 來(lái)源:網(wǎng)絡(luò) 收藏

  一、 試驗(yàn)現(xiàn)象:

本文引用地址:http://www.butianyuan.cn/article/201609/297204.htm

  二極管從左至右,然后從右至左作變換,燈光變換的間隔時(shí)間是1s。

  二、 試驗(yàn)?zāi)康?/p>

   掌握帶進(jìn)位左、右環(huán)移指令rlc,rrc的應(yīng)用

   進(jìn)一步熟悉延時(shí)程序的應(yīng)用

  三、 試驗(yàn)任務(wù)分析:

  按照上一個(gè)試驗(yàn)的思路,該程序的編寫(xiě)思路如下:先作左,然后再作右,然后讓程序不斷循環(huán)即可。在這個(gè)試驗(yàn)里,我們給大家介紹另外兩個(gè)左、右移指令,先看程序吧。

  四、 試驗(yàn)程序如下:

  org 0000h

  clr p1.5

  start: mov a,#0ffh ;(1)

  clr c ;(2)

  mov r2,#08h ;(3)

  loop1: rlc a ;(4)

  mov p0,a

  call del1s ;調(diào)用1s延時(shí)子程序

  djnz r2,loop1 ;如果左移8次,則開(kāi)始右移,否則,繼續(xù)左移

  mov r2,#06h ;(6)

  loop2: rrc a ;(7)

  mov p0,a

  call del1s

  djnz r2,loop2 ;

  ljmp start

  ;以下是延時(shí)1s的子程序

  del1s: mov r7,#100

  del1: mov r6,#20h

  del2: mov r5,#0ffh

  del3: djnz r5,del3

  djnz r6,del2

  djnz r7,del1

  ret

  end

  五、注釋

  1、 先看看(4)語(yǔ)句,它的意思是累加器A通過(guò)C進(jìn)行左環(huán)移,圖示如下:

  

 

  可見(jiàn),我們?nèi)绻胱専魪淖笾糜野l(fā)光,就需要給a賦值0ffh,cy清零,然后左環(huán)移8次即可。這就是(1)、(2)語(yǔ)句的含義。

  Cy我們以前沒(méi)有接觸過(guò),它又是什么呢?

  還記得試驗(yàn)二中,我們提到程序狀態(tài)字psw吧,它的各位圖示如下:可見(jiàn)cy是psw的最高位,是進(jìn)位標(biāo)志,表示運(yùn)算結(jié)果是否有進(jìn)位(或者借位)。如果操作結(jié)果在最高位有進(jìn)位(加法時(shí)),或者有借位(減法時(shí)),該位為“1”,否則為“0”。

  2、 根據(jù)上面的分析,可知(3)語(yǔ)句就是左移的次數(shù)

  3、 (6)(7)語(yǔ)句的含義自己分析吧。

  六、課后作業(yè):

  試著用別的方法,完成同樣的功能。



關(guān)鍵詞: I/O 跑馬燈

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉