OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7695|回复: 8

SOS 求助电子纸屏与单片机结合实例譬如stm32

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-7-16
在线时间
0 小时
发表于 2012-7-24 09:11:30 | 显示全部楼层 |阅读模式
电子纸屏与单片机结合实例譬如stm32,小弟想把stm32的TFT屏换成电子纸屏,无缘网络资源太少,求助大家!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2200
金钱
2200
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-7-24 10:03:02 | 显示全部楼层
这种东西贵,而且也还没普及,资料可能厂家也不愿意公开。
https://github.com/roxma
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-7-16
在线时间
0 小时
 楼主| 发表于 2012-7-24 10:35:55 | 显示全部楼层
回复【2楼】Pony279:
---------------------------------
谢谢啊 呵呵  看来只能偃旗息鼓了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2012-7-24 11:11:07 | 显示全部楼层
可以淘宝找一下.不过就算有,估计也没资料给你.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

6

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
98
金钱
98
注册时间
2012-6-21
在线时间
12 小时
发表于 2012-7-24 11:17:47 | 显示全部楼层

网上下载的一个  电子纸驱动程序,供你参考


.SYMBOLS
.LIST ON
.CHIP R65C02
.syntax 6502
;============================================================
;= Project name: TT20                                       =
;= Code function: TT20 simple Demo code for EPD             =
;= Finished date: 2011/11/01                                =
;= Last modify date: 2010/04/07                             =
;= Assemble encoder: Eric Lin                               =
;============================================================
;==================================================
;         REGISTER ADDRESS DEFINATION      =SFR地址
;==================================================
INTEN     EQU 00H          ;中断使能寄存器
SMCR     EQU 01H          ;系统模式控制寄存器

T0CTRL    EQU 02H          ;计数器0控制寄存器
T1CTRL   EQU 03H          ;计数器1控制寄存器
TMR0L   EQU 04H          ;计数器0低位寄存器
TMR0H     EQU   05H          ;计数器0高位寄存器
TMR1L   EQU 06H          ;计数器1低位寄存器
TMR1H   EQU 07H          ;计数器1高位寄存器

SECOND    EQU 08H          ;秒寄存器
ALMSEC    EQU 09H          ;秒闹铃寄存器
MINUTE   EQU 0AH          ;分寄存器
ALMMIN   EQU 0BH          ;分闹铃寄存器寄存器
HOUR     EQU 0CH          ;时寄存器
ALMHR     EQU   0DH          ;时闹铃寄存器

ADCCTRL   EQU   0EH          ;AD控制寄存器
ADCDATA   EQU   0FH          ;AD数据寄存器

SMCR2    EQU 11H          ;系统模式控制寄存器2

UARTCKL   EQU 12H          ;异步时钟低位寄存器
UARTCKH   EQU 13H          ;异步时钟高位寄存器
UARTCTRL  EQU 14H          ;异步时钟控制寄存器
UARTDATA  EQU 15H          ;异步时钟数据寄存器

SPICTRL   EQU   16H          ;SPI控制端口
SPIDATA   EQU 17H          ;SPI数据端口

PAF   EQU 18H          A口其位寄存器
PACN   EQU 19H          A口NMOS/CMOS输出驱动控制寄存器
PADIR    EQU 1AH          A口方向寄存器
PADATA   EQU 1BH          A口数据寄存器

PBF       EQU   1CH           ;同上
PBCN      EQU   1DH
PBDIR     EQU   1EH
PBDATA    EQU   1FH
;==================================================
;         REGISTER ADDRESS DEFINATION END         =
;==================================================
;---------------------------------------------------------------------------------------------------------------------------
;==================================================
;         PROGRAM FLAG & PARAMETER DEFINATION     =
;          =
;==================================================
adL_flag          equ     FEH
adH_flag          equ     FFH

DELAY_FG1         equ     401H
DELAY_FG2         equ     402H
UARTDATA_temp     equ     403H
SPIDATA_R_temp    equ     404H
SPIDATA_T_temp    equ     405H
count_flag        equ     406H  
ROM_check_flag    equ     407H
RAM_check_flag    equ     408H  

Check_sum_buffer0 equ     409H
Check_sum_buffer1 equ     40AH
Check_sum_buffer2 equ     40BH
Hchannel_temp_reg equ     40CH
;==================================================
;         PROGRAM FLAG & PARAMETER DEFINATION END =
;==================================================
;---------------------------------------------------------------------------------------------------------------------------
;==================================================
;=        PROGRAM INITIAL SETTING                 =
;==================================================
          ORG       4000H            rogram initial from ROM address $4000H   
