AVR drive LCD via SPI module

发布者:科技驿站最新更新时间:2016-10-25 来源: elecfans关键字:AVR  drive  LCD  via  SPI  module 手机看文章 扫描二维码
随时随地手机看文章
AVR drive LCD via SPI module - Bohemian  - BOHEMIAN  TOWN
 
//********************written by ovie.xuan 2010.08.12---------------------
#include
#include
#include
#include
//#include
#define sce0   PORTC&=0XFd  //片选
#define rst0   PORTC&=0XFb  //复位
#define dc0    PORTC&=0XEF   //1写数据,0写指令
#define sdin0  PORTB&=0XF7   //数据
#define sclk0  PORTB&=0XDF   //时钟
#define sce1   PORTC|=0X02  //片选
#define rst1   PORTC|=0X04  //复位
#define dc1    PORTC|=0X10   //1写数据,0写指令
#define sdin1  PORTB|=0X08   //数据
#define sclk1  PORTB|=0X20   //时钟
#define hc138dis    PORTB&=0XEF   //g=0
#define hc138en     PORTB|=0X10   //g=1
const prog_char  font6x8[] =
{
 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp
 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !
 0x00, 0x00, 0x07, 0x00, 0x07, 0x00,// "
 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14,// #
 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12,// $
 0x00, 0x62, 0x64, 0x08, 0x13, 0x23,// %
 0x00, 0x36, 0x49, 0x55, 0x22, 0x50,// &
 0x00, 0x00, 0x05, 0x03, 0x00, 0x00,// '
 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00,// (
 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00,// )
 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14,// *
 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08,// +
 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00,// ,
 0x00, 0x08, 0x08, 0x08, 0x08, 0x08,// -
 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,// .
 0x00, 0x20, 0x10, 0x08, 0x04, 0x02,// /
 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E,// 0
 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00,// 1
 0x00, 0x42, 0x61, 0x51, 0x49, 0x46,// 2
 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31,// 3
 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10,// 4
 0x00, 0x27, 0x45, 0x45, 0x45, 0x39,// 5
 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30,// 6
 0x00, 0x01, 0x71, 0x09, 0x05, 0x03,// 7
 0x00, 0x36, 0x49, 0x49, 0x49, 0x36,// 8
 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E,// 9
 0x00, 0x00, 0x36, 0x36, 0x00, 0x00,// :
 0x00, 0x00, 0x56, 0x36, 0x00, 0x00,// ;
 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,// <
 0x00, 0x14, 0x14, 0x14, 0x14, 0x14,// =
 0x00, 0x00, 0x41, 0x22, 0x14, 0x08,// >
 0x00, 0x02, 0x01, 0x51, 0x09, 0x06,// ?
 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E,// @
 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C,// A
 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,// B
 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22,// C
 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C,// D
 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41,// E
 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01,// F
 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,// G
 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F,// H
 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00,// I
 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01,// J
 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41,// K
 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,// L
 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F,// M
 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F,// N
 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E,// O
 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06,// P
 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,// Q
 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46,// R
 0x00, 0x46, 0x49, 0x49, 0x49, 0x31,// S
 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01,// T
 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F,// U
 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,// V
 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F,// W
 0x00, 0x63, 0x14, 0x08, 0x14, 0x63,// X
 0x00, 0x07, 0x08, 0x70, 0x08, 0x07,// Y
 0x00, 0x61, 0x51, 0x49, 0x45, 0x43,// Z
 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,// [
 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55,// 55
 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00,// ]
 0x00, 0x04, 0x02, 0x01, 0x02, 0x04,// ^
 0x00, 0x40, 0x40, 0x40, 0x40, 0x40,// _
 0x00, 0x00, 0x01, 0x02, 0x04, 0x00,// '
 0x00, 0x20, 0x54, 0x54, 0x54, 0x78,// a
 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38,// b
 0x00, 0x38, 0x44, 0x44, 0x44, 0x20,// c
 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F,// d
 0x00, 0x38, 0x54, 0x54, 0x54, 0x18,// e
 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02,// f
 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C,// g
 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78,// h
 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00,// i
 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,// j
 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00,// k
 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00,// l
 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78,// m
 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78,// n
 0x00, 0x38, 0x44, 0x44, 0x44, 0x38,// o
 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18,// p
 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC,// q
 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08,// r
 0x00, 0x48, 0x54, 0x54, 0x54, 0x20,// s
 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20,// t
 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C,// u
 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C,// v
 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C,// w
 0x00, 0x44, 0x28, 0x10, 0x28, 0x44,// x
 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C,// y
 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44,// z
 0x14, 0x14, 0x14, 0x14, 0x14, 0x14// horiz lines
};
//****write data to lcd via spi module******************
void LCD_write_byte(unsigned char dt, unsigned char command)
{
 SPCR=0b01010000;//unable spi interrupt,enable spi,send MSB firetly,   
   //主机模式,空闲时SCK位低电平,起始沿采样SCK频率fosc/4,
 sce0;  
 if(command)
  dc1;
 else
  dc0;  
 SPDR=dt;                              //开始发送数据        
 while((SPSR>>7)==0);                 //等待发送接收结束 
}
//---------------initial lcd--------------
void LCD_init(void)
{
 LCD_write_byte(0x21,0);//LCD功能设置:芯片活动,水平寻址,使用扩展指令
 LCD_write_byte(0xc0,0);//设置VOP值
 LCD_write_byte(0x20,0);//LCD功能设置:芯片活动,水平寻址,使用基本指令
 LCD_write_byte(0x0C,0);//设定显示配置:普通模式
 sce1;
}

