10月3日在會場, 跟經銷商口頭上要了2種樣品, 5日就收到哈哈 HAPPY,實物如下照片,因為在新案子中會用到一個LOW PIN COUNT的MCU ,在當天會場裡,心裡就已決定要用66F30,所以回來後趕緊練習一下HOLTEK的開發環境,我手上只有一個E- WRITER PRO,不過還好66F是FLASH ROM 所以並不非常需要ICE,下面程序是第一次練習驅動7219 和大家分享 ,因為是第一次寫66F程序,應該還有很多不理想的地方,請大家多多指教
include HT66F50.inc
#define Max7129_DIN PD.4 ; // Serial-Data Input: rising edge
#define Max7129_LOAD PD.5 ; // Load-Data Input: rising edge
#define Max7129_CLK PD.3 ; // Serial-Clock Input: maximum 10MHz
DATA_RAM .SECTION AT 80H 'DATA'
CNT db ?
DATA_BYTE db ?
ADR db ?
DAT db ?
BUF_0 db ?
;// max7129 part
DECODE_MODE EQU 009H ;// 解碼方式
INTENSITY EQU 00AH ;// 顯示亮度
SCAN_LIMIT EQU 00BH ;// 掃描位數
SHUT_DOWN EQU 00CH ;// 掉電模式
DISPLAY_TEST EQU 00FH ;// 顯示測試
cs .section 'code'
org 00h
jmp starts
org 30h
starts:
CLR PDC ; PORT D IS OUTPUT
CLR TMPC0
CLR PA
clr cp0c
clr cp1c
clr adcr1
set adoff
clr acerl ;disbale ADC and CP, PA use for normal IO port
set hlclk ;set the Fsys = FH
CALL Max7219_Init
MOV A,01H
MOV ADR,A
MOV A,9fH ;0
MOV DAT,A
CALL Max7219_WriteData
MOV A,02H
MOV ADR,A
MOV A,03H ;1
MOV DAT,A
CALL Max7219_WriteData
MOV A,03H
MOV ADR,A
MOV A,3DH ;2
MOV DAT,A
CALL Max7219_WriteData
MOV A,04H
MOV ADR,A
MOV A,3BH ;3
MOV DAT,A
CALL Max7219_WriteData
MOV A,05H
MOV ADR,A
MOV A,0A3H ;4
MOV DAT,A
CALL Max7219_WriteData
MOV A,06H
MOV ADR,A
MOV A,0BAH ;5
MOV DAT,A
CALL Max7219_WriteData
MOV A,07H
MOV ADR,A
MOV A,0BEH ;6
MOV DAT,A
CALL Max7219_WriteData
MOV A,08H
MOV ADR,A
MOV A,8BH ;7
MOV DAT,A
CALL Max7219_WriteData
loop:
jmp loop
Max7219_WriteByte:
MOV A,08H
MOV CNT,A
MAX_7219_LOOP:
CLR Max7129_CLK
SZ DATA_BYTE.7 ;Skip if bit i of Data Memory is zero
JMP DIN_IS_HI
CLR Max7129_DIN
JMP NEXT_00
DIN_IS_HI:
SET Max7129_DIN
NEXT_00:
RL DATA_BYTE ;Rotate Data Memory left
SET Max7129_CLK
SDZ CNT
JMP MAX_7219_LOOP
RET
Max7219_WriteData:
SET Max7129_LOAD
MOV A,ADR
MOV DATA_BYTE,A
CALL Max7219_WriteByte
MOV A,DAT
MOV DATA_BYTE,A
CALL Max7219_WriteByte
CLR Max7129_LOAD
SET Max7129_LOAD
RET
Max7219_Init:
SET Max7129_LOAD
SET Max7129_CLK
MOV A,SHUT_DOWN
MOV ADR,A
MOV A,01H
MOV DAT,A
CALL Max7219_WriteData
MOV A,DISPLAY_TEST
MOV ADR,A
MOV A,00H
MOV DAT,A
CALL Max7219_WriteData
MOV A,DECODE_MODE
MOV ADR,A
MOV A,00H
MOV DAT,A
CALL Max7219_WriteData
MOV A,SCAN_LIMIT
MOV ADR,A
MOV A,07H
MOV DAT,A
CALL Max7219_WriteData
MOV A,INTENSITY
MOV ADR,A
MOV A,07H
MOV DAT,A
CALL Max7219_WriteData
RET
留言列表