RESET:                ;Setting Stack RAM
          sei                        ;置位中断禁止标志I    1→I
          ldx     #FFH               ;将FF送入寄存器X
         ;设置堆叠         
          txs               ;将变址寄存器X的内容送入堆栈指针               
          stz     INTEN       ;中断使能寄存器 清零
          lda     #00000011b         ;bit5=0 disable LVR, bit0~1=11 enable charge pump
          sta     SMCR2       ;将累加器A中的内容 (00000011)送入SMCR2 (系统模式控制寄存器2)
          lda     #01000011b         ;将(00000011)送入累加器A中,bit2=0 enable charge pump, bit0~1=11 FM/1 , bit6=1 enable 32.768Khz
          sta     SMCR               ;将累加器A中的内容 (00000011)送入SMCR2 (系统模式控制寄存器2)      
          stz     T0CTRL             ;T0CTRL寄存器清零
          stz     T1CTRL             ;T1CTRL寄存器清零           
;----------------------------------------------------
          ldx     #0CH               ;将FF送入寄存器X
Clear_ALL_Flag:
          stz     $401H,x       ;
          dex                        ;Clear RAM address  (X暫存器內容減1)
          bpl     Clear_ALL_Flag     ;若S = 0,则调到Clear_ALL_Flag处执行
;----------------------------------------------------                                            
;---------Timer1_setting-------------
         lda       #FFH       ;将FF送入寄存器X
         sta       TMR1H      ;将累加器A中的内容 (FF) 送入TMR1H (计数器1高位寄存器)
         lda       #FFH       ;将FF送入寄存器X
         ;lda       #00H             ;Timer1 for 0.5ms buffer
         sta       TMR1L             ;将累加器A中的内容 (FF) 送入TMR1L (计数器1低位寄存器)
;---------PA_OUT_setting-------------
         lda       #00000001b      ;将(00000001)送入累加器A中
         sta       PADIR       ;将累加器A中内容 送入PADIR寄存器
         lda       #00000001b      ;将(00000001)送入累加器A中
         sta       PACN       ;将累加器A中内容 送入PACN寄存器
 ;---------------------------------------------------- 
         cli         ;置位中断禁止标志I    1→I
                          
;==================================================
;         PROGRAM INITIAL SETTING END             =
;==================================================              
;-------------------------------------------------------------------------------------------
;==================================================
;         MAIN PROGRAM                            =
;================================================== 
main:
  jsr    Led_display
         jsr       Clr_EPD_Display            ;Display initial to clear ;初步显示清零。定格为全黑
         jsr       EPD_pattern1               ;pattern black background and white segement;黑底白字模式        
         jsr       Delay_1s                   rogram Delay 1sec;延时1S
         jsr       Delay_1s
         jsr       Delay_1s
         jsr       Clr_EPD_Display            ;clear display pattern from white to black;全屏有全白到全黑       
         jsr       EPD_pattern2               ;pattern2 inverse the color of background and segement
         jsr       Delay_1s                   rogram Delay 1sec
         jsr       Delay_1s
         jsr       Delay_1s
  jsr    Led_display 
         jmp       main

                                        
;==================================================
;         MAIN PROGRAM END                        =
;==================================================
;-------------------------------------------------------------------------------------------
;==================================================
;                   Macro                         =
;==================================================

;==================================================
;                 Macro End                       =
;==================================================

;==================================================
;         SUBROUTINE                              =
;==================================================


;===============Dispaly pattern2================
EPD_pattern2:
          pha       HA指令,功能是把累加器A的内容按堆栈指针S所指示的位置送入堆栈,然后堆栈指针减1
          php      HP指令,功能是把标志寄存器P的内容按堆栈指针S所指示的位置送入堆栈,然后堆栈指针减1

;--------White BG and Black Segement-------白底黑字模式
          lda      #01000100b     ;将 01000100b 送入寄存器X
          sta      Hchannel_temp_reg  ;将 01000100b 送入 Hchannel_temp_reg
          jsr      EPD_fill_in   ;转到 EPD_fill_in 执行
          lda      #01000111b   ;
          sta      $203CH                ;SEG为低,BG为低,SEG为高
;--------White BG and Black Segement-------         
          lda      #01010011b            ;Enable All Hi-V channel read state from register  
          sta      SMCR
          lda      #01000011b            ;Then all Hi-V channel latch out for synchronize
          sta      SMCR
          jsr      Delay_1s
          jsr      Delay_1s
          jsr      Delay_1s

          plp      ;plp指令,功能是先让堆栈指针S+1,然后取加过1的S所指向的单元的内容,把它送标志寄存器P
          pla      ;pla指令,功能是先让堆栈指针S+1,然后取加过1的S所指向的单元的内容,把它送累加器A

          rts     ;从子函数返回
;===============Dispaly pattern2================
;===============Dispaly pattern1================
EPD_pattern1:
          pha
          php

;--------Black BG and White Segement-------黑底白字
          lda      #01110111b
          sta      Hchannel_temp_reg
          jsr      EPD_fill_in    
          lda      #01000100b
          sta      $203CH         ;SEG为高,COM和BG为低(没有电压差时候维持原来的状态)
;--------Black BG and White Segement-------
        
