单片机C语言液晶显示器上显示c储存数据

合集下载

(整理)单片机液晶屏C程序.

(整理)单片机液晶屏C程序.
lcd_pos(4,3);
for(i=0;i<2;i++)
{
lcd_wdat(DIS41[i]);
}
}
else
{
PORTB&=~(1<<0);
lcd_pos(4,3);
for(i=0;i<2;i++)
{
lcd_wdat(DIS42[i]);
}
}
////////*******“运行”显示**************************
}
DDRC=0xFF;
PORTD&=~(1<<3);
}
//******************************************************************
void lcd_wcmd(uchar cmd)
{
lcd_busy();
DDRD=0xF8;
PORTD&=~(1<<5);
{
lcd_wcmd(0x30); //基本指令操作
lcd_wcmd(0x30);
delay(1);
lcd_wcmd(0x0c); //显示开,关光标
delay(1);
lcd_wcmd(0x01); //清除LCD的显示内容
delay(1);
}
//*****************************************************************
lcd_pos(4,6);
(2)可能造成轻度环境影响的建设项目,编制环境影响报告表,对产生的环境影响进行分析或者专项评价;for(i=0;i<4;i++)

LCD1602液晶显示C程序

LCD1602液晶显示C程序

1、关于1602液晶的电气参数一般市场上的1602液晶使用的驱动器为HD44780U或HD44780S,市场上大部分液晶用的是后者。

HD44780S的供电电压为5V±10%,而HD44780U的供电电压为2.7V~5.5V。

也就是说,绝大部分1602液晶只能工作在5V电压下,其供电电压必须为5V。

经过试验发现,1602液晶的供电虽然必须为5V,但其控制总线和数据总线可以用3.3V电平(因为对于TTL电平,一般大于2.5V以上都算高电平,不过最可靠的是大于3.6V),只不过在3.3V电平下,数据的通信速度会大大降低,这一点需要在写驱动时注意。

需要时,可以将MCU的IO配置为漏极开路方式,用上拉电阻拉到5V电平;实在不能配置为漏极开路方式时,请查阅MCU的电气参数,在允许的条件下,直接使用电阻弱上拉也可以。

2、硬件连接1602液晶可以使用4位或8位通信模式,通信可以是双向的或单向的,双向通信主要是为了读取LCD忙标志和AC地址寄存器和DDRAM和CGRAM中的值,一般用处不大,因为1602不支持点阵绘图功能。

在连接时,注意4位通信方式下,LCD只使用DB7~DB4,一般情况下会使用MCU 某端口的高4位或低4位与之连接,注意写驱动时在必要的情况下对端口的其它几位要保护,防止破坏其数据;当然如果没有使用其它4位时则不必要保护(奇怪,不使用其它4位干嘛用4位通信方式嘛?)。

还要注意的是,如果需要双向通信,则必须选择既能做输入又能做输出的IO口,特别是对于RS、RW和E这三条控制线,若能选择支持位寻址的IO口则可以方便编程。

3、底层驱动问题通用1602液晶的时序如图:(1)、写时序(2)、读时序总的说来,按照这个时序图来编写驱动程序是不会出什么问题的,只是要深刻理解时序图中各参数的涵义。

编程中要特别关注E这根控制线。

写操作的时序应该是:①、RS=0(写指令寄存器)或RS=1(写数据寄存器);②、RW=0(写操作);③、将数据写到数据线上;④、E=1;⑤、E=0 。

基于液晶显示单元的单片机仿真和C语言开发

基于液晶显示单元的单片机仿真和C语言开发

课程设计任务书学生姓名:专业班级:电信指导教师:胡君萍工作单位:信息工程学院1)题目:基于液晶显示单元的单片机实验和C语言开发初始条件:具备单片机的理论知识;具备C语言编程能力;分析液晶显示的原理及实现;提供编程所需要的计算机一台要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、独立编写程序实现液晶显示2、分析并用仿真软件实现单片机液晶显示及循环移位3、完成符合学校要求的设计说明书时间安排:一周,其中3天程序设计,2天程序调试指导教师签名:年月日系主任(或责任教师)签名:年月日武汉理工大学《单片机应用实践》课程设计说明书目录摘要 (1)1 概述 (2)2 软件、硬件介绍 (3)2.1 Proteus介绍 (3)2.2 Keil介绍 (3)2.3 字模提取软件介绍 (4)2.4 单片机AT89C51介绍 (4)2.5 液晶LCD12864介绍 (5)3 设计原理和方案 (7)3.1 设计原理 (7)3.2 设计步骤 (7)3.3 系统硬件电路原理图 (7)4 程序设计 (9)4.1 程序流程图 (9)4.2 实验程序 (10)5 仿真结果与分析 (16)5.1仿真结果 (9)5.2仿真结果分析 (10)6 实物展示 (15)7 心得体会 (16)8 参考文献 (19)9 本科生课程设计成绩认定表 (20)摘要很多信息可以直接由数字表示,从而数字化信息显示又成为信息显示的又一个重要内容。

