什么是性| 做b超能查出什么| 八月二号是什么星座| 肺结核是什么症状| 平均红细胞体积偏高说明什么| 上午十点半是什么时辰| 出汗臭是什么原因| 胆汁反流用什么药好| 麻豆是什么意思| 什么方什么计| 牛魔王是什么生肖| 鱼鳞云代表什么天气| 三点水一个分读什么| 比熊吃什么牌子狗粮好| 什么的葡萄| 喝黑豆浆有什么好处| 胃出血有什么症状| 双排是什么意思| 夜场是什么工作| 胆结石挂什么科室| 小虾吃什么食物| 液基薄层细胞检测是什么| 黄金茶属于什么茶| 兔子的眼睛为什么是红色的| 唱腔是什么意思| 历经是什么意思| 广西为什么简称桂| psv是什么| 吃什么可以增强抵抗力和免疫力| 批捕意味着什么| 什么生肖怕老婆| 上呼吸道感染用什么药| 农历五月十八是什么星座| 粉尘作业时必须佩戴什么口罩| 儿童乐园有什么好玩的| 吝啬什么意思| 12月5日什么星座| 一个木一个舌读什么| 永加日念什么| 呵呵哒是什么意思| 小布丁是什么意思| 梦见烧纸钱是什么意思| 笑哭表情什么意思| 柠檬水喝了有什么好处| 眼屎多什么原因| 什么而什么见| 主胰管不扩张是什么意思| 破相是什么意思| 月桂酰两性基乙酸钠是什么| 舌头上有裂纹是什么原因| pa什么意思| 总胆汁酸高是什么原因| 挖野菜是什么意思| 胃气不足吃什么中成药| 球蛋白是什么意思| 更年期出汗吃什么药| 金光是什么生肖| 板命什么意思| 217是什么意思| 乳腺钼靶是什么| 足底麻木是什么原因| 声带白斑是什么病严重吗| 玉米须加什么治痛风| 头皮屑多用什么洗发水效果好| 宫颈囊肿多发是什么意思| 大姨妈来了两天就没了什么原因| lp是什么意思| 手脚发热吃什么药| 多莉是什么鱼| 今年农历是什么年号| 脑部ct挂什么科| 嘴唇紫红色是什么原因| 48岁属什么生肖| 逍遥丸治什么病| 为什么总是放屁很频繁| 酵素是什么| 风言风语是什么意思| 吲达帕胺片是什么药| 喉咙干燥是什么原因| 黄色配什么颜色最好看| 头疼恶心是什么原因| 偏头痛吃什么药效果好| 十天干代表什么| 沙门氏菌用什么药| 四查十对的内容是什么| crispy是什么意思| 燕窝适合什么人吃| 蜻蜓吃什么食物| 拍身份证照片穿什么衣服| 五台山是求什么的| 1952属什么生肖| 什么季节掉头发最厉害| 杨颖是什么脸型| 3月9日是什么星座| 下巴痘痘反复长是什么原因| 头皮问题挂什么科| 协调什么意思| 什么东西抗衰老最好| 气血不足吃什么水果| 肌酐高是什么原因引起的| 梦见自己嫁人了预示着什么| 手腕扭伤挂什么科| 农历闰月有什么规律| 肌张力高对宝宝有什么影响| 拉烂屎是什么原因| 什么人容易得血栓| 黑加京念什么| 宝宝为什么老是吐奶| 89年属什么生肖| 哥斯拉是什么动物| 三杯鸡的三杯是什么| 花木兰是什么朝代| 为什么三文鱼可以生吃| 老婆的妈妈叫什么| 布鲁氏菌病是什么病| 肺气肿是什么病| 检查前列腺做什么检查| 骨折吃什么好的快| 蓝莓什么时候开花结果| 青霉素过敏不能吃什么药| 乐字五行属什么| 一步两步三步四步望着天是什么歌| 看十全十美是什么生肖| m 是什么单位| 评估是什么意思| 梦见枕头是什么意思| 95年属什么| 阴阳调和是什么意思| 吃榴莲对妇科病有什么好处| 红米是什么| 本科是什么| 什么魏什么赵| 月子里可以吃什么蔬菜| 言重了是什么意思| 鼻孔流血是什么原因| 艾灸后痒是什么原因| 什么心什么心| peter是什么意思| tia是什么| 1998年属虎的是什么命| 韩信属什么生肖| 震仰盂什么意思| fb是什么意思| 淫羊藿治什么病| 外伤挂什么科| 什么可以| 肚子上长毛是什么原因| 狗喜欢吃什么| 脑子嗡嗡响是什么原因| 干咳是什么病的前兆| 外阴苔癣是一种什么病| 三个女是什么字| 树欲静而风不止是什么意思| 什么的柳枝| 1级高血压是什么意思| 梦见好多蛇是什么预兆| 尖锐湿疣什么症状| 什么地找| 莲藕什么时候种植最佳| 五彩绳什么时候扔掉| 酸梅汤不适合什么人喝| 愿字五行属什么| 元首是什么意思| 美女是什么生肖| 为什么进不去| array是什么意思| 两个禾念什么| 下腹疼是什么原因| 肉苁蓉和什么搭配最好| 腺病毒阳性是什么意思| 三十六计第一计是什么计| 尿蛋白定量是什么意思| 早餐吃什么最减肥瘦身| 语什么心什么| 干扰素是治什么病的| 全职是什么意思| 肾动脉狭窄有什么症状| 肝左叶囊肿是什么意思| 染发膏用什么能洗掉| 半路杀出个程咬金是什么意思| 间歇性跛行见于什么病| 泥鳅什么人不能吃| 宝字五行属什么| 建日是什么意思| 黄疸是什么样子的图片| 黄体期是什么意思| 淋巴瘤是什么症状| 伤官运是什么意思| 血虚风燥是什么意思| od什么意思| 聚首一堂是指什么生肖| 骨头咔咔响是什么原因| 覆盆子是什么| 半夜腿抽筋是什么原因| 一凉就咳嗽是什么原因| 汗毛长的女人代表什么| 唇周围长痘痘是什么原因| fm什么意思| 蒲瓜是什么瓜| 子痫前期是什么意思| 做梦死人了是什么征兆| 血糖高是什么原因引起| 益生菌吃了有什么好处| 殿试第一名叫什么| 柠檬泡水有什么好处| 孕期头晕是什么原因| 狸猫换太子是什么意思| 五味子不适合什么人喝| 狗冲什么生肖| 2012年什么年| 梦见老人去世预示什么| 益生菌什么时候吃最好| 妊娠高血压对胎儿有什么影响| 吃什么快速排便| 人为什么会晕车| c1能开什么车| 8月26是什么星座| 38岁适合什么护肤品| 凌晨一点是什么时辰| 头痛去医院挂什么科| 新房送什么礼物好| butter是什么意思| 指甲月牙代表什么| 痤疮是什么东西| 胃肠炎可以吃什么水果| 皮肤长小肉粒是什么原因| 天秤座后面是什么星座| 增致牛仔属于什么档次| 口腔医学和口腔医学技术有什么区别| 吹面不寒杨柳风什么意思| 钢琴是什么乐器种类| 屎发黑是什么原因| 凝聚力是什么意思| 女人吃火龙果有什么好处| 什么是平舌音| 澳门什么时候回归的| 四维和大排畸有什么区别| 粉荷花的花语是什么| 脾虚要吃什么东西调理| ppi是什么药| 肝血不足吃什么食补最快| 喉咙有痰吐出来有血是什么原因| fsh是什么激素| 吃什么对肝有好处| 昙花有什么功效与作用| 多吃核桃有什么好处和坏处| 尿失禁是什么原因| 颔是什么意思| 颈部有肿块看什么科室| 5年生存率是什么意思| 竹棉和纯棉有什么区别| 椒盐是什么| 预防医学是干什么的| al是什么| 火钳刘明什么意思| 生物电是什么| 人吸了甲醛有什么症状| 宫腔内无回声区是什么意思| 什么什么闻名| 六月初十是什么日子| 抠鼻表情什么意思| 阳离子是什么面料| 脑筋急转弯什么东西越洗越脏| 鹏字五行属什么| 百度

