和之前那块一起买的。又画了这个屏幕驱动,还画了灯丝电源驱动,和以前画的stm8核心板在JLC拼板。

亚光黑颜色,不单独收钱!

切好水洗吹干!

忘记给排针加丝印,手写代之。

焊接的时候,脑子发热,以为把层搞错了,结果就掰PT6311引脚,然后反向焊接。焊接好通电电流一下子上1A,检查半天发现没反!

调PT6311程序时顺便发现上次pcb画错了grid和segment,233.当时死活想不通芯片为什么这样设计,原来是自己搞反了。

 #include "pt6311.h"
#include "stdio.h"
#include <string.h>
#include <intrins.h>
//auth:katachi
//time:2017-12-30
//func:driver for pt6311
//transplant to stm8 time:2018-1-14 17:
//modify for 51 :2019年4月21日22:30:57
//auto addr sequence:
/*
OpenStrobe_PT6311();
WriteByte_PT6311(CMD_ModeSetting|0x00);//8grid 20seg OpenStrobe_PT6311();
WriteByte_PT6311(CMD_DataSetting|0x00); ////autoAdd addr OpenStrobe_PT6311();
WriteByte_PT6311(CMD_AddressSetting|0x00); //start addr 0x00
WriteByte_PT6311(0x7e); //seg0-seg7
WriteByte_PT6311(0x18); //seg8-seg15
WriteByte_PT6311(0x2); //seg16-seg23 OpenStrobe_PT6311();
WriteByte_PT6311(CMD_DisplaySetting|0x0f);//on 14/16
STB=1;
*/
//
sbit DI =P3^;
sbit DO =P1^;
sbit CK =P3^;
sbit STB =P3^;
void Delay1us() //@12.000MHz
{
_nop_();
_nop_();
_nop_();
_nop_();
}
void Delay1ms() //@12.000MHz
{
unsigned char i, j; i = ;
j = ;
do
{
while (--j);
} while (--i);
}
void delay_us(u8 n){
while(n--)Delay1us();
}
void delay_ms(u32 n){
while(n--)Delay1ms();
}
const u8 ADDR[]={
0x00,0x01,//digit 1
0x03,0x04,//digit 2
0x06,0x07,//digit 3
0x09,0x0a,//digit 4
0x0c,0x0d,//digit 5
0x0f,0x10,//digit 6
0x12,0x13,//digit 7
0x15,0x16,//digit 8
0x18,0x19,//digit 9
0x1B,0x1C,//digit 10
0x1E,0x1F,//digit 11
0x21,0x22,//digit 12
0x24,0x25,//digit 13
0x27,0x28,//digit 14
0x2a,0x2b};//digit 15
const u16 font[]={
0x187e,0xc,0x1b6,0x19e,0x1cc,0x1da,0x1fa,0x1802,0x1fe,0x1de,//0-9
0x1ee,0x251e,0x72,0x241e,0x1f2,0x1e2,0x17a,0x1ec,0x2412,0x1c,0x48e0,0x70,0x2a6c,0x426c,0x7e,0x1e6,
0x407e,0x41e6,0x31a,0x2402,0x7c,0x1860,0x546c,0x5a00,0x2a00,0x1812,//a-z
0x2580,0x180,0x7f80,0x1800,0x2400,0x4200,0x10,0x8000,};//+-*/|\_.
/*
//ascii code :
0:48
A:65
for number:
dspseg[i]=dspseg[i]-48;
for alphabet:
dspseg[i]=dspseg[i]-65+10;
*/
u8 dspbuf[]; //bytes to send
u8 dspseg[]; //character to dis
unsigned int Pow2(u8 y)
{
u16 x=;
if (y)
{
while (y--)
x*=;
}
else
x=;
return x;
}
void OpenStrobe_PT6311(void)
{
STB=;
delay_us();
STB=;
}
void Init_PT6311(void)
{
u8 i; OpenStrobe_PT6311();
WriteByte_PT6311(CMD_ModeSetting|0x00);//8grid 20seg OpenStrobe_PT6311();
WriteByte_PT6311(CMD_DataSetting|0x00); ////autoAdd addr OpenStrobe_PT6311();
WriteByte_PT6311(CMD_DisplaySetting|0x8|);//0x80:on 14/16 //all on
OpenStrobe_PT6311();
WriteByte_PT6311(CMD_AddressSetting|0x00);
for (i=;i<;i++){
WriteByte_PT6311(0xff);
}
delay_ms();
//all clr
OpenStrobe_PT6311();
WriteByte_PT6311(CMD_AddressSetting|0x00);
for (i=;i<;i++){
WriteByte_PT6311();
}
delay_ms();
//show number
strcpy(dspseg,"");
for (i=;i<;i++)dspseg[i]=dspseg[i]-;
OpenStrobe_PT6311();
WriteByte_PT6311(CMD_AddressSetting|0x00); for (i=;i!=0xff;i--){
WriteByte_PT6311(font[dspseg[i]]);//low byte
WriteByte_PT6311(font[dspseg[i]]>>);//high byte
WriteByte_PT6311((font[dspseg[i]]&0x8)?0x2:0x0);//replace grid4 with grid18:low byte ----,grid4--- grid4&0x8 to get the segment
}
delay_ms();
//show aplhabet
strcpy(dspseg," HELLOOO");
for (i=;i<;i++)dspseg[i]=dspseg[i]-;
OpenStrobe_PT6311();
WriteByte_PT6311(CMD_AddressSetting|0x00);
for (i=;i!=0xff;i--){//0xff:for overflow
WriteByte_PT6311(font[dspseg[i]]);//low byte
WriteByte_PT6311(font[dspseg[i]]>>);//high byte
WriteByte_PT6311((font[dspseg[i]]&0x8)?0x2:0x0);//replace grid4 with grid18:low byte ----,grid4--- grid4&0x8 to get the segment
}
}
void WriteByte_PT6311(u8 dat)
{
u8 i; CK=;//de-pulldown
for (i=;i<;i++)
{
CK=; //>>200ns
DI=dat&0x01; //send a bit to pt6311's data in pin
dat>>=; //lsb first
CK=;
}
}
u8 ReadByte_PT6311(void)
{
u8 dat,i;
CK=;
delay_us();
for (i=;i<;i++)
{
CK=;//while (j++<10);
delay_us();//tplz tpzl
dat>>=; //lsb first
if (DO)
dat|=0x80; //catch a bit from pt6311's data out pin
CK=;
}
delay_us();//tclk stb
return dat;
}

