一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: pla155
收起左侧

[其他DIY] 玩 - “可以做AVR开发板的拆机小屏”

[复制链接]
 楼主| 发表于 2017-3-12 02:05 | 显示全部楼层
本帖最后由 pla155 于 2017-3-12 02:07 编辑

谢谢楼上的高人,我是初学AVR,还不怎么会用。

井底之蛙!
自己费了好大劲,原来别人都已经“登月”了,我还在学走路!!!


终于完成了屏幕的初始化。

5V电压,调整简单Vo后,用01填充三块屏幕的效果。




INIT.jpg



不能自私,代码和固件分享一下。
收费的啊,这个一定要收费。
不收费,都变成垃圾了。
留给真正想看代码的人。
先说好,我是初学者,代码是纯汇编的,没写注释,非诚勿扰。

/*******************************************************************************
;*        MCU        = ATmega64A  YLEEE 论坛 笔记本1 的19264带字库液晶屏
;*        2017-03-12                   https://www.yleee.com.cn/thread-58498-1-1.html
;*  AVR Studio Ver 4.19          https://www.yleee.com.cn/thread-58225-1-1.html
;*  Atmel AVR Assembler          http://bbs.mydigit.cn/read.php?tid=1501687
;*  GT23L16U2W 字库
*******************************************************************************/
.INCLUDE "M64DEF.INC"                             ; 包含ATmega64头文件
;*******************************************************************************
;* SYMBLE DEFINITIONS 符号定义        Set a symbol equal to an expression
;*******************************************************************************
.EQU    LCM_Data        = PORTC         ; 液晶模块数据端口
.EQU    S5              = 6             ; PORTB 按键
.EQU    S1              = 5             ; PORTB
.EQU    S2              = 4             ; PORTB
.EQU    S3              = 3             ; PORTB
.EQU    S4              = 2             ; PORTB
.EQU    IR_Data         = 6             ; PORTE
;*******************************************************************************
.EQU        LCM_CMD_ON                = 0X03F                 ; KS0108 命令数据 :开显示
.EQU        LCM_CMD_OFF                = 0X03E                 ; KS0108 命令数据 : 关显示
.EQU        LCM_CMD_X0                = 0X0B8                 ; KS0108 命令数据 : 起始页地址
.EQU        LCM_CMD_Y0                = 0X040                 ; KS0108 命令数据 : 起始列地址
.EQU        LCM_CMD_LINE0        = 0X0C0                 ; KS0108 命令数据 : 显示起始列地址
.EQU        LCM_CMD_PAGE0        = 0X0B8                 ; KS0108 命令数据 : 第1页
.EQU        LCM_CMD_PAGE1        = 0X0B9                 ; KS0108 命令数据 : 第2页
.EQU        LCM_CMD_PAGE2        = 0X0BA                 ; KS0108 命令数据 : 第3页
.EQU        LCM_CMD_PAGE3        = 0X0BB                 ; KS0108 命令数据 : 第4页
.EQU        LCM_CMD_PAGE4        = 0X0BC                 ; KS0108 命令数据 : 第5页
.EQU        LCM_CMD_PAGE5        = 0X0BD                 ; KS0108 命令数据 : 第6页
.EQU        LCM_CMD_PAGE6        = 0X0BE                 ; KS0108 命令数据 : 第7页
.EQU        LCM_CMD_PAGE7        = 0X0BF                 ; KS0108 命令数据 : 第8页
;*******************************************************************************
.MACRO  Speak_ON                        ;蜂鸣器控制
        SBI     PORTD   , 0
.ENDMACRO;-----------------------------
.MACRO  Speak_OFF
        CBI     PORTD   , 0
.ENDMACRO;---------------------------------------------------------------------






JET19264-ASM.rar (2.49 KB, 下载次数: 3, 售价: 10 人民币)
JET19264-HEX.rar (533 Bytes, 下载次数: 1, 售价: 10 人民币)
熔丝  0xFF82BF
 楼主| 发表于 2017-3-12 02:36 | 显示全部楼层
本帖最后由 pla155 于 2017-3-12 11:20 编辑

发现个问题。

准备玩字库芯片,想把电压降下来,就先把分压电阻改了一下。
R22还是原来的103
R21是三个512的电阻并联。
实测:Vcc = 3.29  ; Vout = -9.16 ; Vo = -7.8 , 效果比较满意。