首页 > 评测 > 【HC32L196PCTA测评】+点阵板显示驱动篇

构建“东城文艺大格局” 激发基层文联新活力

  
  • 作者:
  • 来源:
  • [导读]
  • #申请原创# @21小跑堂 在通常的情况下,我们所所用的显示器件多是数码管、液晶屏、OLED屏及TFT屏。但在公共场合要显示信息,就要有较大尺寸以便观察。通常多使用半板来拼接成较大的广告牌,这里使用的是一款P4.75的
#申请原创# @21小跑堂
在通常的情况下,我们所所用的显示器件多是数码管、液晶屏、OLED屏及TFT屏。但在公共场合要显示信息,就要有较大尺寸以便观察。
通常多使用半板来拼接成较大的广告牌,这里使用的是一款P4.75的红色点阵板,其显示分辨率为16*64像素点。
图1 点阵屏外观

该点阵屏采用的接口方式为HUB08,各引脚的名称如图2所示。
  
图2  HUB08接口

该点阵屏与开发板的连接关系为:
A ----PE3
B ----PE4
C ----PE5
D ----PE2
R1 ----PA12
CLK----PA11
EN ----PE12
STB----PE11

所用引脚输出高低电平的语句定义为:
#define LA_high    Gpio_SetIO(GpioPortE, GpioPin3)
#define LA_low     Gpio_ClrIO(GpioPortE, GpioPin3)
#define LB_high    Gpio_SetIO(GpioPortE, GpioPin4)
#define LB_low     Gpio_ClrIO(GpioPortE, GpioPin4)
#define LC_high    Gpio_SetIO(GpioPortE, GpioPin5)
#define LC_low     Gpio_ClrIO(GpioPortE, GpioPin5)
#define LD_high    Gpio_SetIO(GpioPortE, GpioPin2)
#define LD_low     Gpio_ClrIO(GpioPortE, GpioPin2)
#define LR1_high   Gpio_SetIO(GpioPortA, GpioPin12)
#define LR1_low    Gpio_ClrIO(GpioPortA, GpioPin12)
#define CLK_high   Gpio_SetIO(GpioPortA, GpioPin11)
#define CLK_low    Gpio_ClrIO(GpioPortA, GpioPin11)
#define LEN_high   Gpio_SetIO(GpioPortE, GpioPin12)
#define LEN_low    Gpio_ClrIO(GpioPortE, GpioPin12)
#define LSTB_high  Gpio_SetIO(GpioPortE, GpioPin11)
#define LSTB_low   Gpio_ClrIO(GpioPortE, GpioPin11)

