历史上的今天

今天是:2024年11月18日(星期一)

2019年11月18日 | atmega8l直接驱动笔段式lcd驱动程序

发布者:美梦小狮子 来源: 51hei关键字:atmega8l  直接驱动  笔段式lcd  驱动程序 手机看文章 扫描二维码
随时随地手机看文章

#include"include.h"
uchar lcdtab[3][10][3]={{{0x07,0x01,0x03},{0x04,0x00,0x02},{0x06,0x03,0x01},
{0x06,0x02,0x03},{0x05,0x02,0x02},{0x03,0x02,0x03},{0x03,0x03,0x03},{0x06,0x00,0x02},
{0x07,0x03,0x03},{0x07,0x02,0x03}},
{{0x18,0x14,0x0c},{0x10,0x10,0x00},{0x18,0x08,0x0c},
{0x18,0x18,0x08},{0x10,0x1c,0x00},{0x08,0x1c,0x08},{0x08,0x1c,0x0c},{0x18,0x10,0x00},
{0x18,0x1c,0x0c},{0x18,0x1c,0x08}},
{{0x60,0x40,0x70},{0x00,0x40,0x40},{0x40,0x60,0x30},
{0x40,0x60,0x60},{0x20,0x60,0x40},{0x60,0x20,0x60},{0x60,0x20,0x70},{0x40,0x40,0x40},
{0x60,0x60,0x70},{0x60,0x60,0x60}}}; // 笔段式液晶 的seg口的 单片机 io口隐映射表,根据不同的笔段式lcd即可自行制表。。。,上面是1/2偏压,1/3占空比笔段式lcd的编码,三个com口通过两个电阻接到公共时钟端io口,两电阻抽头接到lcd的com端,seg口可直接接单片机io口。。


uchar com;
uchar counter;
uint slashtime;
uchar flashweisel;
#pragma interrupt_handler timer0_ovf_isr:iv_TIMER0_OVF 
void timer0_ovf_isr(void)

  uchar segb,segc;
  TCNT0 = 0x83; //reload counter value
  flshtm++;  
  counter++;  
  if(counter==8)//每过八毫秒,换行扫描,总共三行,共24ms一帧,帧频达到40hz左右
  { 
     counter=0;  
  segb=lcdtab[0][wei6][com]|lcdtab[1][wei5][com]|lcdtab[2][wei4][com];
  segc=lcdtab[0][wei3][com]|lcdtab[1][wei2][com]|lcdtab[2][wei1][com];  
以下的两个if else 语句是实现位闪烁功能的,可以去掉,不影响正常显示
  if(flshtm         flashweisel=0;
  else if(flshtm>(slashtime*2))
      flshtm=0; 
  if((flashweisel>=4)&&(flashweisel<=6))
      segb  &=  (~lcdtab[6-flashweisel][8][com]);
  else if(flashweisel)
      segc  &=  (~lcdtab[3-flashweisel][8][com]);
  PORTB=segb;
  PORTC=segc;
  PORTD=0x70&(~(1<<(com+4)));// 扫描com口 
  if(++com==3)com=0;//com++,//逐行扫描每个com口
  } 
  if(counter%4==0)//每过4ms翻转一次,即交流
  {
    PORTC=~PORTC;
    PORTB=~PORTB;
    PORTD=(~PORTD)&0xf7;
  }
}

关键字:atmega8l  直接驱动  笔段式lcd  驱动程序 引用地址:atmega8l直接驱动笔段式lcd驱动程序

上一篇:对编译器的选择
下一篇:AVR单片机闪烁灯程序-第一个程序

推荐阅读