pattern_modual:
         
          lda      #01010011b          ;Enable All Hi-V channel read state from register;输出更新
          sta      SMCR
          lda      #01000011b          ;Then all Hi-V channel latch out for synchronize ;禁止输出更新
          sta      SMCR  
 
          jsr      Delay_1s
          jsr      Delay_1s
          jsr      Delay_1s

          plp
          pla
          rts
;===============Dispaly pattern1================
;===========Using Timer1 to Delay 1s============
Delay_1s:
          pha
          php

          lda      #01100000b  ;将 01100000b 送入 T1CTRL
          sta      T1CTRL
wait_timer1:          
          lda      T1CTRL               ;Delay subroutine for 1sec
          and      #80H
          beq      wait_timer1
          stz      T1CTRL
          

          plp
          pla
          rts
;===========Using Timer1 to Delay 1s============ 
;=============Clear_EPD_Display=================
Clr_EPD_Display:
         pha
         php
      
;------------Reflash to white-----------
         lda       #01110111b
         sta       Hchannel_temp_reg  
         jsr       EPD_fill_in
         lda       #01000111b             ;BG为低,COM,SEG为高
         sta       $203CH    ; 
;------------Reflash to white-----------  ;刷白

         lda       #01010011b          ;Enable All Hi-V channel read state from register;所有的输出状态更新  
         sta       SMCR
         lda       #01000011b          ;Then all Hi-V channel latch out for synchronize;禁止所有的状态更新
         sta       SMCR    

         jsr       Delay_1s           ;延时1S                                                 
;-----------Reflash to black------------ ;刷黑
         lda       #01000100b
         sta       Hchannel_temp_reg
         jsr       EPD_fill_in             
         lda       #01110100b
         sta       $203CH              ;BG为高,COM和SEG为低
;-----------Reflash to black------------ ;刷黑
         lda       #01010011b          ;Enable All Hi-V channel read state from register  
         sta       SMCR
         lda       #01000011b          ;Then all Hi-V channel latch out for synchronize 
         sta       SMCR

         jsr       Delay_1s
        
 
         plp
         pla
         rts
;=============Clear_EPD_Display=================
;=============Fill in the same value============
EPD_fill_in:
         pha
         php
 
         lda       Hchannel_temp_reg   ;
         ldy       #3CH                ;One register control two Hi-V channel (refer to spec.)and then all output High=36V   
store_loop:
         sta       $2000H,y
         dey                           ;Storing the state into Hi-V channel control register from 2000H~203CH
         bpl       store_loop

         plp
         pla
         rts
;=============Fill in the same value============

Led_display:
         pha
         php
         lda      #00000000b
         sta      PADATA
         jsr      Delay_1s
         jsr      Delay_1s
         jsr      Delay_1s
         lda      #00000001b
         sta      PADATA
         plp
         pla
         rts

;==================================================
;         SUBROUTINE END                          =
;==================================================
;-----------------------------------------------------------------------------------------------------------------------------------------------------
;==================================================
;         INDEX TABLE                             =
;==================================================      

;==================================================
;         INDEX TABLE END                         =
;==================================================
;-----------------------------------------------------------------------------------------------------------------------------------------------------
;==================================================
;         INTERRUPT SUBROUTINE                    =
;==================================================
UART_INT:
URST_INT:
ADC_INT:
TIMER1_INT:
TIMER0_INT:
PB_INT:
PA_INT:
RTC_INT:
;===================================================
;          INTERRUPT SUBROUTINE END                =
;===================================================
;===================================================
;          VECTOR OF SYSTEM INTERRUPT              =
;===================================================  
             ORG     $7FE0H
   DW     UART_INT
          DW     URST_INT
   DW     ADC_INT
   DW     TIMER1_INT
   DW     TIMER0_INT
   DW     PB_INT
   DW        PA_INT
   DW        RTC_INT

             ORG     $7FFCH
          DW        RESET     
;===================================================
;          VECTOR OF SYSTEM INTERRUPT              =
;===================================================                                   
    END

回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-7-16
在线时间
0 小时
 楼主| 发表于 2012-7-24 13:01:18 | 显示全部楼层
回复【5楼】斯就:
---------------------------------
真无私 但是能不能介绍几款好的电子纸屏啊 电子纸的详细资料啊
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2012-7-16
在线时间
0 小时
 楼主| 发表于 2012-7-24 13:02:01 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
O(∩_∩)O谢谢原子兄 找你好久啊
回复 支持 反对

使用道具 举报

7

主题

48

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
453
金钱
453
注册时间
2012-2-24
在线时间
128 小时
发表于 2013-4-21 23:34:57 | 显示全部楼层
回复【楼主位】xupujiang120:
---------------------------------
我的stm32电子纸套件很快就会出炉,到时候完全开源。
回复 支持 反对

使用道具 举报

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2016-2-17
在线时间
15 小时
发表于 2021-8-4 20:27:17 | 显示全部楼层
电子纸驱动相关可以找我~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 03:40

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表