1,制作燒錄到25Q64 FLASH存儲器內的字庫文件 hex格式 用單片機編程軟件就可以 只是有行數限制 如圖(有沒有不受行數限制的編譯器)
51hei截圖20220123172756.jpg (54.1 KB, 下載次數: 91)
下載附件
2022-1-23 17:49 上傳
51hei截圖20220123172816.jpg (51.8 KB, 下載次數: 82)
下載附件
2022-1-23 17:49 上傳
2,用編程器把hex文件燒錄到25Q64 FLASH存儲器內 如果只是一個圖片 就不用查看要讀取的內存地址 從0開始讀就可以
如果是多個圖片就麻煩了 先用編程打開只有一個圖片的文件 下拉找到圖片最后一行記住內存地址
在打開有兩個圖片的文件 下拉找到第一個圖片最后一行內存地址 下一行就是第二個圖片的開頭 記住這個地址 在程序里面需要填寫
如果有多個圖片方法一樣 (有點麻煩 有沒有簡單的方法)
下圖里的00009910是第一個圖片的結尾一行 00009920是第二個圖片的開頭一行 只需記住后六位 009920 (前面兩位應該是命令位)
51hei截圖20220123174027.jpg (19.76 KB, 下載次數: 68)
下載附件
2022-1-23 17:50 上傳
由于編程器有行數限制 所以第二個圖片顯示的不全 后面的白色是25Q64內的空白區域 顏色里兩個FF就是白色#0FFFFH
51hei截圖20220123170419.jpg (86.78 KB, 下載次數: 81)
下載附件
2022-1-23 18:00 上傳
這是我用的編程器
51hei截圖20220123173159.jpg (67.72 KB, 下載次數: 78)
下載附件
2022-1-23 17:50 上傳
單片機匯編語言源程序如下:
-
- // 240*320 8位并口 ILI9341 RM68090
- // 用12C5A60S2 12M測試
- AT25F_SCK BIT P1.7 ; 25Q64
- AT25F_SI BIT P1.6 ;
- AT25F_SO BIT P1.5 ;
- AT25F_CS BIT P1.4
- TFT_CS BIT P1.3; //片選
- TFT_RS BIT P1.2; //數據/命令切換
- TFT_WR BIT P1.1; //寫控制
- TFT_RD BIT P1.0; //讀控制
- RESET BIT P3.3; //復位
- DAT_X_H_A EQU 21H; // 高8位 起始位
- DAT_X_L_A EQU 22H; // 低8位 起始位
- DAT_X_H_B EQU 23H; // 高8位 結束位
- DAT_X_L_B EQU 24H; // 低8位 結束位
- DAT_Y_H_A EQU 25H; // 高8位 起始位
- DAT_Y_L_A EQU 26H; // 低8位 起始位
- DAT_Y_H_B EQU 27H; // 高8位 結束位
- DAT_Y_L_B EQU 28H; // 低8位 結束位
- FLASH_1 EQU 29H; // FLASH 6位地址
- FLASH_2 EQU 2AH; // 地址格式 #000000H
- FLASH_3 EQU 2BH;
- DIP_VH EQU 2DH; 橫屏 豎屏
- FLAG EQU 2EH;
- DAT_H EQU 42H; 高8位
- DAT_L EQU 43H; 低8位
- //-------------------------------------------------------------------------
- ORG 0000H;
- LJMP START;
- ORG 0100H;
- //-------------------------------------------------------------------------
- START: SETB FLAG
- LCALL REGISTER_SETTINGS; 配置屏幕 寫入預置數據
- //--------------------------------------------------------------------
- MAIN:
- LCALL AT25F_SPIINIT
-
- MOV DAT_X_H_A,#00H // 高8位 起始位 豎屏 寬 起始位+圖像寬-1=結束位
- MOV DAT_X_L_A,#33H //51 低8位
- MOV DAT_X_H_B,#00H // 高8位 結束位
- MOV DAT_X_L_B,#0BEH //190 低8位
- MOV DAT_Y_H_A,#00H // 高8位 起始位 豎屏 高 起始位+圖像高-1=結束位
- MOV DAT_Y_L_A,#0B4H //180 低8位
- MOV DAT_Y_H_B,#01H // 高8位 結束位
- MOV DAT_Y_L_B,#3FH //319 低8位
- LCALL LCD_Set_X_Y; 設置區域
- MOV FLASH_1,#00H;
- MOV FLASH_2,#00H;
- MOV FLASH_3,#00H; 地址#000000H;
- LCALL AT25F_SPI_READ
- //---------------------------------------------
- MOV DAT_X_H_A,#00H // 高8位 起始位 豎屏 寬 起始位+圖像寬-1=結束位
- MOV DAT_X_L_A,#33H //51 低8位
- MOV DAT_X_H_B,#00H // 高8位 結束位
- MOV DAT_X_L_B,#0BEH //190 低8位
- MOV DAT_Y_H_A,#00H // 高8位 起始位 豎屏 高 起始位+圖像高-1=結束位
- MOV DAT_Y_L_A,#0AH //10 低8位
- MOV DAT_Y_H_B,#00H // 高8位 結束位
- MOV DAT_Y_L_B,#95H //149 低8位
- LCALL LCD_Set_X_Y; 設置區域
- MOV FLASH_1,#00H;
- MOV FLASH_2,#99H;
- MOV FLASH_3,#20H; 地址#009920H;
- LCALL AT25F_SPI_READ
- LJMP $;
- //--------------------------------------------------------------------
- AT25F_SPIINIT: ;初始化25T. SPI模式
- SETB AT25F_CS
- CLR AT25F_SCK ;必須要
- ; SETB AT25F_WP
- ; SETB AT25F_HOLD
- SETB AT25F_SO
- SETB AT25F_SI
- RET
- //--------------------------------------------------------------------
- AT25F_SPI_READ: ;連續讀25T存儲器
- CLR AT25F_CS
- MOV A,#03H ; 讀數據命令
- LCALL SPI_W1B; 寫入命令
- MOV A,FLASH_1;
- LCALL SPI_W1B; 寫入要讀取的地址
- MOV A,FLASH_2;
- LCALL SPI_W1B; 寫入要讀取的地址
- MOV A,FLASH_3;
- LCALL SPI_W1B; 寫入要讀取的地址
- MOV R5,#140; 圖片高
- AT25F_SPI_READ_2: MOV R6,#140; 圖片寬
- AT25F_SPI_READ_1: LCALL SPI_R1B; 讀數據
- MOV DAT_H,A; 暫存高8位
- LCALL SPI_R1B; 讀數據
- MOV DAT_L,A; 暫存低8位
-
- LCALL LCD_WR_DATA_16Bit; 寫入屏幕
- DJNZ R6,AT25F_SPI_READ_1
- DJNZ R5,AT25F_SPI_READ_2
- SETB AT25F_CS
- RET
- //-----------------------------------------------------
- SPI_W1B: ;寫1字節
- MOV R4,#8
- CLR AT25F_SCK
- SPI_W1B_1: RLC A
- MOV AT25F_SI,C
- CLR AT25F_SCK
- SETB AT25F_SCK
- DJNZ R4,SPI_W1B_1
- RET
- //-----------------------------------------------------
- SPI_R1B: ;讀1字節
- SETB AT25F_SI
- SETB AT25F_SO
- MOV R4,#8
- SPI_R1B_1: SETB AT25F_SCK
- CLR AT25F_SCK
- MOV C,AT25F_SO
- RLC A
- DJNZ R4,SPI_R1B_1
- CLR AT25F_SCK
- RET
- //------------------------------------------------------------------------
- //------------------------------------------------------------------------
- //--------------------------------------------------------------------
- //全屏顯示顏色
- DISPLAY: MOV R3,#00H; 寬清零
- MOV R2,#00H; 寬清零
- DISPLAY01: MOV R4,#0F0H; 240
- DISPLAY02: LCALL LCD_WR_DATA_16Bit;寫雙字節顯示數據
- DJNZ R4,DISPLAY02; 240列
- INC R3;
- CJNE R3,#00H,DISPLAY03;
- INC R2;
- DISPLAY03: CJNE R2,#01H,DISPLAY01; 高8位
- CJNE R3,#40H,DISPLAY01; 320行 低8位
- RET;
- //--------------------------------------------------------------------
- DELAY1MS: ;誤差 0us
- MOV R7,#01H
- DL1: MOV R6,#0DEH
- DL0: MOV R5,#0CH
- DJNZ R5,$
- DJNZ R6,DL0
- DJNZ R7,DL1
- RET
- DELAY10MS: ;誤差 -0.000000000001us
- MOV R7,#07H
- DL3: MOV R6,#0A8H
- DL2: MOV R5,#18H
- DJNZ R5,$
- DJNZ R6,DL2
- DJNZ R7,DL3
- RET
- DELAY120MS: ;誤差 -0.000000000007us
- MOV R7,#42H
- DL5: MOV R6,#52H
- DL4: MOV R5,#41H
- DJNZ R5,$
- DJNZ R6,DL4
- DJNZ R7,DL5
- MOV R5,#02H
- DJNZ R5,$
- NOP
- RET
- DELAY1S: ;誤差 -0.000000000056us
- MOV R7,#47H
- DL7: MOV R6,#0A8H
- DL6: MOV R5,#0FAH
- DJNZ R5,$
- DJNZ R6,DL6
- DJNZ R7,DL7
- RET
- $INCLUDE (DIP_INIT.ASM)
- END;
復制代碼
51hei.png (16.24 KB, 下載次數: 82)
下載附件
2022-1-23 19:32 上傳
匯編語言程序:
讀25Q64內圖片數據 2.4寸彩屏顯示 - 匯編.rar
(33.14 KB, 下載次數: 19)
2022-1-23 18:11 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|