网上找的 单片机 8*8点阵 显示汉字 求知道 TOX: 里面程序作用
TIMEQU30HCNTAEQU31HCNTBEQU32HORG0000HLJMPSTARTORG0000BHLJMPT0XORG0030HSTART:MOVTIM,#0...
TIM EQU 30H
CNTA EQU 31H
CNTB EQU 32H
ORG 0000H
LJMP START
ORG 0000BH
LJMP T0X
ORG 0030H
START: MOV TIM, #00H
MOV CNTA,#00H
MOV CNTB,#00H
MOV TMOD,#01H
MOV TH0, #(65536-4000)/256 ;初值4ms 定时1s 即扩大250倍
MOV TL0, #(65536-4000) MOD 256
SETB TR0
SETB ET0
SETB EA
SJMP $
T0X: MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#TAB
MOV A,CNTA
MOVC A,@A+DPTR
MOV P3,A
MOV DPTR,#DIGIT
MOV A,CNTB
MOV B,#8
MUL AB
ADD A,CNTA
MOVC A,@A+DPTR
MOV P1,A
INC CNTA
MOV A,CNTA
CJNE A,#8,NEXT ;循环8次
MOV CNTA,#00H
NEXT: INC TIM
MOV A,TIM
CJNE A,#250,NEX ;定时扩展倍数
MOV TIM,#00H
INC CNTB
MOV A,CNTB
CJNE A,#4,NEX ;循环4次
MOV CNTB,#00H
NEX: RETI
TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
DIGIT: DB 02H,0A2H,0BCH,0A0H,0BEH,0A2H,0A2H,04H
DB 02H,0FAH,0AAH,0AAH,0AAH,0AAH,0FAH,02H
DB 70H,0FFH,72H,56H,0F8H,5CH,72H,12H
DB 12H,0F4H,98H,91H,0FFH,98H,94H,12H
END 展开
CNTA EQU 31H
CNTB EQU 32H
ORG 0000H
LJMP START
ORG 0000BH
LJMP T0X
ORG 0030H
START: MOV TIM, #00H
MOV CNTA,#00H
MOV CNTB,#00H
MOV TMOD,#01H
MOV TH0, #(65536-4000)/256 ;初值4ms 定时1s 即扩大250倍
MOV TL0, #(65536-4000) MOD 256
SETB TR0
SETB ET0
SETB EA
SJMP $
T0X: MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#TAB
MOV A,CNTA
MOVC A,@A+DPTR
MOV P3,A
MOV DPTR,#DIGIT
MOV A,CNTB
MOV B,#8
MUL AB
ADD A,CNTA
MOVC A,@A+DPTR
MOV P1,A
INC CNTA
MOV A,CNTA
CJNE A,#8,NEXT ;循环8次
MOV CNTA,#00H
NEXT: INC TIM
MOV A,TIM
CJNE A,#250,NEX ;定时扩展倍数
MOV TIM,#00H
INC CNTB
MOV A,CNTB
CJNE A,#4,NEX ;循环4次
MOV CNTB,#00H
NEX: RETI
TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
DIGIT: DB 02H,0A2H,0BCH,0A0H,0BEH,0A2H,0A2H,04H
DB 02H,0FAH,0AAH,0AAH,0AAH,0AAH,0FAH,02H
DB 70H,0FFH,72H,56H,0F8H,5CH,72H,12H
DB 12H,0F4H,98H,91H,0FFH,98H,94H,12H
END 展开
展开全部
你好 这是利用单片机的定时器 来控制完成扫描显示的 每4ms刷新一列的led。
用你的程序 来大致说明一下吧
T0X: MOV TH0,#(65536-4000)/256 ;进入中断从装定时数据
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#TAB ;本段送入列地址
MOV A,CNTA
MOVC A,@A+DPTR
MOV P3,A
MOV DPTR,#DIGIT 本段送入行地址
MOV A,CNTB
MOV B,#8
MUL AB
ADD A,CNTA
MOVC A,@A+DPTR
MOV P1,A 到此完成一列的显示 每次4ms
INC CNTA
MOV A,CNTA
CJNE A,#8,NEXT ;循环8次
MOV CNTA,#00H ;到此完成一个画面的显示用时32ms
NEXT: INC TIM ;每个画面显示1s
MOV A,TIM
CJNE A,#250,NEX ;定时扩展倍数
MOV TIM,#00H
INC CNTB
MOV A,CNTB
CJNE A,#4,NEX ;循环4次
MOV CNTB,#00H ;共4个画面 4s
NEX: RETI
说明 单片机的软件 和硬件是严格匹配的,TAB为列地址数据 DIGIT为行地址数据,
本软件为查表方式来显示需要的数据的。
用你的程序 来大致说明一下吧
T0X: MOV TH0,#(65536-4000)/256 ;进入中断从装定时数据
MOV TL0,#(65536-4000) MOD 256
MOV DPTR,#TAB ;本段送入列地址
MOV A,CNTA
MOVC A,@A+DPTR
MOV P3,A
MOV DPTR,#DIGIT 本段送入行地址
MOV A,CNTB
MOV B,#8
MUL AB
ADD A,CNTA
MOVC A,@A+DPTR
MOV P1,A 到此完成一列的显示 每次4ms
INC CNTA
MOV A,CNTA
CJNE A,#8,NEXT ;循环8次
MOV CNTA,#00H ;到此完成一个画面的显示用时32ms
NEXT: INC TIM ;每个画面显示1s
MOV A,TIM
CJNE A,#250,NEX ;定时扩展倍数
MOV TIM,#00H
INC CNTB
MOV A,CNTB
CJNE A,#4,NEX ;循环4次
MOV CNTB,#00H ;共4个画面 4s
NEX: RETI
说明 单片机的软件 和硬件是严格匹配的,TAB为列地址数据 DIGIT为行地址数据,
本软件为查表方式来显示需要的数据的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询