久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3629|回復: 5
打印 上一主題 下一主題
收起左側

單片機讀取25Q64內的圖片數據在2.4寸彩屏上顯示 匯編源程序

[復制鏈接]
跳轉到指定樓層
樓主
1,制作燒錄到25Q64 FLASH存儲器內的字庫文件 hex格式 用單片機編程軟件就可以  只是有行數限制 如圖(有沒有不受行數限制的編譯器)


2,用編程器把hex文件燒錄到25Q64 FLASH存儲器內  如果只是一個圖片 就不用查看要讀取的內存地址 從0開始讀就可以
   如果是多個圖片就麻煩了 先用編程打開只有一個圖片的文件 下拉找到圖片最后一行記住內存地址
   在打開有兩個圖片的文件 下拉找到第一個圖片最后一行內存地址 下一行就是第二個圖片的開頭 記住這個地址 在程序里面需要填寫
   如果有多個圖片方法一樣  (有點麻煩 有沒有簡單的方法)
   下圖里的00009910是第一個圖片的結尾一行  00009920是第二個圖片的開頭一行  只需記住后六位 009920  (前面兩位應該是命令位)



由于編程器有行數限制  所以第二個圖片顯示的不全  后面的白色是25Q64內的空白區域  顏色里兩個FF就是白色#0FFFFH
  
這是我用的編程器