所用引脚的初始化函数为:
  1. void dzb_GPIO_Init(void)
  2. {
  3.     stc_gpio_cfg_t stcGpioCfg;
  4.     Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);
  5.     stcGpioCfg.enDir = GpioDirOut;
  6.     stcGpioCfg.enPu = GpioPuDisable;
  7.     stcGpioCfg.enPd = GpioPdEnable;
  8.     Gpio_Init(GpioPortA, GpioPin11, &stcGpioCfg);
  9.         Gpio_Init(GpioPortA, GpioPin12, &stcGpioCfg);
  10.     Gpio_Init(GpioPortE, GpioPin2, &stcGpioCfg);
  11.         Gpio_Init(GpioPortE, GpioPin3, &stcGpioCfg);
  12.         Gpio_Init(GpioPortE, GpioPin4, &stcGpioCfg);
  13.         Gpio_Init(GpioPortE, GpioPin5, &stcGpioCfg);
  14.         Gpio_Init(GpioPortE, GpioPin11, &stcGpioCfg);
  15.           Gpio_Init(GpioPortE, GpioPin12, &stcGpioCfg);
  16. }
复制代码

点阵板发送数据的函数为:
  1. void OutByte(uint16_t dat)
  2. {
  3.     uint8_t i=0 ;
  4.     for(i=0;i<16;i++)
  5.     {
  6.         CLK_low;
  7.         if(dat&0x0001)
  8.         {
  9.             LR1_high;
  10.         }
  11.         else
  12.         {
  13.             LR1_low;
  14.         }
  15.         dat=dat>>1;
  16.         CLK_high;
  17.     }
  18. }
复制代码

发送多列数据的函数为:
  1. void DisCol(uint16_t lenght)
  2. {
  3.     uint16_t dat;
  4.     uint8_t m=0;
  5.     while(lenght--)
  6.     {
  7.          dat=(S[sj[m+1]*16+ScanRow]<<8)+S[sj[m]*16+ScanRow];
  8.          OutByte(dat);
  9.          m=m+2;
  10.     }
  11. }
复制代码

输出行地址的函数为:
  1. void  SeleRow(uint8_t Nd)
  2. {
  3.     uint8_t N;
  4.     N=Nd;
  5.     N=N%16;
  6.     if(N&0x01)   LA_high;
  7.     else  LA_low;
  8.     if (N&0x02)  LB_high;
  9.     else  LB_low;
  10.     if (N&0x04)  LC_high;
  11.     else  LC_low;
  12.     if (N&0x08)  LD_high;
  13.     else  LD_low;
  14. }
复制代码

实现显示输出的函数为:
  1. void  Display(void)
  2. {
  3.       DisCol(4);
  4.       LEN_high;
  5.       LSTB_high;
  6.       LSTB_low;
  7.       SeleRow(ScanRow);
  8.       LEN_low;
  9.       ScanRow++;
  10.       if(ScanRow>15)  ScanRow=0;
  11. }
复制代码