这个芯片亮品率低,总是有的脚不能输出,这里的grid4通到引脚了但是还是没输出。

飞线到grid18,程序里加判断然后追加赋值解决。

取模绝对不会像上次那样自己算,本来想qt写个小软件。网上一找发现不少米字屏取模软件,PT6311选共阴。然后这个屏0-8的1是a段,再写段小程序左移一位得到字库。

HL-D793G七位蓝色+PT6311驱动的更多相关文章

  1. float 的有效数字为七位是怎么得出来的

    以下内容来自CSDN网友xian_wwq的回答(http://bbs.csdn.net/topics/390874239): float:   1bit(符号位) 8bits(指数位) 23bits( ...

  2. 64位系统安装ODBC驱动的方法

    为了更充分的利用硬件资源,我想很多人都开使用64位操作系统了,同时你可以也发现了在64位操作系统上ODBC的驱动找不到了,所以ODBC的东西都没法用了. 因为2007以前版本的Office只有32位版 ...

  3. 2011年排名前七位的Linux操作系统。

    下面列出了2011年排名前七位的Linux操作系统. Ubuntu Ubuntu 是一个由全球化的专业开发团队建造的操作系统.它包含了所有您需要的应用程序:浏览器.Office 套件.多媒体程序.即时 ...

  4. Qt5.8 下链接 Mysql 错误以及解决方法(无论 Mysql 是什么版本的,64 位 Qt 要用 64 位的 Mysql 驱动,32 位的 Qt 要用 32 位的Mysql 驱动)

    Qt 5.8 下链接 Mysql(Windows 平台下),有朋友会出现一个这个无法连接的错误 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: ...

  5. 第七章 Rocketmq--消息驱动

    今天咱们接着 上一篇第六章 Sleuth–链路追踪 继续写 SpringCloud Alibaba全家桶 , 第七章 Rocketmq--消息驱动,废话不多说,开始了 7.1 MQ简介 7.1.1 什 ...

  6. SQLYOG导入数据时报错,出现找不到Microsoft office 元驱动程式,并且无法安装64位office Access驱动

    当我们使用mysql导入外部数据时(如Excel表),有时会出现如下的错误问题,即找不到64位access驱动.为了解决这个问题,我们需要下载相应的驱动,通过下图中的点击此链接即可进入下载页面(htt ...

  7. SpringCloud(七)Stream消息驱动

    Stream消息驱动 概述 屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型 官网:https://cloud.spring.io/spring-cloud-static/spring-cl ...

  8. Arduino Uno 在win7 64位下的驱动问题

    1.解压[mdmcpq.inf_amd64_neutral_fbc4a14a6a13d0c8.rar],将[mdmcpq.inf_amd64_neutral_fbc4a14a6a13d0c8]文件夹复 ...

  9. 触摸屏 adb调试

    1.adb shell cat /proc/kmsg 这条命令肯定是要放在第一位的,可以打印内核信息,对应于驱动程序中的printk语句. 如果出现以下提示,说明权限不够,可以通过adb root获取 ...

随机推荐

  1. 2018-2019-2 网络对抗技术 20165225 Exp5 MSF基础应用

    2018-2019-2 网络对抗技术 20165225 Exp5 MSF基础应用 验前准备 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻 ...

  2. VUE 参数共享问题

    **标黄 export default { data () { return { msg: "这是一个变量", xx:"", } }, mounted : fu ...

  3. POI导出excel列宽自适应

    让单元格宽度随着列和单元格值的宽度自适应: //存储最大列宽 Map<Integer, Integer> maxWidth = new HashMap<>(); // 将列头设 ...

  4. asp.net中的CheckBox控件的使用

    CheckBox控件中的最重要属性就是checked属性了 下面就是使用checked属性的一个小应用; 先建立一个wed窗体:在窗体中写下这些代码: <%@ Page Language=&qu ...

  5. C#中string.Format 用法详解

    这篇文章主要介绍了C#中string.format用法,以实例形式较为详细的讲述了string.format格式化的各种用法,非常具有实用价值,需要的朋友可以参考下 本文实例总结了C#中string. ...

  6. maven插件--assembly

    之前maven项目中使用assembly插件单独打包项目依赖包,项目只有一个模块也就一个pom,配置这个插件,一切很顺利.但是现在的项目复杂了,有parent有child,多模块.按照之前的做法怎么也 ...

  7. iOS 控制器的生命周期(UIController)

    前言: 在iOS开发中,控制器的生命周期非常重要,什么时候加载页面,什么时候请求接口,什么时候刷新界面等等,都有很多值得优化的地方 loadView: 最先执行的方法,控制器关联的有Nib文件的时候, ...

  8. 手把手教你使用 Clion 开发 Linux C++ 项目

    手把手教你使用 Clion 开发 Linux C++ 项目 关于CLion CLion是一款专为开发C及C++所设计的跨平台IDE.它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员 ...

  9. ORACLE中 大量数据插入表 SQL

    declare g_commit_count number; cursor cu1 is select gl_flexfields_pkg.get_description_sql(gcc.chart_ ...

  10. php中yaf框架的服务器配置

    1  yaf 扩展 wget http://pecl.php.net/get/yaf-3.0.4.tgz /usr/local/php/bin/phpize ./configure --with-ph ...