單片機匯編語言源程序如下:

  1. // 240*320 8位并口             ILI9341 RM68090
  2. // 用12C5A60S2 12M測試

  3.                                      AT25F_SCK  BIT P1.7 ;          25Q64
  4.                      AT25F_SI   BIT P1.6 ;
  5.                      AT25F_SO   BIT P1.5 ;
  6.                      AT25F_CS   BIT P1.4

  7.                                    TFT_CS      BIT   P1.3;                //片選        
  8.                    TFT_RS      BIT   P1.2;      //數據/命令切換
  9.                    TFT_WR      BIT   P1.1;                //寫控制
  10.                    TFT_RD      BIT   P1.0;                //讀控制
  11.                    RESET       BIT   P3.3;                 //復位

  12.                                    DAT_X_H_A   EQU      21H;           //     高8位   起始位   
  13.                                    DAT_X_L_A   EQU      22H;           //     低8位          起始位
  14.                                    DAT_X_H_B   EQU      23H;           //     高8位   結束位
  15.                                    DAT_X_L_B   EQU      24H;           //     低8位          結束位

  16.                                    DAT_Y_H_A   EQU      25H;           //     高8位   起始位   
  17.                                    DAT_Y_L_A   EQU      26H;           //     低8位          起始位
  18.                                    DAT_Y_H_B   EQU      27H;           //     高8位   結束位
  19.                                    DAT_Y_L_B   EQU      28H;           //     低8位          結束位

  20.                                    FLASH_1     EQU      29H;           //          FLASH 6位地址
  21.                                    FLASH_2     EQU      2AH;           //          地址格式 #000000H
  22.                                    FLASH_3     EQU      2BH;

  23.                                    DIP_VH           EQU      2DH;                橫屏 豎屏
  24.                                    FLAG        EQU      2EH;

  25.                                     DAT_H       EQU      42H;                高8位
  26.                                    DAT_L       EQU      43H;                低8位
  27. //-------------------------------------------------------------------------
  28.                    ORG 0000H;
  29.                    LJMP START;
  30.                    ORG 0100H;
  31. //-------------------------------------------------------------------------
  32. START:                            SETB FLAG
  33.                    LCALL REGISTER_SETTINGS;        配置屏幕  寫入預置數據
  34. //--------------------------------------------------------------------
  35. MAIN:                 
  36.                                    LCALL AT25F_SPIINIT
  37.                                 
  38.                                    MOV DAT_X_H_A,#00H               //     高8位   起始位          豎屏        寬   起始位+圖像寬-1=結束位
  39.                                    MOV DAT_X_L_A,#33H         //51   低8位
  40.                                    MOV DAT_X_H_B,#00H               //     高8位   結束位  
  41.                                    MOV DAT_X_L_B,#0BEH         //190   低8位

  42.                                    MOV DAT_Y_H_A,#00H         //     高8位   起始位          豎屏         高   起始位+圖像高-1=結束位
  43.                                    MOV DAT_Y_L_A,#0B4H         //180   低8位
  44.                                    MOV DAT_Y_H_B,#01H         //     高8位   結束位
  45.                                    MOV DAT_Y_L_B,#3FH         //319   低8位

  46.                    LCALL LCD_Set_X_Y; 設置區域
  47.                                    MOV FLASH_1,#00H;                                   
  48.                                    MOV FLASH_2,#00H;                                 
  49.                                    MOV FLASH_3,#00H;              地址#000000H;         
  50.                                    LCALL AT25F_SPI_READ
  51. //---------------------------------------------
  52.                                    MOV DAT_X_H_A,#00H               //     高8位   起始位          豎屏        寬   起始位+圖像寬-1=結束位
  53.                                    MOV DAT_X_L_A,#33H         //51   低8位
  54.                                    MOV DAT_X_H_B,#00H               //     高8位   結束位  
  55.                                    MOV DAT_X_L_B,#0BEH         //190   低8位

  56.                                    MOV DAT_Y_H_A,#00H         //     高8位   起始位          豎屏         高   起始位+圖像高-1=結束位
  57.                                    MOV DAT_Y_L_A,#0AH         //10   低8位
  58.                                    MOV DAT_Y_H_B,#00H         //     高8位   結束位
  59.                                    MOV DAT_Y_L_B,#95H         //149   低8位

  60.                    LCALL LCD_Set_X_Y; 設置區域
  61.                                    MOV FLASH_1,#00H;
  62.                                    MOV FLASH_2,#99H;                                 
  63.                                    MOV FLASH_3,#20H;              地址#009920H;   
  64.                                    LCALL AT25F_SPI_READ

  65.                    LJMP $;                                                                                   
  66. //--------------------------------------------------------------------
  67. AT25F_SPIINIT: ;初始化25T. SPI模式
  68.                      SETB  AT25F_CS
  69.                      CLR AT25F_SCK  ;必須要
  70. ;                     SETB AT25F_WP
  71. ;                     SETB AT25F_HOLD
  72.                      SETB AT25F_SO
  73.                      SETB AT25F_SI
  74.                      RET
  75. //--------------------------------------------------------------------
  76. AT25F_SPI_READ: ;連續讀25T存儲器
  77.                      CLR AT25F_CS

  78.                      MOV A,#03H ;    讀數據命令                  
  79.                      LCALL SPI_W1B;  寫入命令

  80.                                          MOV A,FLASH_1;
  81.                                          LCALL SPI_W1B;  寫入要讀取的地址
  82.                                          MOV A,FLASH_2;
  83.                                          LCALL SPI_W1B;  寫入要讀取的地址
  84.                                          MOV A,FLASH_3;
  85.                                          LCALL SPI_W1B;  寫入要讀取的地址

  86.                                          MOV R5,#140;              圖片高
  87. AT25F_SPI_READ_2:    MOV R6,#140;                   圖片寬
  88. AT25F_SPI_READ_1:         LCALL SPI_R1B;            讀數據
  89.                      MOV DAT_H,A;              暫存高8位
  90.                      LCALL SPI_R1B;            讀數據
  91.                      MOV DAT_L,A;              暫存低8位        
  92.                                              
  93.                      LCALL LCD_WR_DATA_16Bit;  寫入屏幕  

  94.                      DJNZ R6,AT25F_SPI_READ_1
  95.                      DJNZ R5,AT25F_SPI_READ_2
  96.                      SETB AT25F_CS
  97.                      RET
  98. //-----------------------------------------------------
  99. SPI_W1B: ;寫1字節                        
  100.                      MOV R4,#8
  101.                      CLR AT25F_SCK
  102. SPI_W1B_1:                         RLC A
  103.                      MOV AT25F_SI,C
  104.                      CLR AT25F_SCK   
  105.                      SETB AT25F_SCK
  106.                      DJNZ R4,SPI_W1B_1
  107.                      RET
  108. //-----------------------------------------------------
  109. SPI_R1B: ;讀1字節
  110.                      SETB AT25F_SI
  111.                      SETB AT25F_SO
  112.                      MOV R4,#8
  113. SPI_R1B_1:                     SETB AT25F_SCK         
  114.                      CLR AT25F_SCK
  115.                      MOV C,AT25F_SO
  116.                      RLC A
  117.                      DJNZ R4,SPI_R1B_1
  118.                      CLR AT25F_SCK
  119.                      RET
  120. //------------------------------------------------------------------------
  121. //------------------------------------------------------------------------
  122. //--------------------------------------------------------------------
  123. //全屏顯示顏色
  124. DISPLAY:           MOV R3,#00H;           寬清零
  125.                    MOV R2,#00H;           寬清零
  126. DISPLAY01:         MOV R4,#0F0H;          240
  127. DISPLAY02:              LCALL LCD_WR_DATA_16Bit;寫雙字節顯示數據
  128.                            DJNZ R4,DISPLAY02;        240列
  129.                            INC R3;
  130.                            CJNE R3,#00H,DISPLAY03;
  131.                            INC R2;
  132. DISPLAY03:         CJNE R2,#01H,DISPLAY01;                    高8位
  133.                    CJNE R3,#40H,DISPLAY01; 320行   低8位
  134.                    RET;         
  135. //--------------------------------------------------------------------
  136. DELAY1MS:   ;誤差 0us
  137.                    MOV R7,#01H
  138. DL1:                           MOV R6,#0DEH
  139. DL0:                           MOV R5,#0CH
  140.                    DJNZ R5,$
  141.                    DJNZ R6,DL0
  142.                    DJNZ R7,DL1
  143.                    RET
  144. DELAY10MS:   ;誤差 -0.000000000001us
  145.                    MOV R7,#07H
  146. DL3:                           MOV R6,#0A8H
  147. DL2:                           MOV R5,#18H
  148.                    DJNZ R5,$
  149.                    DJNZ R6,DL2
  150.                    DJNZ R7,DL3
  151.                    RET
  152. DELAY120MS:   ;誤差 -0.000000000007us
  153.                    MOV R7,#42H
  154. DL5:                           MOV R6,#52H
  155. DL4:                           MOV R5,#41H
  156.                    DJNZ R5,$
  157.                    DJNZ R6,DL4
  158.                    DJNZ R7,DL5
  159.                    MOV R5,#02H
  160.                    DJNZ R5,$
  161.                    NOP
  162.                    RET
  163. DELAY1S:   ;誤差 -0.000000000056us
  164.                    MOV R7,#47H
  165. DL7:                           MOV R6,#0A8H
  166. DL6:                           MOV R5,#0FAH
  167.                                DJNZ R5,$
  168.                                DJNZ R6,DL6
  169.                                DJNZ R7,DL7
  170.                                RET




  171. $INCLUDE (DIP_INIT.ASM)



  172.                                    END;
