国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術(shù)中心 >> 單片機入門 >> 51單片機的數(shù)碼管循環(huán)顯示編程實例

51單片機的數(shù)碼管循環(huán)顯示編程實例

作者:admin 來源:不詳 發(fā)布時間:2018-05-08  瀏覽:10
  要求在數(shù)碼管上循環(huán)顯示數(shù)字 1~5。

  范例分析:
  1.1硬件分析
  數(shù)碼管采用共陽極結(jié)構(gòu)。
  1.2軟件設(shè)計
  設(shè)計中要求循環(huán)顯示1~5,很顯然應(yīng)采用循環(huán)的方法來實現(xiàn),最簡單的方法是將1~5的段碼依次由P0口送出。
  準備程序


  2、控制轉(zhuǎn)移類指令的特點及使用
 。1)長轉(zhuǎn)移指令
  LJMP Addr16
  功能:長距離無條件轉(zhuǎn)移指令
  說明:三字節(jié)指令,它直接將指令中的16位常數(shù)裝入PC,使程序無條件轉(zhuǎn)移到指定的地址處執(zhí)行。目標語句可以是程序存儲器64KB空間的任何地方。
  (2)絕對轉(zhuǎn)移指令
  AJMP addr11
  例: 4002H AJMP MM
  ……
  4600H MM: MOV A,#00H
  注意:目標語句必須和當前語句同頁。在51單片機中,64KB程序存儲器分成32頁,每頁2KB(7FFH)。
  (3)短跳轉(zhuǎn)指令
  SJMP 目標語句(rel)
  例: 4060H SJMP LOOP
  ……
  4090H LOOP:MOV A,#0FFH
  ……
  注意:短跳轉(zhuǎn)的目標語句地址必須在當前語句向前127(7FH)字節(jié),向后128(80H)字節(jié),否則在進行程序編譯時會出錯。
  (4)變址尋址轉(zhuǎn)移指令
  JMP @A+DPTR
  該指令主要用于多分支的跳轉(zhuǎn)程序設(shè)計。跳轉(zhuǎn)的目標地址是累加器A和數(shù)據(jù)指針DPTR之和,它可以是64KB存儲空間的任何地方。
  例 根據(jù)標志單元R2中的內(nèi)容,分別轉(zhuǎn)各個處理程序。
  程序如下:
  PJ1: MOV DPTR ,#TAB1
  CLR C
  MOV A,R2
  ADD A,R2 ;(R2) ×2←A
  JNC NADD
  NC DPH ;(R2)×2>256時,16位數(shù)據(jù)指針高8位加1
  NADD:JMP @A+DPTR
  TAB1:LJMP PRG0 ;轉(zhuǎn)處理程序0的首地址
  LJMP RRG1
  …
  LJMP RRG n
 。5)減1條件轉(zhuǎn)移指令組
  DJNZ Rn,目標地址(rel);如果(Rn)-1≠0,則程序跳轉(zhuǎn)到目標語句,否則順序執(zhí)行下一條語句。
  DJNZ direct,目標地址(rel);如果(direct)-1≠0,則程序跳轉(zhuǎn)到目標語句,否則順序執(zhí)行下一條語句。
   例 將8031內(nèi)部RAM的40H~4FH單元置初值A(chǔ)0H~AFH。程序為:
  START:MOV RO,#40H ;RO賦值,指向數(shù)據(jù)單元
  MOV R2,#10H ;R2賦值,為傳送字節(jié)數(shù),十六進制數(shù)
  MOV A,#0A0H ;給A賦值
  LOOP: MOV @RO,A ;開始傳送
  INC,RO ;修改地址指針,準備傳下一數(shù)地址
  INC A ;修改傳送數(shù)據(jù)值
  DJNZ R2,LOOP ;如果未傳送完,則繼續(xù)循環(huán)傳送
  RET ;當R2的值減為0時,則傳送結(jié)束

  3、延時程序的設(shè)計和延時時間的計算方法
  延時程序是一種應(yīng)用較為廣泛的小程序,一般采用多條語句循環(huán)執(zhí)行來實現(xiàn)延時。
  例1:設(shè)計一延時程序,延時時間為1ms(fosc=12MHz)。
  例2:設(shè)計一延時250ms的程序
  已有上例所舉延時1ms子程序,調(diào)用250次,即得延時250ms子程序
  DELAY2:MOV R3,#FAH
  DEL3:ACALL DELAY1
  DEL2: NOP
  NOP
  DJNZ R3,DEL3
  RET
  本段程序延時的時間為:
  1+(2+993+2)250+2=249253us
  誤差不到1ms
  思考:如何設(shè)計延時1s程序?

  4、子程序的設(shè)計方法
  4.1子程序:在程序中反復多次執(zhí)行的程序段,可編寫為子程序,在使用時通過主程序調(diào)用就可以使用它。這樣不但可以減少編程工作量,也縮短了程序的長度。
  4.2子程序的使用:
 。1)子程序調(diào)用:
  指令:ACALL ××× ;絕對調(diào)用,2KB范圍
     LCALL ××× ;長調(diào)用,64KB范圍
 。2)子程序返回:
  指令:RET ;子程序返回指令
     RETI ;中斷子程序返回指令
  ORG 2000H
  MAIN: CLR P3.2
  MOV P0,#0F9H
  LCALL DEL
  MOV P0,#0A4H
  LCALL DEL
  MOV P0,#0B0H
  LCALL DEL
  SJMP MAIN
  DEL: MOV R7,#10
  DEL1: MOV R6,#123
  …………
  DJNZ R7,DEL1
  RET
  END

  5、循環(huán)程序設(shè)計的基本方法
  循環(huán)程序:在程序中需要反復執(zhí)行的程序段,為了避免在程序中多次的編寫,可以通過利用條件轉(zhuǎn)移或無條件轉(zhuǎn)移指令來控制程序的執(zhí)行。結(jié)構(gòu)流程圖一般如下圖所示:

編輯:admin  最后修改時間:2018-05-08

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

人妻一区二区三区在线| 亚洲国产性生活高潮免费视频| 欧美激情一区=区三区| 国产亚洲精品一二三区| 亚洲国产另类久久精品| 99国产精品国产精品九九| 国产香蕉国产精品偷在线观看| 国产大屁股喷水在线观看视频 | 亚洲专区一区中文字幕| 国产av一区二区三区麻豆| 国产美女精品午夜福利视频| 又大又长又粗又黄国产| 夫妻激情视频一区二区三区| 欧美日韩国产精品第五页| 亚洲一区二区三区国产| 日韩精品一区二区三区av在线| 欧美成人免费夜夜黄啪啪| 欧美91精品国产自产| 国产精品美女午夜福利| av在线免费观看在线免费观看| 亚洲第一香蕉视频在线| av中文字幕一区二区三区在线| 青青久久亚洲婷婷中文网| 日韩不卡一区二区在线| 国产成人免费高潮激情电| 国产日韩在线一二三区| 久久人人爽人人爽大片av| 国产欧美日韩在线精品一二区| 国产av天堂一区二区三区粉嫩 | 免费黄片视频美女一区| 欧美午夜视频免费观看| 好骚国产99在线中文| 色婷婷人妻av毛片一区二区三区| 黑色丝袜脚足国产一区二区| 国产性情片一区二区三区| 欧美人禽色视频免费看| 神马午夜福利一区二区| 在线免费国产一区二区| 欧美人禽色视频免费看| 大香蕉大香蕉手机在线视频| 亚洲深夜精品福利一区|