atmega8l直接驱动笔段式lcd驱动程序

发布者:美梦小狮子最新更新时间:2019-11-18 来源: 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单片机闪烁灯程序-第一个程序

推荐阅读最新更新时间:2024-11-13 15:46

为什么单片机不能直接驱动继电器和电磁阀
注意:此文是写给单片机初学者的。 为什么要写篇文章? 虽然这个问题对于电子老白来说不值一提,不过对于初学单片机的朋友,问这个问题的人实在是太多了,以前总是一句一句的解释给你们听,重复的劳动实在没有意义,看来非常有必要在这里统一的说一下了。 既然是初学者,还得简单介绍一下继电器是个什么东西。 (这是我手头上的一个继电器) 继电器就是个开关,这个开关是由它内部的线圈控制的,给它的线圈通电,继电器就吸合,开关就动作了。 有些人还会问什么是线圈?看上图,1脚和2脚就线圈的两个引脚,3脚和5脚现在是通的,3脚和2脚是不通的。如果你给1脚和2脚通电,你就会听到继电器一声响,然后3脚和4脚就通了。 比如你要控制一条线的通断,就可以把
[单片机]
为什么单片机不能<font color='red'>直接</font><font color='red'>驱动</font>继电器和电磁阀
HT1621驱动程序
;LCD 设定(命令模式字的低8位数据) BIAS EQU 52H 1/3 偏压4背极 RC256 EQU 30H 系统时钟选用片 内RC振荡器 SYSEN EQU 02H 打开系统时钟 LCDON EQU 06H 打开偏压发生器 SYSDIS EQU 00H 关闭系统时钟和 偏压发生器 X32K EQU 28H 系统时钟选择为 片外晶振 ToneOn EQU 12H 打开音频输出 ToneOff EQU 10H 关闭音频输出 Tone4k EQU 80H 音频输出频率为 4K Tone2k EQU 0C0H 音频输出频率为2K TIMEREN EQU 0CH 时基输出使能 TIMERDIS EQU 08H 时基输
[单片机]
HD4478U显示LCD与51单片机驱动程序
#include SST89x5x4.H #include absacc.h #include intrins.h sbit LCDRSPIN = P3^7; sbit LCDRWPIN = P3^6; sbit LCDEPIN = P2^6; #define UCHAR unsigned char void delay(unsigned int i) { UCHAR j; for(i; i 0; i--) for(j = 200; j 0; j--); } /////////////////////////////// //控制LCD unsigned char XPOS,YPOS; //测
[单片机]
msp430和stm32 lcd驱动程序
最近使用了一块MSP430F5529单片机做课设,自带的拓展板上有一块12864的COG的LCD屏,记录下使用的驱动程序。 硬件原理图: COG_CS为片选信号,每次数据或指令通信完毕,需要拉低拉高一次。COG_RST为上电复位引脚,正常工作后不控制。 COG_A0是数据命令选择端,低电平表示传输的是数据,高电平表示传输的时命令。 COG_SCLK是时钟信号,上升沿有效。 COG_SDA为数据线,只能写不能读,无法读取COG内部的显存数据。COG_BKLED为背光控制IO,低电平背光点亮,高电平背光熄灭。 驱动程序: 头文件: #ifndef LCD_H_ #define LCD_H_ #define LCD_
[单片机]
msp430和stm32 <font color='red'>lcd</font>屏<font color='red'>驱动程序</font>
STM8L TAB段式LCD液晶驱动程序
简介:STM8L152XX系列带有片上段式LCD驱动程序,这为低成本应用和高密度系统设计提供了保证,利用片上LCD驱动模块,可以有效的控制系统整体功耗,简化系统结构,从整体来说可靠性得到提高。此处不介绍LCD驱动模块的原理以及驱动时序,请参考STM8原版英文说明文档,已描述的很详细,以下介绍其寄存器的配置方法以及编程方法。 时钟,系统时钟同样用来产生LCD驱动时钟,通过时钟模块配置: CLK_PCKENR2|=S3; //LCD 使能LCD模块时钟 CLK_CRTCR=S7|S6|S5|S1; //RTC&LCD- FCLK/128 注意RTC和LCD是共同一路时钟 以上配置根据实际时钟进行调整,我在此处采用FCL
[单片机]
mini2440上DS18B20的驱动程序(含简单测试)
ds18b20_drv.c #include linux/init.h #include linux/module.h #include linux/delay.h #include linux/kernel.h #include linux/moduleparam.h #include linux/init.h #include linux/types.h #include linux/fs.h #include mach/regs-gpio.h #include mach/hardware.h #include linux/cdev.h #include
[单片机]
基于ARM9芯片的S3C2440和Linux操作系统设计SPI驱动程序
  在嵌入式开发过程中,许多系统通常使用串口驱动来满足通信要求,但在实际应用中,使用SPI通信方式会更加高效和快捷[2]。SPI接口是一种高速、高效的串行接口技术,因而SPI设备在数据通信应用中十分方便[3]。本文基于ARM9芯片的S3C2440和Linux操作系统,设计了一种SPI驱动程序,该驱动程序功能可靠灵活、易于移植,可应用于多种嵌入式平台,实现ARM与设备之间的通信。   1 硬件说明   1.1 S3C2440开发平台   采用三星公司的SoC芯片S3C2440[4]作为核心处理器,主频为400 MHz,并与64 MB SDRAM和64 MB NAND Flash共同组成核心部分。此外,该平台也为用户提供了大量的通
[单片机]
基于ARM9芯片的S3C2440和Linux操作系统设计SPI<font color='red'>驱动程序</font>
基于AT91RM9200的I/O驱动程序(linux)
#include linux/config.h #include linux/module.h #include linux/sched.h #include linux/slab.h #include linux/ioport.h #include linux/errno.h #include linux/kernel.h #include linux/fs.h #include linux/string.h #include linux/poll.h #include linux/init.h #include linux/devfs_fs_kernel.h #include linux/miscdevi
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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