復制代碼


匯編語言程序: 讀25Q64內圖片數據 2.4寸彩屏顯示 - 匯編.rar (33.14 KB, 下載次數: 19)

評分

參與人數 2黑幣 +45 收起 理由
xianming + 5
admin + 40 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:983641 發表于 2022-2-18 12:29 | 只看該作者
顯示速度如何?
回復

使用道具 舉報

板凳
ID:126422 發表于 2022-10-2 12:08 | 只看該作者
請教樓主:
3.3V 電壓的25Q64怎樣與5V單片機管腳連接,(電平不一致),謝謝!
回復

使用道具 舉報

地板
ID:261025 發表于 2022-10-2 13:26 | 只看該作者
lijn 發表于 2022-10-2 12:08
請教樓主:
3.3V 電壓的25Q64怎樣與5V單片機管腳連接,(電平不一致),謝謝!

用100Ω電阻連接
回復

使用道具 舉報

5#
ID:126422 發表于 2022-10-9 22:47 | 只看該作者
請教樓主:
怎樣把一張240*320的圖片,寫入25Q64里面,用什么方式,或者軟件,謝謝!
回復

使用道具 舉報

6#
ID:126422 發表于 2022-10-13 10:56 | 只看該作者
經過幾天的測試,1)用土豪金CH341A可以寫入25Q64,但只能一次性寫入,卻不能
寫入第二張圖片。2)用單片機編譯程序后,一張圖片代碼分幾次寫入。但需要人工計算好地址。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产一区999 | 久久国际精品 | 国产精品美女久久久久aⅴ国产馆 | 波多野结衣先锋影音 | 91精品国产色综合久久 | 91在线免费视频 | 国产精品视频偷伦精品视频 | 欧美精品三区 | 日本精品一区二区三区在线观看 | 日本精品在线一区 | 久久久久久九九九九 | 日韩欧美一区二区三区 | 久久久久亚洲精品 | 成人中文字幕在线观看 | 欧美国产视频 | 国产在线精品一区二区 | 成人特区| 国产精品揄拍一区二区 | 日日骚视频 | 国产成人精品久久二区二区 | 丁香婷婷久久久综合精品国产 | 狠狠天天| 天堂久久久久久久 | 一区观看 | 欧美日韩国产一区二区三区 | 国产中文 | 久久精品一二三影院 | 自拍偷拍中文字幕 | 久久一级 | 国产女人与拘做视频免费 | 91精品国产日韩91久久久久久 | 日韩中文字幕一区二区 | 亚洲成人av | 日韩视频在线免费观看 | 狠狠干夜夜草 | 九热在线 | 亚洲午夜av | 国产1区2区 | 中文字幕1区2区 | 国产欧美精品区一区二区三区 | 91av视频在线观看 |