12864c语言程序,LCM12864 C语言驱动程序
/*************************************************************************
程序说明:
LCD驱动采用4位元(这个4位元方式,在网上搜索来看,还没有人采用,可以节省4位I/O口),并口方式,晶体4M,注意此LCD有点不同尽量很普通,没有CS1,CS2页选择脚,带串口方式,型号是TS-12864-3。IC 16F877A。
在屏幕上显示“Atilla tester"
"~_~"
RD7----------LCD D7
RD6-----------LCD D6
RD5-----------LCD D5
RD4-----------LCD D4
RD3-----------LCD E
RD2-------- LCD RS
RD1---------R/W
/***********************程序如下**********************************/
#include "pic.h"
#define lcd_cursor(x) lcd_write(((x)&0x7F)|0x80)//Set the cursor position
#define LCD_RS RD2#define LCD_EN RD3#define LCD_RW RD1
#define LCD_STROBE ((LCD_EN = 1),(LCD_EN=0))
void delay_10us(unsigned char x){while(x--);}
void delay_ms(unsigned char cnt){unsigned char i;do {i = 4;do {delay_10us(39);} while(--i);} while(--cnt);
}
/* write a byte to the LCD in 4 bit mode */
void lcd_write(unsigned char c){PORTD = (PORTD & 0x0F) | (c & 0xF0); //先送高位D7 D6 D5 D4LCD_STROBE;PORTD = (PORTD & 0x0F) | (c << 4); //再送低位LCD_STROBE;delay_10us(4);}
/* Clear and home the LCD */
void lcd_clear(void){LCD_RS = 0;lcd_write(0x1);delay_ms(2);}
/* write a string of chars to the LCD */
void lcd_puts(const char * s){LCD_RS = 1; // write characterswhile(*s)lcd_write(*s++);}
/* write one character to the LCD */
void lcd_putch(char c){LCD_RS = 1; // write charactersPORTD = (PORTD & 0x0F) | (c & 0xF0); //先送高位LCD_STROBE;PORTD = (PORTD & 0x0F) | (c << 4); //再送低位LCD_STROBE;delay_10us(4);}
/*Go to the specified position*/void lcd_goto(unsigned char pos){LCD_RS = 0;lcd_write(0x80+pos);}/* initialise the LCD - put into 4 bit mode *///严格按照LCD的复位要求。
void lcd_init(void){LCD_RS = 0; // write control bytesdelay_ms(40); // power on delay,wait time>40msPORTD = 0x20; // Function set,set 4 bit modeLCD_STROBE;delay_10us(10); //wait time >100uslcd_write(0x20); // Function set:4 bit mode.delay_10us(10); //wait time >100uslcd_write(0x0C); // display ON/OFF control.delay_10us(10); //wait time >100uslcd_write(0x01); // display cleardelay_ms(10); //wait time >10mslcd_write(0x06); // entry mode set}
void main(void)
{TRISD=0X00;PORTD=0X00;lcd_init();lcd_goto(0x00);lcd_puts("Atilla tester");lcd_goto(0x11);lcd_puts("~_~");while(1);}
12864c语言程序,LCM12864 C语言驱动程序相关推荐
- c语言 程序循环,C语言程序设计-循环例子
<C语言程序设计-循环例子>由会员分享,可在线阅读,更多相关<C语言程序设计-循环例子(28页珍藏版)>请在人人文库网上搜索. 1.C 语言程序设计基础篇,第 7 章 简单程序 ...
- 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明
学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好.Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器.宏汇编.连接器.库管理和一个功能强大的仿真调试器等在 ...
- c语言程序前言,C语言 程序代码编写规范前言
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...
- c语言程序基本设计,C语言程序的设计基本6.ppt
C语言程序的设计基本6 第六章 本章要点 建立循环程序设计的基本概念和逻辑思维 掌握循环程序设计的方法 6.1 if-goto 语句循环 一般形式: goto 标号: 标号:语句 其中:标号用标识符表 ...
- c语言 程序结集,c语言(结体程序设计).doc
c语言(结体程序设计) C语言程序设计实验报告 实验七.结构体程序设计 [实验目的] (1)掌握结构体类型的概念.定义和使用: (2)掌握结构体数组.结构体指针的定义和使用: [实验内容及步骤] 1. ...
- 情人节c语言程序,情人节c语言代码.doc
情人节c语言代码 篇一:一些简单的C语言程序代码 由键盘任意输入1个4位数整数,分别输出其中的个位.十位.百位.千位. /* expe 3-10 */ #include #include void m ...
- 好听的歌曲单片机c语言程序,单片机C语言程序举例(三)
原标题:单片机C语言程序举例(三) 14.音乐播放 //此程序在硬件上调试通过 //本程序的晶振采用11.0592M #include sbit speaker=P1^2; unsigned char ...
- c 语言程序编辑,C语言程序编辑学习篇—编程者说之C语言
谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是"让我欢喜让我忧."欢喜的是,C语言功能非常强大.应用广泛,一旦掌握了后,你就可以理直气壮地对他人说"我是电脑高手 ...
- 认识c语言程序,认识C语言
-一个完整的C语言程序是什么样的?
为了创建完整的 C语言程序需要在 C 源文件中输入代码.任何文本编辑器(比如 Windows 中的"记事本")都可以创建 C 源文件,它们的文件名通常以".c" ...
- adc0809 c语言程序,单片机C语言程序设计:ADC0809数模转换与显示
描述 本文分享ADC0809数模转换与显示的单片机C语言程序设计与电路图. ADC0809 数模转换与显示c语言程序 /*名称:ADC0809数模转换与显示 说明:ADC0809采样通道3输入的 模拟 ...
最新文章
- [改善Java代码]适时选择不同的线程池来实现
- mysql获取当前节点的所有叶子节点_mssql sqlserver 如何获取一个叶子节点下所有子节点呢?...
- 718. Maximum Length of Repeated Subarray 最长重复子数组
- mediumtext 长度_InnoDB表行长度超限问题的处理和思考
- android应用的界面编程----View与ViewGroup的概念
- textbox 和textera 文本框多行后不能拉伸
- 使用canvas实现擦玻璃效果
- 服务器硬件工程师从入门到精通_硬件工程师必阅--如何“0基础”从入门到精通?(附CAD使用指南)...
- python程序打印出10行的杨辉三角_GitHub 标星 6.5w+,Python 小白 100 天学习计划,从新手到玩转!...
- 实战模拟│微信 JSSDK 实现自定义分享、手机选图拍照、图片音频处理、地理位置、摇一摇等功能
- Vue核心技术-40,vue-router-编程式路由导航
- TOP Network技术总监Justin:TOP公链已率先实现多层状态分片
- Activiti in Action(实战Activiti)-目录
- 自己DIY一个pinephone——debian与主线linux在红米2(msm8916)上的移植 (二)
- android中LitePal的使用
- urlrewrite使用介绍
- MNIST手写数字识别程序
- ipad mini2显示无服务器,iPad Mini 2维修成本剖析 _苹果 iPad mini 2_平板电脑评测-中关村在线...
- sync.map原理解析
- 体积最小,极速秒装的APK安装器