㈠ 單片機數碼顯示程序解讀幫我讀下!!
程序應該是在數碼管上顯示2010
P2的作用是數碼管位選引腳,P1是段碼
ORG
0000H
;程序入口
;主函數
MAIN:
MOV
DPTR,#TABAL
;將數碼管碼表TABAL賦給DPTR用於查表
MOV
A,#02H
;將立即數02H賦給A
MOVC
A,@A+DPTR
;將TABAL第三個值賦給A,即0A4H賦給A
MOV
P2,#01H
;選通第一個數碼管
MOV
P1,A
;將查到的0A4H賦給P1
ACALL
DELAY
;延時
;以上這一小段就是在第一個數碼管上顯示2,下面類似
MOV
A,#0
MOVC
A,@A+DPTR
MOV
P2,#2H
MOV
P1,A
ACALL
DELAY
MOV
A,#01H
MOVC
A,@A+DPTR
MOV
P2,#04H
MOV
P1,A
ACALL
DELAY
MOV
A,#0
MOVC
A,@A+DPTR
MOV
P2,#8H
MOV
P1,A
ACALL
DELAY
AJMP
MAIN
;跳到MAIN,這里構成循環,不停地掃描數碼管顯示
;以下為延時函數
DELAY:
MOV
R6,#10H
;將10H賦給R6
LOOP1:
MOV
R7,#38H
;將38H賦給R7
LOOP2:
DJNZ
R7,LOOP2
;判斷R7減1是否為0,若不為0則繼續執行LOOP2
DJNZ
R6,LOOP1;判斷R6減1是否為0,若不為0則繼續跳到LOOP1執行
RET
;下面為共陽數碼管碼表
TABAL:
DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,080H,090H
END
㈡ 單片機寫modbus協議時CRC校驗的碼表裡的值從哪裡得來的
這兩個表就包含所有的modbus協議CRC校驗高低位元組的值,上位機的的校驗和單片機的校驗用法是一樣的,一般都是通過判斷最後校驗位元組是否一樣,一樣的就說明數據正確,否則錯誤
㈢ 單片機數碼管管碼的意義是什麼
單片機數碼管是由8個LED組成的,根據「共陰」還是「共陽」,這個碼正好相反,如果共陰,那麼發「高」也就是1點亮,如果是共陽,發「低」也就是0點亮。每個LED是按如下圖的方式排列的,於是「碼」就按這個順序來給定一個控制狀態值。
㈣ 單片機 字元段碼表和數組的區別
在單片機編程時,字元段碼表和數組的區別只在於,字元段碼表也是數組的一個形式,只是為了節約寶貴的內存空間,將這個數組定義到了代碼區,由於一旦硬體確定了,字元段碼表不再改變,這樣處理沒任何問題。簡言之,字元段碼表是固定數組,
有隻讀屬性,不能在程序運行時賦值。
而普通數組定義在內存區,即可讀取,也可重新賦值,是真正的變數數組。
㈤ 單片機十六進制數字形代碼表怎麼理解
不管二進制,還是十六進制,十進制,它們在單片機和內存中的存儲形式都是一樣的,都是一串0和1,只不過我們在外部表達時為了方便將其寫成不同的形式
例如二進制數10000,在內存中讀出就是這樣,但為便於我們 記憶,常採用10進制形式即16來寫,而有時便於書寫並且方便和二進制進行對照 ,也可用16進制形式即0X10來表達
十進制是我們多年的習慣,二進制是計算機內真正的存儲形式,但太長不便於書寫和記憶,十六進制則照顧到了書寫方便及與二進制對照,如二進制化十六進制,剛好4位二進制合一位十六進制
如101110100111分三段每段將其轉化為十六進進制形式,則合起來分別ba7,於是就直接寫成0xba7,但計算機常用的數據寬度是8位16位24位32位(二進制),為了整齊,按16位形式寫成0x0ba7,十六進制化二進制也很方便,但二進制和十進制轉化則不很方便,常需計算器
㈥ 單片機自行車碼表的設計
51經典單片機。加LCD1602液晶顯示,溫度永DS1820數字溫度感測器。車速用霍爾感測器、這個是比較容易的。