本次课设是一种基于51单片机实时控制的LCD液晶显示屏循环显示系统。

硬件系统由单片机最小系统和液晶显示系统组成。

此次课程设计采用AT89C51型单片机和12864点阵型LCD液晶显示器来实现。

LCD上要显示某个图形或汉字就是将相应的点阵信息写入到相应的存储单元中。

要想实现循环移动,只需不断改变图片的字模数据在液晶面板上的显示位置(RAM地址)即可。

程序采用C语言编写,使用Keil编译器进行编译。

单片机实现多媒体播放,在液晶屏上显示图片、动画、文字和播放音乐主程序

单片机实现多媒体播放,在液晶屏上显示图片、动画、文字和播放音乐主程序

附录一主程序#include"REG51F.h"#include"intrins.h"#include"USEH1.h"#include"MainMyMedia.h"#include"lcd.h"#include"Music.h"#include"24c02.h"#include"PictureCode.h"#include"CartoonCode.h"#include"MusicCode.h"//位变量声明=========================================== bit gf_50Ms = 0;bit gf_kLok = 0;bit gf_have = 0;bit gf_clrScreen = 0; //清屏标志//全局变量声明========================================= uchar g_tim2Ms = 0; //time0计数器//按键变量uchar g_kCou = 0;uchar g_kStart = 0;uchar g_kLast = 0;uchar g_kVal = 0;uchar g_cnLin=0, g_cnColumn=0, g_cnNum1=0;uchar g_bootDly = 0; //文字显完时延时uchar g_cnDly = 0;uchar g_jdColumn = 16;uchar g_jdBootDy = 0;uchar g_bootCartoonDly = 0;uchar g_cantStup = 0; //动画播放的帧指示uchar g_showLCD = 0; //LCD显示界面控制uchar g_menu1=25, g_menu2=24, g_menu3=24; //光标指示uchar e2romData[6]; //E2ROM缓存uchar chkSun;//函数声明=============================================void InitMCU(void);void WR_E2rom(void); //写E2ROM函数//主程序===============================================void main(void){InitMCU();ReadDate(0, e2romData, 6); //E2ROM处理chkSun = e2romData[0]+e2romData[1]+e2romData[2]+e2romData[3]+e2romData[4]; if((e2romData[0]==0x55)&&(e2romData[4]!=0)&&(e2romData[5]==chkSun)){g_menu1 = e2romData[1];g_menu2 = e2romData[2];g_menu3 = e2romData[3];g_showLCD = e2romData[4];g_cnNum1 = 18;g_bootDly = 0;}InitLCD();for(;;){if(gf_50Ms){if(g_cnNum1<=17) //上电显示{if(g_cnDly==0){ShowChina(g_cnLin,g_cnColumn,g_cnNum1);if(++g_cnNum1>=18)g_cnDly = 0;elseg_cnDly = 4;g_cnColumn += 16;if(g_cnColumn>=112){g_cnColumn = 0;g_cnLin += 2;}}else--g_cnDly;}else if(g_bootDly!=0)--g_bootDly;else //进入正常工作{if(gf_have) //按键处理{gf_have = 0;if(g_showLCD==0){if((g_kVal==KUP)&&(g_menu1!=25)) //向上选择if(g_menu3==25) //铃声→动画{g_menu2 = 25;g_menu1 = g_menu3 = 24;}else if(g_menu2==25) //动画→图片{g_menu1 = 25;g_menu2 = g_menu3 = 24;g_jdBootDy = 30;}else { }}else if((g_kVal==KDOW)&&(g_menu3!=25)) //向下选择 {if(g_menu1==25) //图片→动画{g_menu2 = 25;g_menu1 = g_menu3 = 24;g_jdBootDy = 30;}else if(g_menu2==25) //动画→铃声{g_menu3 = 25;g_menu1 = g_menu2 = 24;}else { }}else if(g_kVal==KENT)gf_clrScreen = 1;if(g_menu1==25) //选择了图片确认 g_showLCD = 1;else if(g_menu2==25) //选择了动画确认 g_showLCD = 2;else //选择了铃声确认g_showLCD = 3;WR_E2rom();}else { }}else{if(g_kVal==KESC) //按ESC返回菜单选择 {gf_clrScreen = 1;g_showLCD = 0;g_cantStup = 0;g_jdColumn = 16;g_jdBootDy = 30;WR_E2rom();}}}if(gf_clrScreen){gf_clrScreen = 0;ClearScreen(1);ClearScreen(2);}//选菜单============================if(g_showLCD==0){ShowChina(0,16,18); //图片ShowChina(0,32,19);ShowChina(2,16,20); //动画ShowChina(2,32,21);ShowChina(4,16,22); //音乐ShowChina(4,32,23);ShowChina(0,64,38);ShowChina(0,80,39);ShowChina(0,96,40);ShowChina(2,64,0); //陈清智ShowChina(2,80,1);ShowChina(2,96,2);ShowChina(4,72,5); // 设计ShowChina(4,88,6);ShowChina(0,0,g_menu1); //光标ShowChina(2,0,g_menu2);ShowChina(4,0,g_menu3);}//显示图片---------------------------else if(g_showLCD==1){ShowPicture(1, 13, 48, 101, PictureCode); }//放动画----------------------------else if(g_showLCD==2){if(g_jdColumn<=96){if(g_cnDly==0){ShowChina(2,0,26); //[ ]ShowChina(2,112,27);ShowChina(4,32,29); //请稍候…ShowChina(4,48,30);ShowChina(4,64,31);ShowChina(4,80,32);if(g_jdBootDy == 0){ShowChina(2,g_jdColumn,28); //■ g_jdColumn += 16;if(g_jdColumn>=112){g_cnDly = 0;g_bootCartoonDly = 20;}elseg_cnDly = 15;}else--g_jdBootDy;}else--g_cnDly;}else if(g_bootCartoonDly!=0){if(--g_bootCartoonDly==0)gf_clrScreen = 1;}else //进入动画播放{if(g_cnDly==0){switch(++g_cantStup){case 1:{ShowPicture(1, 22, 48, 84, CartoonP1); g_cnDly = 8;}break;case 2:{ShowPicture(1, 22, 48, 84, CartoonP2); g_cnDly = 12;}break;default:{ShowPicture(1, 22, 48, 84, CartoonP3); g_cantStup = 0;g_cnDly = 40;}}}else--g_cnDly;} //end else 进入动画播放} //end else 放动画//放音乐----------------------------else{ShowChina(2,16,33); //∮ShowChina(2,32,34); //同ShowChina(2,48,35); //一ShowChina(2,64,36); //首ShowChina(2,80,37); //歌if(g_cnDly==0){InitialSound();Play(music1,0,3,360);if(gf_have&&(g_kVal==KESC)) {gf_have = 0;gf_clrScreen = 1;g_showLCD = 0;ET0 = 0;ET1 = 0;//g_cantStup = 0;//g_jdColumn = 16;//g_jdBootDy = 30;BeepIO = 0;WR_E2rom();}elseg_cnDly = 40;}else--g_cnDly;}} //end else进入正常工作}}}//定时器2中断,10ms中断一次========================= void time2_interrupt(void)interrupt 5{TF2 = 0;if(++g_tim2Ms>=5){g_tim2Ms = 0;gf_50Ms = 01;}//按键读取---------------P0 |= 0xf0;_nop_();_nop_();_nop_();_nop_();_nop_();g_kStart = P0 | 0x0f;if(g_cnNum1<=17) { }else if(g_kStart!=g_kLast){g_kLast = g_kStart;}else{if(++g_kCou>=3){g_kCou = 0;if(g_kStart==0xff){gf_kLok = 0;}else if(gf_kLok) { }else{gf_kLok = 1;gf_have = 1;g_kVal = g_kStart;}}}}//子函数=============================================== //MCU初始化----------------------void InitMCU(void){P0 = 0xff;P1 = 0xff;P2 = 0xff;P3 = 0x7f;//定时器2初始化CP_RL2 = 0;TL2 = 0xf0;TH2 = 0xd8;RCAP2L = 0xf0;RCAP2H = 0xd8;C_T2 = 0;TR2 = 1;ET2 = 1;EA = 1;gf_clrScreen = 1;g_bootDly = 40;}//写E2ROM函数--------------------void WR_E2rom(void){e2romData[0] = 0x55;e2romData[1] = g_menu1;e2romData[2] = g_menu2;e2romData[3] = g_menu3;e2romData[4] = g_showLCD;e2romData[5] = e2romData[0]+e2romData[1]+e2romData[2]+e2romData[3]+e2romData[4];WriteDate(0, e2romData, 6);}。