-7v.jpg


但是问题来了。
电压降低以后,屏幕初始化有部分噪声点,增加了SCK相关的延时后,问题解决。

感觉这块屏幕刷新率可能不很理想,做示波器或许有先天的不足。工作在音频范围内应该是可以的吧。

有网友说做一个串口屏,的确是个用途。

另外,既然是串口屏,做一个串口终端也不错,有4K的片内RAM也基本够用了。
 楼主| 发表于 2017-3-12 10:08 | 显示全部楼层
谁能解释一下高通的字库芯片,一般读取和快速模式什么意思啊?
怎么感觉一个样?
3.1.2 Read Data Bytes(一般读取).png

3.1.3 Read Data Bytes at Higher Speed(快速读取点阵数据).png
发表于 2017-3-12 17:13 | 显示全部楼层
我很好奇那么粗的线是怎么焊到ATmega64的引脚上的?
发表于 2017-3-12 21:12 | 显示全部楼层
谢谢楼主  要这种屏的话来找我go
 楼主| 发表于 2017-3-13 19:05 | 显示全部楼层
本帖最后由 pla155 于 2017-3-20 22:03 编辑

2天了,字库搞不定,读出来的都是0。

/******************************************************************************
1 概述
    GT23L16U2W是一款内含11X12点阵和15X16点阵的汉字库芯片,支持Unicode V3.0汉字
(含有国家信标委GB13000合法授权)、ASCII字符及150国文字。排列格式为横置横排。
用户通过字符内码,利用本手册提供的方法计算出该字符点阵在芯片中的地址,可从该地
址连续读出字符点阵信息。
    本字库芯片内含 GT 快捷拼音输入法、GT 三维部件输入法及全拼输入法的码本,另外
配合本公司的输入法程序,可实现数字小键盘 IT产品的汉字快捷输入。
1.1 芯片特点
●  数据总线:  SPI串行总线接口 ; PLII精简地址并行总线接口
●  点阵排列方式:字节横置横排
        访问速度:SPI时钟频率:20MHz(max.)
    PLII访问速度:130ns(max.) @3.3V
●  工作电压:2.7V~3.6V
●  电流: 工作电流:12mA
           待机电流:10uA
●  封装:SO20W (12.80mmX10.30mm)、QFN40 (6mmX6mm)
●  工作温度:-20℃~85℃(SPI模式下);-10℃~85℃(PLII模式下)
2.3 SPI接口引脚描述
  串行数据输出(SO):该信号用来把数据从芯片串行输出,数据在时钟的下降沿移出。
  串行数据输入(SI):该信号用来把数据从串行输入芯片,数据在时钟的上升沿移入。
串行时钟输入(SCLK):数据在时钟上升沿移入,在下降沿移出。
     片选输入(CS#):所有串行数据传输开始于CS#下降沿,CS#在传输期间必须保持
                      为低电平,在两条指令之间保持为高电平。
; --------------所有数据高位在先。---------------------------------------------
3.1.2 Read Data Bytes(一般读取)
    首先把片选信号(CS#)变为低,紧跟着的是1 个字节的命令字(03 h)和3 个字节的
地址和通过串行数据输入引脚(SI)移位输入,每一位在串行时钟(SCLK)上升沿被锁存。
    然后该地址的字节数据通过串行数据输出引脚(SO)移位输出,每一位在串行时钟
(SCLK)下降沿被移出。
    读取字节数据后,则把片选信号(CS#)变为高,结束本次操作。
如果片选信号(CS#)继续保持为底,则下一个地址的字节数据继续通过串行数据输出引脚
(SO)移位输出。
3.1.3 Read Data Bytes at Higher Speed(快速读取点阵数据)
    首先把片选信号(CS#)变为低,紧跟着的是1 个字节的命令字(0B h)和3 个字节的
地址以及一个字节  Dummy Byte 通过串行数据输入引脚(SI)移位输入,每一位在串行时
钟(SCLK)上升沿被锁存。
    然后该地址的字节数据通过串行数据输出引脚(SO)移位输出,每一位在串行时钟
(SCLK)下降沿被移出。
    如果片选信号(CS#)继续保持为底,则下一个地址的字节数据继续通过串行数据输出
引脚(SO)移位输出。
例:读取一个15x16点阵汉字需要32Byte,则连续32个字节读取后结束一个汉字的点阵数据
读取操作。 如果不需要继续读取数据,则把片选信号(CS#)变为高,结束本次操作。   
******************************************************************************/
; 函数: void SUB_GT23_Read(void)。
; 描述: 读字库内容到缓冲区
; 参数: 首地址,命令字,读取字节数都在缓冲区准备好了
; 返回: 无
;*******************************************************************************
SUB_GT23_Read:
        SBI_GT23L16_CLK
        SBI_GT23L16_SI
        SBI_GT23L16_SO
        CBI_GT23L16_CS

        RCALL   SUB_DELAY

        LDI     ZH      ,HIGH(GT23_CMD)
        LDI     ZL      ,LOW (GT23_CMD)

        LDS     R18     , 0X005         ; 1字节指令 + 3字节地址 + 1字节DUMP