2018年双十一购物狂欢节尽管已经收官,但商品的配送仍然热火朝天,为了让剁手党们尽早拿到快递,快递员真的很辛苦,“双十一派件高峰,小哥熬夜抢快递柜”,“快递员三天两夜睡了不到8小时的觉”,这一类的新闻层出不穷。 最后一公里的快递配送难题如何解决,是各大物流最大痛点。人口红利消失,人力成本飙升的当下,单纯的靠招聘快递员已经不能满足配...
所有示波器都具有数量有限的采集存储器,示波器的存储器深度决定波形时间和以特定采样率捕获到的串行数据包数量。可以将示波器的时基设为很慢的时间/格设置,以便延长捕获时间间隔并增加串行数据包数量;但是当时基设置超出基于最高采样率下的最大时间间隔时,示波器便会自动降低采样率。在这种情况下,示波器无法提供精确的水平和垂直波形细节(基于示波...
芯片、软件和解决方案供应商 Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)日前推出为简化IEEE 1588实施而设计的全新完整解决方案,可满足在通信、智能电网、金融交易和工业中的应用。通过在一个单独、统一的软件实用程序中结合PTP配置文件选择、PTP网络配置和物理层时钟/端口配置,Silicon Labs业界领先的多功能软件工具ClockBuilder ProTM可助力...
BlackBerry(纽交所股票代码:BB;多伦多证券交易所股票代码:BB)今日宣布,中国科技型智能电动汽车品牌——零跑科技股份有限公司(以下简称“零跑汽车”)在其量产的第三代高端纯电SUV——零跑C11中采用了BlackBerry QNX® Neutrino® 实时操作系统 (RTOS),QNX Software Development Platform (SDP 7.0)和QNX® Hypervisor。零跑C11是零跑汽车...

史海拾趣

问答坊 | AI 解惑

51单片机 Keil C 延时程序的简单研究(转)

应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题 ...…

查看全部问答∨

面试时的难题和对策(英文版)

面试时的难题和对策(英文版) 加拿大职业论坛      通用类问题     1. Tell me about you!     Keep your answer to one or two minutes; don\'t ramble. Use your res ...…

查看全部问答∨

创建一个NIOS环境的视频教程

视频内容为如何创建一个NIOS环境的视频教程,入门级的,很不错…

查看全部问答∨

请教LED电子屏通讯原理

我是一个研究单片机的新手,最近对LED进行专研。我是在网上的原理图和C语言代码基础上学习的。但我发现网上的资料都有一个弊端,就是没有给出LED电子屏通讯方面的代码或原理图。希望那位高手慷慨的给小弟一份,便于系统的学习单片机。 小弟先谢过 ...…

查看全部问答∨

linux 内核 模块索引图

分享一下,因为不好引用,所以直接放上链接: http://www.linuxdriver.co.il/kernel_map http://cs.jhu.edu/~razvanm/fs-expedition/tux3.html…

查看全部问答∨

哪个朋友帮忙下...我很多窗口的那种程序搞法实在不会,,

附件是个大程序,,有几个子模块,,如何打开..如果哪个朋友打开了可以截个C51的窗口不??我很多窗口的那种搞法实在不会,,截个图看下…

查看全部问答∨

高分请教关于BISS0001的一些问题!!

如上图 请教一下红圈子中的所有元件及参数的意义。 包括R6\\C3 ,R8\\C5  ,R5\\C2  ,R7\\C4 ,它们在整个电路所起的具体作用是什么 BISS0001说明书我看不懂,所以别叫我再去看那个东西…

查看全部问答∨

AT89S51和AT89C51在串行通信上的区别

就是做毕业设计,微机和单片机间串行通信的技术实现. 关于这两种芯片在串口通信间的区别,最好详细点,先谢谢各位了…

查看全部问答∨

发现vxWorks task的一个大bug,欢迎讨论!

static VOID PersistentConnectionHandler_test(void) {     taskDelete(taskIdSelf()); } extern void TEST_HTTPD_LOOP() {     while (1)     {         taskDelay(1*sysCl ...…

查看全部问答∨

谁知道为什么AVR要用熔丝位和高压编程器?

这样有什么意义呢?高压编程究竟是什么原理呢?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved