/*************************************************************************

程序说明:

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语言驱动程序相关推荐

  1. c语言 程序循环,C语言程序设计-循环例子

    <C语言程序设计-循环例子>由会员分享,可在线阅读,更多相关<C语言程序设计-循环例子(28页珍藏版)>请在人人文库网上搜索. 1.C 语言程序设计基础篇,第 7 章 简单程序 ...

  2. 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明

    学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好.Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器.宏汇编.连接器.库管理和一个功能强大的仿真调试器等在 ...

  3. c语言程序前言,C语言 程序代码编写规范前言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...

  4. c语言程序基本设计,C语言程序的设计基本6.ppt

    C语言程序的设计基本6 第六章 本章要点 建立循环程序设计的基本概念和逻辑思维 掌握循环程序设计的方法 6.1 if-goto 语句循环 一般形式: goto 标号: 标号:语句 其中:标号用标识符表 ...

  5. c语言 程序结集,c语言(结体程序设计).doc

    c语言(结体程序设计) C语言程序设计实验报告 实验七.结构体程序设计 [实验目的] (1)掌握结构体类型的概念.定义和使用: (2)掌握结构体数组.结构体指针的定义和使用: [实验内容及步骤] 1. ...

  6. 情人节c语言程序,情人节c语言代码.doc

    情人节c语言代码 篇一:一些简单的C语言程序代码 由键盘任意输入1个4位数整数,分别输出其中的个位.十位.百位.千位. /* expe 3-10 */ #include #include void m ...

  7. 好听的歌曲单片机c语言程序,单片机C语言程序举例(三)

    原标题:单片机C语言程序举例(三) 14.音乐播放 //此程序在硬件上调试通过 //本程序的晶振采用11.0592M #include sbit speaker=P1^2; unsigned char ...

  8. c 语言程序编辑,C语言程序编辑学习篇—编程者说之C语言

    谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是"让我欢喜让我忧."欢喜的是,C语言功能非常强大.应用广泛,一旦掌握了后,你就可以理直气壮地对他人说"我是电脑高手 ...

  9. 认识c语言程序,认识C语言 -一个完整的C语言程序是什么样的?

    为了创建完整的 C语言程序需要在 C 源文件中输入代码.任何文本编辑器(比如 Windows 中的"记事本")都可以创建 C 源文件,它们的文件名通常以".c" ...

  10. adc0809 c语言程序,单片机C语言程序设计:ADC0809数模转换与显示

    描述 本文分享ADC0809数模转换与显示的单片机C语言程序设计与电路图. ADC0809 数模转换与显示c语言程序 /*名称:ADC0809数模转换与显示 说明:ADC0809采样通道3输入的 模拟 ...

最新文章

  1. [改善Java代码]适时选择不同的线程池来实现
  2. mysql获取当前节点的所有叶子节点_mssql sqlserver 如何获取一个叶子节点下所有子节点呢?...
  3. 718. Maximum Length of Repeated Subarray 最长重复子数组
  4. mediumtext 长度_InnoDB表行长度超限问题的处理和思考
  5. android应用的界面编程----View与ViewGroup的概念
  6. textbox 和textera 文本框多行后不能拉伸
  7. 使用canvas实现擦玻璃效果
  8. 服务器硬件工程师从入门到精通_硬件工程师必阅--如何“0基础”从入门到精通?(附CAD使用指南)...
  9. python程序打印出10行的杨辉三角_GitHub 标星 6.5w+,Python 小白 100 天学习计划,从新手到玩转!...
  10. 实战模拟│微信 JSSDK 实现自定义分享、手机选图拍照、图片音频处理、地理位置、摇一摇等功能
  11. Vue核心技术-40,vue-router-编程式路由导航
  12. TOP Network技术总监Justin:TOP公链已率先实现多层状态分片
  13. Activiti in Action(实战Activiti)-目录
  14. 自己DIY一个pinephone——debian与主线linux在红米2(msm8916)上的移植 (二)
  15. android中LitePal的使用
  16. urlrewrite使用介绍
  17. MNIST手写数字识别程序
  18. ipad mini2显示无服务器,iPad Mini 2维修成本剖析 _苹果 iPad mini 2_平板电脑评测-中关村在线...
  19. sync.map原理解析
  20. 体积最小,极速秒装的APK安装器

热门文章

  1. 台式机双系统安装(windows10+ubuntu18.04)及ROS安装的坑点解决
  2. 80G倾斜正射多光谱数据、谷歌影像、各种遥感数据下载
  3. 21天学通Java 下载参考
  4. 微软服务器打不开,微软应用商店打不开解决方法汇总
  5. tomcat7控制台乱码
  6. APP软件下载导航站源码+带后台版/亲测可用
  7. AD20软件安装详细教程
  8. 软考高级系统分析师上午历年真题
  9. 备战数学建模34-BP神经网络预测2
  10. linux查看tomcat版本信息,linux下tomcat版本查看