//-------set XY coordinate----------------
void LCD_set_XY(unsigned char X, unsigned char Y)
{
 LCD_write_byte(0x40 | Y, 0);// column
 LCD_write_byte(0x80 | X, 0);// row
 sce1;
}

//-------clear lcd---------------
void LCD_clear(void)
{
 unsigned char t;
 unsigned char k;
 LCD_set_XY(0,0);
 for(t=0;t<6;t++)
 { 
  for(k=0;k<84;k++)
  { 
   LCD_write_byte(0x00,1);        
  } 
 }
 sce1;
}
//-----display english char-----------------
void LCD_write_char(unsigned char c)
{
 unsigned char line;
 c-=32;
 for (line=0; line<6; line++)
 LCD_write_byte(pgm_read_byte(font6x8+c*6+line), 1);
 
}
//------display english char string-----------
void LCD_write_String(unsigned char X,unsigned char Y,char *s)
{
 LCD_set_XY(X,Y);
 while (*s) 
 {
  LCD_write_char(*s);
  s++;
 }
}
 
int main(void)
{
 DDRC=0x16;
 DDRB=0x3a;
 _delay_ms(100);
 rst0;
 _delay_ms(10);
 rst1;//复位的正边缘之后sce为低,串行接口准备接收命令、数据的位7,数据传送依次从最高位到最低位。
 LCD_init();
 LCD_clear();
 LCD_write_String(1,0,"Ovie is num1 !");
 LCD_write_String(1,1,"Sorry,I cannot");
 LCD_write_String(1,2,"tell you anyt");
 LCD_write_String(1,3,"hing about her ");
 LCD_write_String(1,4,"and me,it is");
 LCD_write_String(1,5,"private thing."); 
 
 hc138dis;
 //wdt_enable(WDTO_2S); //enable wdt,2秒复位
 while(1)
 {   
  //wdt_reset();       //喂狗指令
  
 }
关键字:AVR  drive  LCD  via  SPI  module 引用地址:AVR drive LCD via SPI module

上一篇:AVR开发前准备—熔丝位(Fuse)快速入门
下一篇:关于IAR for AVR编译后显示代码长度信息的设置

推荐阅读最新更新时间:2024-03-16 15:17

OPPO K10参数曝光:LCD高刷屏+天玑8000
OPPO在此前联发科天玑8000系列发布时就宣布,OPPO K10系列将会首批搭载天玑8000登场。   按照之前的爆料显示,OPPO K10系列将会在本月正式发布,预计可能会在下周之内正式宣布。   今天上午,知名爆料博主@数码闲聊站 又带来了该系列的最新消息,他透露K10标准版将配备一块LCD高刷屏,核心搭载天玑8000芯片,内置5000mah大电池+67w快充。   天玑8000系列采用的是台积电5nm制造工艺,CPU为八核心,包括四个A78(2.75GHz)、四个A55,同时还有4MB三级缓存,GPU则是六核心的Mali-G610,另外还有第五代AI处理器APU 580,包括两个性能核心、一个通用核心。  
[手机便携]
OPPO K10参数曝光:<font color='red'>LCD</font>高刷屏+天玑8000
智能型PXI Switch Module在自动化测控系统中的应用
前言 使用继电器模块(Relay Switch Module)做为信号切换,广泛地应用于IC测试、电力监测管理、工业流程与交通控制领域。 近年来随着消费电子产品走向多样化,生命周期缩短,价格(Cost)、速度(Speed)、灵活性(Flexibility),成为自动测试设备(Automated Test Equipment, ATE)生存竞争的首要课题。在工业控制及相关应用领域,价昂、封闭规格的专用控制系统则面临PC-Based测控解决方案开放、价廉与高效能的挑战。 本文对继电器信号切换所做的技术简介与实例应用介绍,将使读者了解架构于PXI系统上的智能型PXI Switch Module,对高
[测试测量]
智能型PXI Switch <font color='red'>Module</font>在自动化测控系统中的应用
台媒:LCD驱动IC需求依旧强劲 订单能见度已到明年
最近有报告称由于电视和其他终端市场设备需求放缓,LCD面板价格已经开始下降,从而影响LCD驱动IC供应商出货。不过据digitimes报道,中国台湾地区的LCD驱动IC厂商对此表示,他们的订单出货比保持在1以上,并且到今年年底甚至2022年都有清晰的订单可见度。 图源:digitimes LCD驱动IC厂商指出,今年第四季度的订单依然活跃,乐观看待今年余下时间的销售业绩。 据了解,LCD面板价格已跌至2021年初的水平,友达、群创等面板厂商近期营收均环比下滑。不过联咏、敦泰、天钰等驱动IC厂商8月份的收入同比增长均超过70%,创下了历史新高。 据业内消息人士称,尽管LCD驱动IC厂商的出货量仍然强劲,但驱动IC后端厂商持谨慎
[手机便携]
台媒:<font color='red'>LCD</font>驱动IC需求依旧强劲 订单能见度已到明年
探讨半导体照明热分析、可靠性及创新设计
  元件及系统的散热与可靠性是半导体照明的两大重要议题,在奥地利工业重镇林茨举行的EuroSimE2011国际学术会议期间,国际专家围绕这两大议题,进行了学术报告与交流,解答了诸如如何使用如碳纳米管进行散热?如何使用仿真准确预测8W替代型灯泡及3W led阵列的散热情况?如何突破LED芯片仿真的局限进行整个灯具系统的可靠性仿真等问题。会上,2个欧洲大型、跨国半导体照明研究项目SE2A (汽车电子元件开发、汽车SSL头灯)与CSSL(替代型球泡灯)的项目主管,对这两个项目的概况,管理方法与进度进行了汇报。   半导体照明热分析以及创新设计   关于半导体照明的热力分析以及散热设计,其中,来自香港科技大学的张凯介绍了如何使用压电材
[电源管理]
大尺寸电视进入战国时代,电视品牌寻求规格差异化
根据集邦咨询光电研究中心(WitsView)最新研究报告显示,2018年全球电视品牌的出货数量为2.19亿台,年增达4.1%,摆脱2017年的衰退局势。预估2019年全球电视品牌出货数量将成长至2.23亿台,年增约1.6%。 WitsView研究经理杨晴翔指出,2018年除了世足赛带动拉美等新兴市场换机需求,以及北美经济稳定繁荣让电视整机需求回升,而去年整体面板价格处于下降趋势也有助于拉升电视品牌的促销意愿。 2019年随着年初华星光电的11代线、年中惠科的8.6代线以及年底夏普广州10.5代线将分别投入市场,大尺寸面板供给大增,面板的降价压力将无法避免,却也让大尺寸电视迈向平价化。未来,电视产业势必要寻求更多的规格进化,
[嵌入式]
大尺寸电视进入战国时代,电视品牌寻求规格差异化
USB AVR JTAGICE MKII-CN仿真器使用
1.安装 仿真器: 首先,安装AVRStudio4.19或其他版本,成功安装后,将MKIIusb连接到电脑上,会自动识别。如果不识别,应该是AVR Studio安装时,AVR Jungo USB控件被拦截没有安装成功。重新完整安装AVR Studio即可。我第一次安装时,显示安装不成功,在设备管理器中,将其卸载,重新将MKII的USB插上,自动识别,并安装成功了。 2.使用 MKII有ISP和JTAG两种烧写形式,默认情况为JTAG形式。使用方法和普通的AVR JTAG相似,具体见产品说明书。
[单片机]
基于AVR的家庭语音控制器的软硬件实现
一、项目概述 1.1 引言 随着家居控制进入信息化,智能化的时代,将语音识别技术与嵌入式设备融合,同时兼具红外遥控功能的的家用智能设备将给人们的家居生活带来极大便利。同时此项目对残疾人的日常生活无疑亦有积极的意义。AVR32 AT32UC3A单片机可与一系列丰富的外设、存储兼容,可充分开发AVR32设备的全部潜能。以此单片机为核心,扩展语音识别输出、红外识别发射模块等,可较好的完成本项目的相关功能,在通用性方面将会有很大提高。本项目开发的家电关键词语音识别系统,可实现语音应答报时以及对基本家电的语音控制,让语音技术融入到日常生活中,给人们带来更便捷、更舒适、更健康的生活模式。 1.2 项目背景/选题动机 家居智能化
[单片机]
基于<font color='red'>AVR</font>的家庭语音控制器的软硬件实现
MAX868 无需电感的稳压型LCD偏置电路
晶体管构成的放大器要做到不失真地将信号电压放大,就必须保证晶体管的发射结正偏、集电结反偏。即应该设置它的工作点。所谓工作点就是通过外部电路的设置使晶体管的基极、发射极和集电极处于所要求的电位。
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved