好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于stc89c52rc的lcd12864模块调试源码.doc.docx

6页
  • 卖家[上传人]:F****n
  • 文档编号:98878267
  • 上传时间:2019-09-15
  • 文档格式:DOCX
  • 文档大小:15.50KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • ///////////////////////////////////////////////////////CONFIG.H引脚配置文件:///////////////////////////////////////////////////////#ifndef _CONFIG_H#define _CONFIG_H/* 通用头文件 */#include #include /* 数据类型定义 *//*typedef signed char int8; // 8位有符号整型数typedef signed int int16; //16位有符号整型数typedef signed long int32; //32位有符号整型数 */typedef unsigned char u8; // 8位无符号整型数typedef unsigned int u16; //16位无符号整型数typedef unsigned long u32; //32位无符号整型数/* 全局运行参数定义 */#define SYS_MCLK (/12) //系统主时钟频率,即振荡器频率÷12/* IO引脚分配定义 */sbit KEY_IN_1 = P2^4; //矩阵按键的扫描输入引脚1sbit KEY_IN_2 = P2^5; //矩阵按键的扫描输入引脚2sbit KEY_IN_3 = P2^6; //矩阵按键的扫描输入引脚3sbit KEY_IN_4 = P2^7; //矩阵按键的扫描输入引脚4sbit KEY_OUT_1 = P2^3; //矩阵按键的扫描输出引脚1sbit KEY_OUT_2 = P2^2; //矩阵按键的扫描输出引脚2sbit KEY_OUT_3 = P2^1; //矩阵按键的扫描输出引脚3sbit KEY_OUT_4 = P2^0; //矩阵按键的扫描输出引脚4sbit ADDR0 = P1^0; //LED位选译码地址引脚0sbit ADDR1 = P1^1; //LED位选译码地址引脚1sbit ADDR2 = P1^2; //LED位选译码地址引脚2sbit ADDR3 = P1^3; //LED位选译码地址引脚3sbit ENLED = P1^4; //LED显示部件的总使能引脚#define LCD12864_DB P0 //1602液晶数据端口sbit LCD12864_RES = P1^0; //1602液晶指令/数据选择引脚sbit LCD12864_RW = P1^1; //1602液晶读写引脚sbit LCD12864_EN = P1^5; //1602液晶使能引脚sbit DS1302_CE = P1^7; //DS1302片选引脚sbit DS1302_CK = P3^5; //DS1302通信时钟引脚sbit DS1302_IO = P3^4; //DS1302通信数据引脚sbit I2C_SCL = P3^7; //I2C总线时钟引脚sbit I2C_SDA = P3^6; //I2C总线数据引脚sbit BUZZER = P1^6; //蜂鸣器控制引脚sbit IO_18B20 = P3^2; //DS18B20通信引脚sbit IR_INPUT = P3^3; //红外接收引脚#include "LCD12864.H"#include "TIME.H"#include "DHT21.h"#endif//////////////////////////////////////////////////////////////LCD12864.C源码/////////////////////////////////////////////////////////////#include "config.h"u8 zhbuf[]={"预览"}; //中文数组u8 ehbuf[]={"yulan"}; //英文字符数组u8 code imbuf[]={ //图片码128*64 宽16,高320x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};/*写等待*/void Write_Ready(){ u8 sta=0; LCD12864_RES = 0; LCD12864_RW = 1; do{ LCD12864_EN = 1; sta = P0; LCD12864_EN = 0; }while(sta&0x80);}/*读RAM中数据*/u8 Read_12864_RAM(){ u8 ram=0; LCD12864_RES = 1; LCD12864_RW = 1; LCD12864_EN = 1; ram = P0; LCD12864_EN = 0; return ram;}/*写指令*/void Write_12864_Cmd(u8 cmd){ Write_Ready(); LCD12864_RES = 0; LCD12864_RW = 0; P0 = cmd; LCD12864_EN = 1; LCD12864_EN = 0;}/*写数据*/void Write_12864_Dat(u8 dat){ Write_Ready(); LCD12864_RES = 1; LCD12864_RW = 0; P0 = dat; LCD12864_EN = 1; LCD12864_EN = 0;}/*设置起始坐标*/void Set_DDRAM_XY(u8 x,u8 y){ if(x>=7) x=7; if(y>=3) y=3; switch(y) { case 0:Write_12864_Cmd(0x80+x);break; case 1:Write_12864_Cmd(0x90+x);break; case 2:Write_12864_Cmd(0x88+x);break; case 3:Write_12864_Cmd(0x98+x);break; default : break; }}/*显示连续的2个字符*/void Show_Double_12864_Char(u8 x,u8 y,u8 *c){ Set_DDRAM_XY(x,y); Write_12864_Dat(*c); Write_12864_Dat(*(c+1));} /*显示单个字符*/void Show_Single_12864_Char(u8 x,u8 y,u8 *c){ Set_DDRAM_XY(x,y); Write_12864_Dat(*c);} /*显示中文字符串*/void Show_12864_ZH(u8 x,u8 y,u8 *zh){ u8* p=zh; Set_DDRAM_XY(x,y); while((*p)!='\0') { Write_12864_Dat(*p++); }}/*显示一串数值*//*u8 dec 小数位 为0不显示小数*/void Show_12864_NUM(u8 x,u8 y,u8 dec,u16 num){ u8 i; u8 numbuf[6]; for(i=0;num;i++) { numbuf[i]=num%10+'0'; num/=10; } Set_DDRAM_XY(x,y); for(;i;i--) { if(i==dec) { Write_12864_Dat(0X2E); //显示小数点 } Write_12864_Dat(*(numbuf+(i-1))); //显示数值 }}/*显示英文字符串*/void Show_12864_EH(u8 x,u8 y,u8 *eh){ u8* p=eh; Set_DDRAM_XY(x,y); while((*p)!='\0') { Write_12864_Dat(*p++); }}/*显示图案*/void Show_12864_IM(u8 code *im){ unsigned char x,y,i; unsigned int tmp=0; for(i=0;i<9;) { //分两屏,上半屏和下半屏,因为起始地址不同,需要分开 for(x=0;x<32;x++) { //32行 Write_12864_Cmd(0x34); Write_12864_Cmd(0x80+x);//列地址 Write_12864_Cmd(0x80+i); //行地址,下半屏,即第三行地址0X88 Write_12864_Cmd(0x30); for(y=0;y<16;y++) Write_12864_Dat(im[tmp+y]);//读取数据写入LCD tmp+=16; } i+=8; } Write_12864_Cmd(0x36); //扩充功能设定 Write_12864_Cmd(0x30);} /*初始化12864*/void Init_Lcd12864(){ Read_12864_RAM(); Show_Single_12864_Char(0,0,'A'); Show_Double_12864_Char(0,0,"AB"); Show_12864_NUM(0,0,1,123); Show_12864_ZH(0,0,"预览"); Show_12864_EH(0,0,"yulan"); Show_12864_IM(imbuf); Write_12864_Cmd(0X30); //8位数据,基本指令 Write_12864_Cmd(0X0C); //开显示,关游标 Write_12864_Cmd(0X01); //清屏 Write_12864_Cmd(0X02); //地址归位 Write_12864_Cmd(0X80); //设置DDRAM地址}//////////////////////////////////////////////////////////////////////////////////////MAIN.C文件//////////////////////////////////////////////////////////////////////////////////////////////*主测试函数*/void main(){ Init_Lcd12864(); Read_12864_RAM(); Show_12864_。

      点击阅读更多内容
      相关文档
      2025年大唐华北电力试验研究院内蒙分部(呼和浩特)招聘笔试高频考点题库考试试题.docx 2025年黑龙江齐齐哈尔克山县嘉暖热电有限公司招聘公笔试高频考点题库考试试题【含答案】.docx 2025年配电安规通用部分(重点人员)模拟(100题)【含答案】.docx 2025年“才聚齐鲁成就未来”山东省国控建筑材料工业设计笔试高频考点题库考试试题【含答案】.docx 2025年贵州汇智达人力资源服务有限公司招聘笔试高频考点题库考试试题【含答案】.docx 2025年“才聚齐鲁成就未来”山东黄金集团井下技能工人招笔试高频考点题库考试试题【含答案】.docx 2025年重庆市合川瑞山中学教师招聘考试笔试试题【含答案】.docx 2025年行政执法资格认证通用法律知识考试复习题【含答案】.docx 2025年辅警考试模拟试题(100题)【含答案】.docx 2025年安徽铜陵县枞阳县供销投资有限公司招聘工作人员笔试考试试题【含答案】.docx 2025年重庆市辅警考试模拟试题(100题)【含答案】.docx 2025年重庆市大足区国衡商贸股份有限公司招聘劳务派遣制笔试高频考点题库考试试题【含答案】.docx 2025年《物业管理师》三级模拟试题(110题)【含答案】.docx 2025年青河县高校毕业生“三支一扶”计划招募考试笔试试题【含答案】.docx 2025年成都市西体路小学校教师招聘考试笔试试题.docx 2025年北京青年政治学院招聘考试笔试试题.docx 2025年成都市青白江区九所学校招聘教师考试笔试试题.docx 2025年成都市海滨小学校教师招聘考试笔试试题.docx 2025年成都市郫都区教育局下属学校招聘教师考试笔试试题.docx 2025年佛山市南海区事业单位招聘考试笔试试题.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.