为实现数字符号的显示,以字模提取软件所构建的字库存储结构为:
u8 S[]={
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00,/*"0",0*/
0x00,0x00,0x00,0x08,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00,/*"1",1*/
0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x20,0x20,0x10,0x08,0x04,0x42,0x7E,0x00,0x00,/*"2",2*/
...
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x64,0x58,0x40,0x40,0x24,0x1C,0x00,0x00,/*"9",9*/
0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,/*":",10*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"-",11*/
};

实现显示输出效果的函数为:
  1. int32_t main(void)
  2. {
  3.     dzb_GPIO_Init();
  4.     ScanRow=0;
  5.     while (1)
  6.     {
  7.          Display();
  8.                  delay1ms(1);
  9.     }
  10. }
复制代码

经程序的编译与下载,其显示效果如图3所示。
3显示效果

在以上驱动程序的基础上,将测试的固定数值改为读取字库中的字模即可实现字符或汉字的显示。
可通过工具软件PCtoLCD2002来提取字模,并将字模存放到数组中,其格式为:
uint8_t tab[]={
0x00,0x00,0xF8,0x23,0x00,0x10,0x00,0x10,0x00,0x00,0xFC,0x07,0x20,0xF1,0x20,0x11,
0x20,0x11,0x20,0x11,0x24,0x11,0x24,0x12,0x24,0x12,0x1C,0x14,0x00,0x28,0xFE,0x47,/*"",0*/
0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0xF8,0x03,0x00,0x02,
0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0xFE,0xFF,0x00,0x00,/*"",1*/
0x00,0x02,0x00,0x01,0xFE,0x7F,0x42,0x44,0xF4,0x9F,0x40,0x04,0xF8,0x3F,0x40,0x04,
0xFE,0xFF,0x20,0x08,0x10,0x13,0x88,0x20,0x46,0xC0,0x00,0x06,0x80,0x01,0x40,0x00,/*"",2*/
0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,
0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0xF8,0x3F,0x08,0x00,0x00,0x00,/*"",3*/
...
};
实现满屏静态显示的函数为:
  1. void DisCol(int16_t lenght)
  2. {
  3.           int16_t dat,n;
  4.           int8_t m=0;
  5.       while(lenght--)
  6.       {
  7.                    dat=( tab [m*32+ScanRow*2+1]<<8)+ tab [m*32+ScanRow*2];
  8.                    OutBytep(dat);
  9.                    m=m+1;
  10.      }
  11. }
复制代码

其显示的效果如图4所示,说明显示效果正确。
4  静态显示效果
若要实现向上滚屏显示,则其显示函数为:
  1. void DisColp(uint16_t lenght)
  2. {
  3.             uint16_t dat,n;
  4.             uint8_t m=0;
  5.             while(lenght--)
  6.         {
  7.                          n=(ScanRow+hang)%16;
  8.                          dat=( tab [m*32+n*2+1]<<8)+ tab [m*32+n*2];
  9.                      OutBytep(dat);
  10.                      m=m+1;
  11.       }
  12. }
复制代码

5  滚动显示效果

视频演示:

  • 本文系21ic原创,未经许可禁止转载!

网友评论

所以然什么意思 火烈鸟吃什么 艾叶泡水喝有什么功效 月与什么有关 为什么叫白俄罗斯
解脲支原体阳性是什么病 硬伤是什么意思 西布曲明是什么 18岁属什么 1994年属狗的是什么命
晚上夜尿多是什么原因 世界上最大的动物是什么 什么男什么女的成语 维他命是什么意思 谷氨酸钠是什么
什么是化学阉割 来月经喝什么汤好 利尿什么意思 阴虱是什么样子图片 劣迹斑斑是什么意思
久之的之是什么意思hcv8jop7ns9r.cn 小便黄是什么原因引起的hcv9jop1ns9r.cn cp什么意思网络用语hcv9jop1ns1r.cn 司仪是什么意思liaochangning.com 真菌感染是什么sanhestory.com
丰五行属什么hcv8jop1ns3r.cn 碘伏是什么颜色hcv9jop8ns0r.cn 胆囊疼是什么原因hkuteam.com 肚脐下三寸是什么位置hcv9jop5ns5r.cn 青核桃皮的功效与作用是什么hcv7jop5ns2r.cn
口炎是什么字hcv8jop5ns4r.cn 预检是什么意思hcv8jop6ns8r.cn 3m是什么意思hcv9jop1ns9r.cn 小妾是什么意思hcv8jop5ns8r.cn 酸橙绿是什么颜色hcv9jop6ns3r.cn
萎缩性胃炎吃什么药好hcv8jop6ns4r.cn 五花肉是什么肉hcv8jop3ns2r.cn 锴字五行属什么hcv8jop4ns8r.cn 仗剑走天涯什么意思hcv9jop1ns5r.cn 毫无违和感什么意思hcv8jop1ns9r.cn
百度