XS128单片机实验诺基亚5110液晶显示
- 格式:docx
- 大小:19.22 KB
- 文档页数:10
单片机之路—诺基亚5110LCD显示屏驱动电子产品在很多场合都需要提供和用户交互的人机界面,具备人机交互界面的电子产品可以给用户更好的使用,让电子产品更加直观。
今天给大家讲一个性价比很高的LCD显示器——诺基亚5110LCD。
可能很多人奇怪,为什么这个LCD显示屏被叫做诺基亚5110,那是因为这个显示屏诺基亚经典机型5110手机上使用的现实屏。
就是下图这部手机,曾经的经典。
记得第一部手机就是诺基亚的,那会还在读初中,宿舍的同学总是抢着来打贪吃蛇,打到满屏。
电子产品的更新换代实在太快了,现在已经很难找到这个手机的踪影了。
诺基亚5110手机5110LCD是一个84X48的点阵LCD,可以显示4行汉字。
和单片机的接口不是很复杂,是一个没有MISO只有MOSI的SPI协议。
用于通信的数据线是4根,其中有一根是用于设定传入的数据是命令还是数据的选择端口。
下图是在马云家买的一个诺基亚5110LCD模块,总共有8个引脚。
用于通信的引脚为4个,1个复位引脚,2个电源引脚,1个是背光灯控制引脚。
因为诺基亚LCD本身是不会发光的,为了能够在晚上也能够看到液晶显示屏显示的内容,需要增加背光灯。
诺基亚5110实物图和引脚描述我们把LCD需要单片机控制的5个引脚连接到单片机的P1口,背光灯通过一个电阻接到VCC5V,让背光灯保持常亮的状态,也可以接到单片机的引脚上去,通过单片机控制背光灯的亮灭。
5110LCD与单片机接口图我们来看一下怎么写程序驱动诺基亚5110,实现在5110上显示出字符。
由于接通电源后,LCD内部的RAM数据状态是不确定的,所以我们需要给LCD复位一下。
5110LCD复位时序//产生一个复位脉冲Lcd_res=0;delay_us();Lcd_res=1;我们需要往LCD写数据,SPI的写时序如下,这里实现的是通过单片机IO口模拟SPI时序,如果单片机有硬件的SPI接口是可以用来驱动的5110LCD的。
一、硬件链接:首先,看一下硬件(仅供参考,读者已对自己的硬件很熟悉,可以直接跳过。
):说明:图1: 排针从左至右1到8位.图2:5110接口在板子中的区域。
图3: 8位排针对应连接5110液晶屏相应的引脚。
图4:5110液晶显示屏对应8位排针JP19的插入方向。
再看一下我的板子的原理图:图5中,显示了8位排针JP19(即5110液晶屏的引脚)其中的5根与51单片机(本人的为STC89C516RD+)的PB I/O口的连接方式:5110_RST <——-〉PB2(P1.2)5110_SCE <—--〉PB3(P1。
3)MOSI(sdin) <———〉PB5(P1.5)MISO(dc)〈--—〉PB6(P1.6)SCK 〈——-> PB7(P1.7)这样,我们知道了用51单片机中的I/O口和5110引脚的链接方式。
二、引脚接线图请根据程序里的定义连接,51的程序默认接线为:sbit sce = P1^3; //片选sbit res = P1^2; //复位,0复位sbit dc = P1^6; //1写数据,0写指令sbit sdin = P1^5;//数据sbit sclk = P1^7;//时钟看了这些默认接线,可能有个疑问:“这些位变量(引脚)究竟有什么用呢?”,带着这个疑问,请看5110芯片手册中的引脚说明(重点看红色区域):从这个引脚说明中,我们知道了不同的引脚,对应的功能。
那么,如何使用这些引脚来控制5110工作呢?三、指令5110液晶显示屏(PCD8544芯片),是通过发送指令和写入数据RAM来控制和显示数据的。
指令格式分为两种模式:1、如果D/C(模式选择)置为低(为0),即位变量dc = 0,为发送指令模式,那么接下来发送的8位字节解释为命令字节。
2、如果D/C置为高,即dc = 1; 为写入数据RAM模式,接下来的字节将存储到显示数据RAM。
注意:1、每一个数据字节存入之后,地址计数自动递增。
电气信息学院基于Nokia5110的液晶屏模块设计摘要:本设计是以单片机STC89C52RC为核心器件的基于Nokia5110液晶屏的电子指南针。
整个系统主要由单片机最小系统,电源输入模块,LCD液晶显示模块,磁阻传感器模块和串口电路部分构成。
通过用C语言编程使单片机处理磁阻传感器接收到的X轴和Y轴上的磁场分量,转换为距南方的角度后,通过Nokia5110动态显示。
Nokia5110是一块84×48 的LCD点阵型液晶显示屏,如果字模是12×16 大小的字符,则能显示3 行,每行显示7个汉字。
每个字符都分为上下两部分进行扫描,在每行扫描时以一列8位为单位进行扫描。
通过原理图设计、软件仿真、制作硬质板电路,硬件调试,证明了本设计的可行性。
关键词:Nokia5110,STC89C52RC,磁阻传感器HMC5883L,电子指南针Abstract: This design is a digital compass based on Nokia5110, with the MCU STC89C52RC as its core. The system mainly consists of a MCU minimum system, a power input module, a LCD module, a magnetic sensor module and a serial port module. Through C language programming, the MCU processes the data on the X and Y axes, which is collected by the magnetic sensor. Then it is transformed into an angle indicating its relative direction to the south pole in degrees. Finally, it is shown on the Nokia5110 dynamically. The Nokia5110 is an LCD with 84×48 dots, if a character is displayed with 12×16 dots, then it can display 3 lines, with each line comprising 7 characters. The characters are scanned in two halves, the upper half and the lower half. For each half, 8 bits( a byte)are scanned as a unit at a time. Through schematic design, software simulation, making the printed circuit board and hardware debugging, the feasibility of this design has been proved.Keywords:Nokia5110, STC89C52RC, magnetic sensor, digital compass目录1 前言 .............................................................................................. 错误!未定义书签。
nokia5110课程设计一、课程目标知识目标:1. 让学生掌握Nokia 5110液晶显示屏的基本原理和操作方法;2. 了解Nokia 5110在图形显示和文字显示方面的应用;3. 学会运用编程语言(如:MicroPython)对Nokia 5110进行控制和编程。
技能目标:1. 能够独立完成Nokia 5110的硬件连接和初始化;2. 掌握使用编程语言对Nokia 5110显示内容进行设计和编写;3. 能够运用所学的知识解决实际问题,如制作简单的电子时钟、小游戏等。
情感态度价值观目标:1. 培养学生对电子产品的兴趣,激发他们探索未知领域的热情;2. 培养学生的团队合作精神,学会与他人共同解决问题;3. 增强学生的环保意识,让他们了解电子废弃物的回收和处理方法。
课程性质:本课程为实践性较强的课程,结合理论讲解和实际操作,让学生在动手实践中掌握知识。
学生特点:六年级学生具有一定的编程基础和电子知识,好奇心强,喜欢动手实践。
教学要求:教师需关注学生的个体差异,因材施教,鼓励学生积极参与,注重培养学生的实践能力和创新精神。
通过本课程的学习,使学生能够将所学知识运用到实际生活中,提高他们的综合素质。
二、教学内容1. Nokia 5110液晶显示屏原理介绍:包括显示屏的硬件结构、工作原理和显示原理。
- 理解显示屏的像素点阵和色彩显示方式。
- 掌握显示屏的初始化和基本操作。
2. 硬件连接与编程环境搭建:- 学习如何将Nokia 5110与微控制器(如Arduino或MicroPython板)连接。
- 搭建编程环境,熟悉相关开发工具的使用。
3. 图形和文字显示编程:- 学习使用编程语言进行图形绘制和文字显示。
- 掌握如何清屏、绘制点、线、矩形和圆形等基本图形。
- 实现文字的滚动显示和特效。
4. 实际应用案例分析与制作:- 分析并制作简单的电子时钟,学习时间管理和中断处理。
- 设计并实现一个简易小游戏,如贪吃蛇或俄罗斯方块,提高逻辑思维能力。
基于5110屏显示的多功能电子钟的设计
1. 硬件设计:
使用STM32F103C8T6微控制器作为主控芯片,5110液晶屏作为
显示界面,DS1302实时时钟芯片作为时间基准源,按键阵列用于用
户控制电子钟的功能。
主控芯片驱动5110显示屏,DS1302实时时钟芯片通过SPI接
口与主控芯片进行通信,从而在显示屏上显示当前时间和日期。
2. 软件设计:
主控芯片程序采用C语言编写,其中包含了时钟、日期、闹钟
等多种功能模块,具有以下特点:
a. 时钟模块:能够实时显示当前的小时、分钟和秒钟。
b. 日期模块:能够实时显示当前的年、月和日。
c. 闹钟模块:用户可以设置闹钟响铃的时间,当到达该时间时,系统会发出闹钟响铃提示。
d. 蜂鸣器模块:当闹钟响铃时,系统会触发蜂鸣器模块,发出
声音提示。
e. 报时功能:在固定时间间隔中,系统能够自动报时,提醒用
户当前时间。
f. 亮度调节功能:用户可以通过按键调节屏幕亮度,满足不同
环境需求。
3. 设计流程:
a. 硬件设计:根据选定的主控芯片和外设器件进行硬件设计,包括原理图设计和PCB布局。
b. 软件设计:编写主控芯片程序,包括时钟、日期、闹钟等功能模块。
c. 调试测试:通过调试测试,验证系统设计是否符合预期,以及是否存在问题。
d. 优化改进:针对问题进行优化改进,提高系统的稳定性和可靠性。
e. 批量生产:完成设计,进行批量生产并出售。
单片机原理及应用课程设计电气工程学院一、课程设计任务书1.课程设计项目诺基亚5110液晶显示器应用。
2.设计内容1)设计诺基亚5110液晶显示器应用的总体设计方案;2)以MCS-51系列单片机为核心器件和诺基亚5110液晶显示器组成液晶显示硬件系统;3)系统程序编制与调试;4)电路系统的综合调试;5)撰写课程设计论文;6)完成课程设计论文答辩。
3.设计要求1)以STC89C51单片机为控制核心,对诺基亚5110液晶显示器进行控制。
编程使得在LCD显示器上显示字符,如多行滚动显示:“吉林工程技术师范学院”“电气工程学院”。
等字符,还可以显示别的文字;2)单片机课程设计题目的硬件电路、程序由学生自行设计完成。
3)液晶显示器上要显示出设计人的班级,组长的学号等信息。
4.设计进度(2011年6月13日至2011年6月24日)时间设计内容第1-2天查阅资料,方案比较、设计与论证,理论分析与计算第3-5天硬件电路调试第6-8天系统调试第9-10天书写报告、答辩5.设计地点新实验楼323微机实验室二.参考资料[1]李广弟,朱月秀,王秀山编著.单片机基础. 北京:北京航空航天大学出版社,2001[2] 何立民编著.MCS-51系列单片机应用系统设计系统配置与接口技术.北京:北京航空航天大学出版社,1999[3] 蔡美琴等编著.MCS-51 单片机系统及应用.北京:高等教育出版社.1992二、评语及成绩成绩:指导教师:单片机原理及应用课程设计班级:自动化0845 姓名:刘旭阳学号: 11 号指导教师:方健撰写日期: 2011年6月23日Nokia LCD多功能显示摘要液晶显示器件[1](LCD)是一种高新技术的基础元器件。
它利用液晶的各种电光效应,把液晶对电场、磁场、光线和温度等外界条件的变化在一定条件下转换为可视信号而制成的显示器。
液晶显示器具有低电压、低功耗的特点,与CMOS集成电路相匹配.电池作为电源,适合于便携式显示。
该模块具有以下特点:●84x48 的点阵LCD,可以显示4 行汉字,●采用串行接口与主处理器进行通信,接口信号线数量大幅度减少,包括电源和地在内的信号线仅有9 条。
支持多种串行通信协议(如AVR 单片机的SPI、MCS51 的串口模式0等),传输速率高达4Mbps,可全速写入显示数据,无等待时间。
●可通过导电胶连接模块与印制版,而不用连接电缆,用模块上的金属钩可将模块固定到印制板上,因而非常便于安装和更换。
●LCD 控制器/驱动器芯片已绑定到LCD 晶片上,模块的体积很小。
●采用低电压供电,正常显示时的工作电流在200μA 以下,且具有掉电模式。
LPH7366 的这些特点非常适合于电池供电的便携式通信设备和测试设备中C8051F学习笔记:Nokia 5110驱动Nokia5110是一款经典机型,可能由于经典的缘故,旧机器很多,所以很多电子工程师就把旧机器的屏幕拆下来,自己驱动Nokia5110,用于开发的设备显示,取代LCD1602。
使用Nokia5110液晶的四大理由1)性价比高,LCD1602可以显示32个字符,而Nokia5110可以显示15个汉字,30个字符。
Nokia5110裸屏仅8.8元,LCD1602一般15元左右,LCD 12864一般50~70元。
2)接口简单,仅四根I/O线即可驱动,LCD1602需11根I/O线,LCD12864需12根。
3)速度快,是LCD12864的20倍,是LCD1602的40倍。
4)Nokia5110工作电压3.3V,正常显示时工作电流200uA以下,具有掉电模式,适合电池供电的便携式移动设备。
可以在市场上买到Nokia5110的裸屏和带PCB的Nokia5110屏幕,因为N okia5110是不带背光的,所以通常商家会在PCB上按了几个背光LED,上电就能亮,建议大家还是买那种连上PCB的5110。
Nokia5110原理图:商家把该引出的管脚都引出了,下面就可以连接C8051F的相应管脚,写程序驱动5110了。
XS128单片机实验:诺基亚5110液晶显示
/*********包含的头文件
*****************************/
#include ;
/* common defines and macros */
#include "derivative.h"
/* derivative-specific definitions */
#include "WQ.h"
#include "Font6_8.h"
#include "Bitmap.h"
#include "Font16_16.h"
#include "Font8_16.h"
/****************宏定义
*****************************/
#define SCLK
PTM_PTM4
#define SDIN
PTM_PTM3
#define LCD_DC PTM_PTM5
#define LCD_CE PTM_PTM2
#define LCD_RES PTM_PTM1
#define LED
PTM_PTM0
/****************函数申明
***************************/
void LCD_int(void);
void LCD_write_byte(uchar dt,uchar command); void LCD_write_char(uchar *font);
void LCD_set_XY(uchar x,uchar y);
void LCD_clear(void);
/*1.********************************************* *****/
// LCD_write_byte: 使用spi接口写数据到LCD
// 输入参数:dt 写入的数据
// 使用I/o口模拟SPI总线通讯发送一个字节数据到LCD显示
// Command : 写数据/命令选择
// Data
: 2013、4、26
/************************************************ ***/
void LCD_write_byte(uchar dt,uchar command) { uchar i;
LCD_CE=0;
//使能LCD
delay_us(40);
//延时30us;
if(command==0)
//判断发送数据还是发送命令
LCD_DC=0;
else
LCD_DC=1;
delay_us(40);
//延时30us;
for(i=0;i<8;i++){
if(dt&0x80)
SDIN=1;
// 发送高位
else
SDIN=0;
delay_us(40);
//延时30us;
SCLK=0;
dt=dt<<1;
SCLK=1;
}
LCD_CE=1;
//关闭LCD
}
/*2.********************************************* ****/
// 函数 :LCD_set_xy
// 功能 :设置LCD坐标函数
// 说明:x:横坐标 Y纵坐标
// Date:
2013/4/26
/************************************************ */
void LCD_set_XY(uchar x,uchar y){
LCD_write_byte(0x40|y,0);
//列按位或设置y坐标
LCD_write_byte(0x80|x,0);
//行按位或设置x坐标
}
/*3.********************************************/ // LCD_write_char() ;显示英文字符
// 输入参数:C
:显示的字符
// Date:
2013/4/26
/********************************************/
void LCD_write_char (uchar *font) {
uint i;
for(i=0;i<6;i++)
LCD_write_byte(font[i],1);
}
/*4.********************************************* /
// 函数:LCD_clear
// 功能:清屏
// 参数:无
// Date:2013/4/26
/************************************************ /
void LCD_clear(void) {
uint i;
LCD_write_byte(0x0c,0);
LCD_write_byte(0x80,0);
for(i=0;i<504;i++) {
LCD_write_byte(0,1);
}
}
/************************************************ */
// LCD_init: LCD初始化
// 输入参数无
// Date :2013、4、26
/************************************************ /
void LCD_int(void) {
LCD_RES=0;
delay_ms(2);
LCD_RES=1;
LCD_write_byte(0x21,0);//初始化LCD,功能设定使用扩充指令
LCD_write_byte(0xd0,0);//设定液晶偏置电压; LCD_write_byte(0x20,0);//使用基本指令
LCD_write_byte(0x0c,0);//设定显示模式,正常显示
}
/************************************************ ****/
// 主函数:void mian
// 功能:在诺基亚5110液晶屏上显示字符
// 作者:wangqi
// 时间;2013、4、26
/************************************************ ****/
void main(){
unsigned char
A[6]={0x00,0x7c,0x12,0x11,0x12,0x7c};
unsigned char
B[6]={0x00,0x7f,0x49,0x49,0x49,0x36};
DDRM = 0xFF;
LCD_int();
LCD_clear();
LED=1;
delay_s(5);
LED=0;
while(1){
LCD_set_XY(0,1); LCD_write_char(A); delay_ms(100);
LCD_set_XY(10,1);
LCD_write_char(A);
delay_ms(100);
LCD_set_XY(0,3); LCD_write_char(B); delay_ms(100);
LCD_set_XY(10,4) ; LCD_write_char(B);
}
}。