JP1_GT23_Read:
        LD      R16     , Z+            ; 加载指令字,03 或是 0B ; 地址信息
        LDI     R17     , 0X008
JP2_GT23_Read:
        CLC
        ROL     R16
        CBI_GT23L16_CLK
        BRCS    JP5_GT23_Read
        CBI_GT23L16_SI
        RJMP    JP6_GT23_Read
JP5_GT23_Read:   
        NOP
        SBI_GT23L16_SI
JP6_GT23_Read:   
        NOP
        RCALL   SUB_DELAY
        SBI_GT23L16_CLK                 ; 指令和地址在上升沿锁存
        RCALL   SUB_DELAY
        DEC     R17
        BRNE    JP2_GT23_Read           ; 写一个字节到总线
        DEC     R18
        BRNE    JP1_GT23_Read           ; 写5个字节到总线
;-------开始读的过程--------------------
        LDI     ZH      ,HIGH(GT23_BUF)
        LDI     ZL      ,LOW (GT23_BUF)
        LDS     R18     ,GT23_i         ; 计数器,需要读出的数据量
JP3_GT23_Read:
        LDI     R17     , 0X008
        LDI     R16     , 0X0FF
JP4_GT23_Read:
        CBI_GT23L16_CLK                  ; 下降沿移出数据到总线
        RCALL   SUB_DELAY
        
        IN      R25     , PINE
        BST     R25     , 5; GT23L16_SO    ; 如果GT23L16_SO是高,跳过下一句
        LSL     R16
        BLD     R16     , 0
        
        SBI_GT23L16_CLK
        RCALL   SUB_DELAY
        DEC     R17
        BRNE    JP4_GT23_Read
        ST      Z+      , R16
        DEC     R18
        BRNE    JP3_GT23_Read

        SBI_GT23L16_CS
        RET
;------------------------------------------------------------------------------
SUB_DELAY:
        LDI     R25     , 0X010
JP_DELAY:
        DEC     R25
        BRNE    JP_DELAY
        RET
;------------------------------------------------------------------------------

20170321,发现一处错误。LDS 应该 是LDI , 导致输入字库芯片地址数据的数量成了随机数。
 楼主| 发表于 2017-3-13 23:01 | 显示全部楼层
        IN        R16     , SFIOR             ; 使能所有端口的上拉电阻
        SBR      R16     , 1<<PUD
        OUT     SFIOR   , R16

加上这个好了一些,至少CS , CLK , SI 这三个端口可以输出高电平了。
发表于 2017-3-13 23:26 | 显示全部楼层
好久没看AVR的汇编了,感觉还是用C好理解。字库的手册都有,按理说并不难
建议先用avr studio调试下,读写电平对的话再去烧到单片机里实际跑
 楼主| 发表于 2017-3-13 23:41 | 显示全部楼层
sln.1550 发表于 2017-3-13 23:26
好久没看AVR的汇编了,感觉还是用C好理解。字库的手册都有,按理说并不难
建议先用avr studio调试下,读写 ...

谢谢指导。

刚开始玩AVR单片机,对他的管脚控制很迷茫。

以前都是51系列的,管脚控制很简单。

可能我还是问题出在设置上。

时序和逻辑应该不会有事。
发表于 2017-3-14 10:16 | 显示全部楼层
唉,是越老越不愿折腾了。。。

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-4-25 23:49 , Processed in 0.053043 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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