找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4468|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

用查表指令MOVC A,@A+DPTR實(shí)現(xiàn)P1端口LED的全亮全滅 匯編程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:71407 發(fā)表于 2014-12-31 15:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
;51單片機(jī)入門程序10
;工程名稱:用查表指令MOVC A,@A+DPTR實(shí)現(xiàn)P1端口LED的全亮全滅
;編寫日期:2009.7.4 ;編寫者:藍(lán)柳柳 ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ORG 0000H
MAIN: MOV R7,#0 ;查表程序要用到軟件計(jì)數(shù)器來計(jì)調(diào)出表中數(shù)據(jù)的次數(shù)(或個(gè)數(shù)) ;但是在用軟件計(jì)數(shù)器前先清零,這是給軟件計(jì)數(shù)器R7清零
  MOV DPTR,#LIULIU ; 把表格的首地址放入寄存器DPTR, ;注意了DPTR里的地址是永恒不變的
LOOP:MOV A,R7 ;把軟件計(jì)數(shù)器里的數(shù)據(jù)送給累加器A,為查表作些準(zhǔn)備
  MOVC A,@A+DPTR ;查表,把查到的數(shù)據(jù)送到A
  MOV P1,A ;把A里的數(shù)送到P1端口顯示
  ACALL YS ;調(diào)用延時(shí)子程序,顯示一小段時(shí)間 INC R7 ;軟件計(jì)數(shù)器自動(dòng)加1
  CJNE R7,#2,LOOP ;R7里的數(shù)到2了沒,到了順序往下運(yùn)行,沒到轉(zhuǎn)移到LOOP處
  MOV R7,#0 ;軟件計(jì)數(shù)器清零,也就是上面程序已經(jīng)調(diào)出表里的最后一個(gè)數(shù)據(jù)
  AJMP LOOP ;回到LOOP處重新把表里的第一個(gè)數(shù)調(diào)出來顯示
LIULIU: DB 00000000B,11111111B ;DB 00H ,0FFH 注意了如果是用十六進(jìn)制表示時(shí),#號(hào)后面不能 ;直接跟十六進(jìn)制里面的那幾個(gè)英文字母,要用0隔開

YS: ;延時(shí)子程序,如果是用12MHZ作為時(shí)鐘電路的話,那么延時(shí)時(shí)間為1秒
  MOV R1,#10
  D: MOV R2,#200 T: MOV R3,#248
  DJNZ R3,$
  DJNZ R2,T DJNZ R1,D
  RET ;子程序返回指令,子程序的設(shè)計(jì)一般都是因?yàn)橹鞒绦蛞{(diào)用它, ;調(diào)用完是要返回到主程序繼續(xù)運(yùn)行下一個(gè)語句的
END

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表