单片机连接串口液晶屏C语言程序

单片机连接串口液晶屏C语言程序

#define #define #define #define #define #define #define #define #define #define
ATPAD_REG_AD3 3 ATPAD_REG_AD4 4 ATPAD_REG_AD5 5 ATPAD_REG_AD6 6 ATPAD_REG_AD7 7 ATPAD_REG_AD8 8 ATPAD_REG_PARAM1 9 ATPAD_REG_PARAM2 10 ATPAD_REG_OUTPUT 11 ATPAD_REG_WAV 20
float IRsin(int angle_value) { int b, c; int angle = angle_value; /* change to cosine by subtracting 90 */ angle = angle - 90; if (angle < 0) { angle = -angle; } b = angle / 90; c = angle - b * 90; /* interpolate switch(b&3) { case 3: c = 90 return case 2: return case 1: c = 90 return default: return } } ///////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------// // CRC16 计算方法 1:使用 2 个 256 长度的校验表 // // ----------------------------------------------------------------// ///////////////////////////////////////////////////////////////////// const unsigned char chCRCHTalbe[] = // CRC 高位字节值表 { 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, according to angle */

单片机实现液晶显示

单片机实现液晶显示

for (i=0;i<64;i++) { lcd_mwd(0); } } } //初始化 lcd void lcd_init(void) { lcd_mwc(0xc0); lcd_mwc(0x3f); } //dispm_hz_up() display up half of a hanzi in left area void dispm_hz_up(uchar code * hz) { uchar i; for (i=0;i<16;i++) lcd_mwd(*(hz+i)); } //dispm_hz_down() display down half of a hanzi in left area void dispm_hz_down(uchar code * hz) { uchar i; for (i=16;i<32;i++) lcd_mwd(*(hz+i)); }
单片机实**********************************/ #include "lcd_show.h" #define uint unsigned int #define uchar unsigned char #define CSA P2_1 #define CSB P2_0 #define E P2_3
#define RW P2_5 #define DI P2_6 sbit busy_bit=ACC^7; //lcd state byte bit 7
/*下面是对液晶屏 gxm12864d 操作的函数, 128x64 点阵,汉字显示,CSA,CSB 用来进行左 右显示区的选择。*/ /* 发命令 i 到主窗口*/ void lcd_mwc(uchar i) { CSA=1; CSB=0; RW=1; DI=0; do {ACC=LCD;} while (busy_bit) ;//wait for lcd not busy RW=0; LCD=i; } /* 写数据 i 到主窗口*/ void lcd_mwd(uchar i) { CSA=1; CSB=0; RW=1; DI=0; do {ACC=LCD;} while (busy_bit);//wait for lcd not busy RW=0; DI=1; LCD=i; } /* 清屏 */ void lcd_clear(void) { uchar i; uchar page; for (page=0xb8;page<0xc0;page++) { lcd_mwc(page); /*设置显示页面*/ lcd_mwc(0x40); /*设置列地址*/

《单片机应用技术(C语言)》实训课件—4.4 字符型LCD液晶显示广告牌控制

《单片机应用技术(C语言)》实训课件—4.4 字符型LCD液晶显示广告牌控制

程序预处理
#include <reg51.h> //包含头文件reg51.h,定义了51单片机的专用寄存器
#include <intrins.h> //包含头文件intrins.h,代码中引用了_nop_()函数
//定义控制信号端口
sbit RS=0xb0;
//P3.0
sbit RW=0xb1;
//P3.1
(3)A2A1A0:与CGRAM字模的8行相对应。当A2A1A0=“000”时,写入第1行的 字模码,当A2A1A0=“001”时,写入第2行的字模码,依次类推。
软件设计思路
按照CGRAM地址和数据自编5x7字模
lcd_w_cmd(0x40); //写入第1行CGRAM地址 lcd_w_dat(0x1f); //写入第1行CGRAM数据
VSS VDD VO RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A K
电源接线
读写控制线
数据线
背光控制线
字符型LCD1602的基本操作
RS
R/W
操作
0
0
写命令操作(初始化、光标定位等)
0
1
读状态操作(读忙标志)
1
0
写数据操作(要显示的内容)
1
1
读数据操作(可以把显示存储区中的数据反读出来)
//写入第5行CGRAM地址
lcd_w_dat(0x04);
//写入第5行CGRAM数据
lcd_w_cmd(0x45);
//写入第6行CGRAM地址
lcd_w_dat(0x1f);
//写入第6行CGRAM数据
lcd_w_cmd(0x46);

单片机操作12832图形点阵液晶 C语言

单片机操作12832图形点阵液晶 C语言
/*辅助驱动函数声明*/
void LCD12832_INIC(bit lcd_ic);//单IC初始化函数 IC地址重置 并关闭显示开显示一次 由初始化函数调用
void LCD12832_SL(); //清屏函数 由初始化函数调用
void LCD12832_BU(); //读忙函数 由写函数调用
LCD12832_RS= lcd_rs ;//数据命令 如期望的状态
LCD12832_E = LCD12832_H;//拉高使能
LCD12832_DATA=0xff; //数据线清除数据
lcd_data =LCD12832_DATA;//读取数据
LCD12832_E = LCD12832_L;//拉低使能
14 DB2 数据总线。
15 DB1 数据总线。
16 DB0 数据总线。
17 LED- 背光电源地(0V)。
18 LED+ 背光电源正(+5V)。
程序大小:1141字节
更新时间:无
更新版本:无
更新日志:无
*/
#ifndef __LCD_12832_H__
#define LCD12832_RS P26 //数据/指令选择
#define LCD12832_RW P27 //读写选择。高,读状态。低电平,写数据。
#define LCD12832_CS P24 //芯片使能信号,低电平:左半屏:高电平:右半屏
//#de的话
#define LCD12832_RST 0x10 //复位状态 1复位 0正常
#define LCD12832_ONOF 0x20 //显示开关 1显示开 0显示关
/*操作液晶要用的GPIO*/
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

*/
/*
24c02 的 sda 端和 scl 端分别接 P2.0 和 P2.1
*/
/*
24c02 的 VCC 端接+5V,GND,A0,A1,A2,WP 都接 GND
*/
/*************************************************************/
sbit LCD_RS = P2^6;
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 0;
P0 = dat;
delayNOP();
LCD_EN = 1;
delayNOP();
LCD_EN = 0;
}
/*************************************************************/
LCD_RS = 0;
LCD_RW = 0;
LCD_EN = 0;
_nop_();
_nop_();
P0 = cmd;
delayNOP();
LCD_EN = 1;
delayNOP();
LCD_EN = 0;
}
/*******************************************************************/
//16*2 显示,5*7 点阵,8 位数据 //重复 //再重复
lcd_wcmd(0x0c);
//显示开,关光标
delay(5);
lcd_wcmd(0x06);
//移动光标
delay(5);
lcd_wcmd(0x01);
//清除 LCD 的显示内容
delay(5);
}
/*************************************************************/
/*
写入字符函数 LCD_write_char(x,y,dat)
*/
/*
将字符“dat”写入 LCD 的第(x+1)行第(y+1)位
*/
/*
设定第 1 行显示位置:数据指针=80+地址变量
*/
/*
设定第 2 行显示位置:数据指针=c0+地址变量
*/
/*************************************************************/
/*






LCD
*/
/*RS=H,RW=L,E=高脉冲,D0-D7=数据。
*/
/*******************************************************************/
void lcd_wdat(uchar dat)
{
while(lcd_busy());
scl=0;
delay2();
}
return k;
}
/*****************在地址 address 处写入数据 date*****************/
void write_add(uchar address,uchar date)
{
start();
write_byte(0xa0);
delay2();
}
void write_byte(uchar date)
//写入 1 byte 数据
{
uchar i,temp;
temp=date;
for(i=0;i&lt;8;i++)
{
temp=temp&lt;&lt;1;
scl=0;
delay2();
sda=CY;
delay2();
scl=1;
/* LCD 初始化设定
*/
/*************************************************************/
void lcd_init()
{
delay(15);
lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5); lcd_wcmd(0x38); delay(5);
单片机 C 语言_液晶显示器上显示 c 储存数据
/********************* 包 含 的 头 文 件 ****************************/ #include&lt;reg52.h&gt; #include &lt;intrins.h&gt;
#define uchar unsigned char
void start() //开始信号
{
sda=1;
delay2();
scl=1;
delay2();
sda=0;
delay2();
}
void stop() //停止信号
{
sda=0;
delay2();
scl=1;
delay2();
sda=1;
delay2();
}
void respons() //应答信号
#define uint unsigned int
/*********************定义 LCD 端口*****************************/
/*
LCD 的 RS,RW,EN 分别是 P2.6、P2.5、P2.7 端口
*/
/*
P0.0--P0.7 端口接 LCD 的数据端口 D0--D7
delay2();
}
scl=0;
delay2();
sda=1;
delay2();
}
uchar read_byte()
//读出 1 byte 数据
{
uchar i,k;
scl=0;
delay2();
sda=1;
delay2();
for(i=0;i&lt;8;i++)
{
scl=1;
delay2();
k=(k&lt;&lt;1)|sda;
LCD_write_char(0,m,temp[m]+&#39;0&#39;);
//+‘0’表示让 LCD 显
示 ASCII code
}
while(1); }
// 程序终止,LCD 始终显示 numb
sbit LCD_RW = P2^5;
sbit LCD_EN = P2^7;
sbit sda=P2^0;
sbit scl=P2^1;
/*************************************************************/
/*
*/
/*
延时子程序
*/
/*
*/
/*************************************************************/
*s)
{
while(*s) { LCD_write_char(x,y,*s); s++; y++; } }
/*************************************************************/
/*
*/
/*
主程序
*/
/*
将数列 numb 显示在 LCD 上
*/
/*






LCD
*/
/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。
*/
/*******************************************************************/
void lcd_wcmd(uchar cmd)
{
while(lcd_busy());
/*
*/
/*************************************************************/
void main()
{
uchar numb[6]={3,4,5,6,7,8};//也可以改成其他数字uchar m;ຫໍສະໝຸດ uchar temp[6];
init();
//24c02 初始化
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
void delay2()
{ ;; }
void delay(uchar x)
{ uchar j;
while((x--)!=0)
{ for(j=0;j&lt;125;j++)
{;}
}
}
void delay1(uchar x)
/*
写入字符函数 LCD_write_string(x,y,*s)
*/
/*
将字符串“*s”写入 LCD 的第(x+1)行第(y+1)位
*/
/*************************************************************/
/*void LCD_write_string(unsigned char x,unsigned char y,unsigned char
{
uchar a,b;
for(a=x;a&gt;0;a--)
相关文档
最新文档