怎么处理LCD图标巨细不对等的问题?
注:Android 4.3引进的wm东西
wm指令及用法:
体系阐明:
usage: wm [subcommand] [opTIons]
wm size [reset|WxH]
wm density [reset|DENSITY]
wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
wm size: return or override display size.
wm density: override display density.
wm overscan: set overscan area for display.
解说:wm是高通渠道(MTK渠道相似的指令为am,其他渠道没触摸,不太清楚)下对手机分辨率、像素密度、显现区域进行设置的指令。其参数比较少,下面逐条介绍一下该指令的用法。
1、wm size [reset|WxH]
[]内的是可选项。单纯运转wm size指令将会得到lcd自身设置的显现分辨率。如下图:
wm size W x H指令是按witch x hight 设置分辨率。假如分辨率设置的过大,图标会变大,反之则变小。设置了分辨率今后履行wm size指令,能够看到LCD自身的分辨率及overwrite的分辨率。如下图:
wm size reset 指令是将分辨率设置为LCD原始分辨率。
2、 wm density [reset|DENSITY]
该指令的用法相似于wm size 指令,作用是读取、设置或许重置LCD的density值。density值即LCD的ppi.
3、 wm overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
该指令用来设置、重置LCD的显现区域。四个参数别离是显现边际间隔LCD左、上、右、下的像素数。例如,关于分辨率为540×960的屏幕,经过履行 指令wm overscan 0,0,0,420可将显现区域限定在一个540×540的矩形框里。
了解wm能够处理LCD图标巨细显现不正常的问题。可是这些设置都是暂时的,适合于调试来确认问题和处理办法。永久性的修正能够参照以下两个办法(均在高通渠道下):
法一:
2》 adb root //提示read only filysystem时履行此指令获取root权限,
adb remount
adb pull /system/build.prop D:\
在build.prop结尾增加一行 ro.sf.lcd_density=240
adb push D:\build.prop /system/
adb shell
cd /system/
chmod 644 build.prop 没有修正权限将导致手机起不来
法二: 直接修正system.prop
Y:\xxxx\device\qcom\xxxx\system.prop
ro.sf.lcd_density=240 改这个值,然后从头编译system.img
LCD电极读数怎么看出单片机的接口技能?
经过丈量外表拾取被测信号是单片机前向通道规划中常用的数据收集办法。一般,接口电路从外表电路中取得相关的模仿信号,经过A/D转化或V/F转化送入单片机;或许取得一个频率信号,经整形后送入单片机。但是,有些丈量外表电路中或许找不到这样的信号。以%&&&&&%式压力传感器血压计为例,虽然从其振荡电路中能够取得一个与压强成线性关系的频率信号,送入单片机测得压强,但这个压强并不是所要拾取的收缩压、舒张压和心率;面一般的血压计又没有智能外表那样的通讯接口与单片机通讯。明显,要想经过这样的外表拾取被测信号只需直接读取其显现屏的读数了。
本文以一个全主动血压计为例,介绍将LCD显现器读数读入单片机的接口电路。该血压计显现器为61/2位段式LCD显现器,3位显现收缩压,3位显现舒张压。l/2位在两组数码中心,显现4个指示符号。
1 LCD的电极衔接结构和作业波形
1.1 LCD的电极衔接结构
图1为血压计LCD的电极衔接结构及等效电路。其间,图l(a)为公共电极衔接摆放,图l(b)为段电极衔接摆放。它共有4个公共电极COM0~COM3,每位数码各有2个段电极Sx-0、Sx-1,其等效电路为一个4行&TImes;2列的矩阵,如图l(c)所示。
1.2 LCD的作业波形
用双踪示波器调查血压计LCD的作业波形,如图2所示。它选用时切割驱动法驱动,偏比1/3,占空比l/4,B型。公共电极COM0~COM3的信号波形始终保持不变,段电极Sx-0、Sx-1信号波形随显现数字的改变而改变。图2中的Sx-1、Sx-1波形为显现数字“O”时的作业波形。
由图2可知,不考虑信号的直流重量,一切波形的前半周期t1~t4与后半周期t5~t8巨细持平,极性相反。COM0~COM3信号电压顺次在t1~t4四个时刻内到达峰值。时刻t1为第1行上f、a两段的扫描时刻,公共电极COM0,Sx-0为f段的段电极,Sx-1为a段的段电极。在t1时刻内,f段上的电压COM0-Sx-0=V0,a段上的电压COM0-Sx-1=V0,f、a两段均处于挑选状况,显现。其他各段在其扫描时刻内的电压和显现状况如表1所列。7段中只需g段上的电压为V0/3,处于非挑选状况,不显现。其他6段均处于挑选状况,显现。因而,显现数字“O”。
由此可见,只需顺次检查在t1~t4四个时刻内f、a、g、b、e、c、d各段上的电压COMx-Sx-y(x=0,1,…,6;y=O,1)是V0仍是V0/3即可取得LCD各位数码的字形码,然后再将字形码转化为丈量成果。
2 单片机读数接口电路
图3为依据上述作业原理规划的805l单片机读数接口电路,图中,LCD为血压计的液晶显现器,6位数码从右到左顺次编号O~5,中心半位的编号为6。它有13个段电极、4个COM电极,GND为血压计的接地端。805l的PC口为805l的扩展并行口。
2.1 显现状况读取电路
由CD4067、CD3405l、LM324(UA、UB)组成显现状况读取电路,读取LCD数码各段的显现状况。CD41367多路模仿开关从LCD的13个段电极信号中挑选一路Sx-x输出到LM324(UA)的反相输入端2脚。CD405l多路模仿开关从LCD的4个COM信号中挑选一路COMx输出到LM321(UA)的同相输入端3脚。LM324(UA)接成模仿减法器,由1脚输出信号COMx-Sx-x。UB作电压比较器,参阅电压VR巨细由电位器W1调理于V0/3~V0之间,将段电压COMx-Sx-x与VR比较。比较成果为该段的显现状况,高电平阐明该段显现,低电平不显现。显现状况送入8051的P1.6脚。R1、C1组成RC滤波器,滤除高频搅扰。
比方,要读取0号数码的a段显现状况,由图1知,0号数码a段的段电极是S0-1,公共电极是COM0。由程序控制在t1时刻内令PC1PC0=00,使CD405l挑选COM0,令PC5~PC2=0001,使CD4067挑选S0-1,COM0和S0-1两信号电压经UA减法器相减,然后再经UB电压比较后得到a段的显现状况,8051从P1.6脚读取此最示状况。
2.2 INT0中止信号发生电路
UC和UD组成INT0中止信号发生电路。UC接成电压跟从器,减小电路对COM0信号的影响。R2、C2组成RC滤波器,滤除高频搅扰。UD作电压比较器,参阅电压VR加在同相输入端,VR巨细由电位器W2调理于2V0/3~V0。电压比较器将COM0信号转化为INT0负脉冲信号,作业波形如图4所示。负脉冲的下降沿为LCD驱动信号周期T的开始时刻。此负脉冲接至8051的INT0脚,在负脉冲的下降沿发生外部中止0。
3 程序规划
启用外部中止0和守时器T0,以中止办法读取LCD各位数码的字形码。主程序以查询办法读取该字形码,然后经过读数校验、字形码到BCD码的译码、读数辨认等,将字形码转化为读数。
3.1 读取字形码
经过外部中止O和守时器T0以中止办法读取LCD某一编号数码的字形码。如图5所示,INT0负脉冲在周期T的开始时刻引起外部中止O,由INT0中止服务程序发动T0守时器,顺次在t1~t4半个周期内的f、a、g、b、e、c、d各时刻发生T0中止,读取各段的显现状况,取得字形码。T0守时器设为作业办法2,主动再装入守时时刻为T/16,初始守时时刻为T/32。INT0和T0中止服务程序流程如图6所示。
其间,PC口数据格式:PC5~PC3为要读取的那位LCD数码编号,PC2为段电极编号,PC1PC0为COM电极编号。
3.2 字形码转化
主程序以查询办法别离读取由中止服务程序收集的各位数码的字形码,查表将字形码转化为BCD码,再将几位数码的BCD码转变为数值。
3.3 读数校验
读取一位数码的字形码需求1个周期T(实践只用前半个周期),经丈量,T=16.318ms。读取悉数位数码至少需求用7个周期,约114ms。考虑到在单片机读数的过程中,LCD的读数有或许发生改变而导致读数过错,程序中选用接连两次读数的办法来校验读数的正确性。假如接连两次读数相同,则阐明读数是正确的;假如接连两次读数不同,则阐明读数或许是过错的,应从头读数。
3.4 读数辨认
血压计显现的内容除了收缩压、舒张压和心率以外还有充气、放气时的瞬时压强以及一些状况信息。LCD中心的半位(6号)用于显现待机(Reay to measure)、充气(CUFF Inf1aTIng)、放气(CUFF DeflaTIng)以及替换电池(Replace Battcries)四个符号。别的,4号数码显现“E”时表明丈量犯错,显现“P”时,右边3位(0~2号)数码显现的数字为心率。左右两头显现内容均是数字时,左面3位(3~5号)是收缩压,右边3位是舒张压.血压与心率替换显现。主程序经过这些信息来辨认LCD所显现的内容。
4 定论
运用此接口电路收集数据,不用考虑与拾取信号的丈量相关的细节问题和技能规范。这样,当拾取信号的丈量比较复杂时,能够有效地缩短开发周期。一起,它也不存在二次A/D转化或V/F转化办法所存在的单片机收集数据与外表读数不完全共同的问题。
程序规划用1个驱动信号周期读取1位数码,这样的读取速度关于读数改变不是很快的血压计来说现已足够了。假如丈量外表LCD读数改变很快,能够修正编程,在1个周期内一起读取几位数码,乃至修正电路规划,将后半周期也用于进行读数,实现在1个信号周期内读取一切数码。