欢迎来到天天文库
浏览记录
ID:29940375
大小:76.54 KB
页数:3页
时间:2018-12-25
《飞思卡尔8位单片机mc9s0813程序lcd编程c语言程序例》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、13.3.2LCD编程C语言程序例(1)LCD编程C语言子函数LCD编程汇编子函数(LcdShow.c)/*文件描述:本文件包含了用HD44780显示相关的3个子程序**1.LCDShow:在LCD上显示32个字符**2.LcdInit:初始化Lcd**3.Lcd_Command:执行给定的cmd命令**-------------《嵌入式应用技术基础教程》--------------*///[以下为子程序源代码]//[头文件]#include"GP32C.h"//包含头文件#defineLcdDataPTB//Lcd显示数据传
2、送口#defineLcdData_DDDRB//数据口方向寄存器#defineLcdCtrlPTC//Lcd控制信号传送口#defineLcdCtrl_DDDRC//控制口方向寄存器#defineLcdRS0//Lcd寄存器选择信号PTC0#defineLcdRW1//读写信号接PTC1#defineLcdE2//Lcd使能信号接PTC2//内部调用子程序voidLcd_Command(unsignedcharcmd);//命令执行子程序voidLcdInit(void);//Lcd初始化子程序/*LcdShow:在HD447
3、80显示屏上显示数据--------------------**功能描述:在HD44780显示屏上显示str中的32个数据**参数:str:待显示数组**返回:无**------------------以上为子程序说明-------------------*/voidlcdshow(unsignedcharstr[]){unsignedchari;LcdInit();//调用Lcd初始化子程序//显示第1行16个字符LcdCtrl&=~(1<4、;Lcd_Command(0b10000000);//后7位为DDRAM地址0x00LcdCtrl5、=1<6、=17、<8、void){unsignedchari;LcdData_D=0b11111111;//数据口为输出LcdCtrl_D9、=(1<10、=(1<11、=(1<12、=(1<13、000);//关显示,关光标显示,不闪烁Lcd_Command(0b00000001);//清屏for(i=0;i<250;i++);//延时>1.6msfor(i=0;i<250;i++);Lcd_Command(0b00010100);//光标右移一个字符位,AC自动加1Lcd_Command(0b00001100);//开显示,关光标显示,不闪烁}/*Lcd_Command:执行给定的cmd命令------------------------**功能:执行给定的cmd命令,且延时**参数:cmd:待执行的命令**返回:无14、**-----------------------------------------------------*/voidLcd_Command(unsignedcharcmd){unsignedchari;for(i=0;i<20;i++);//等待>40usLcdData
4、;Lcd_Command(0b10000000);//后7位为DDRAM地址0x00LcdCtrl
5、=1<6、=17、<8、void){unsignedchari;LcdData_D=0b11111111;//数据口为输出LcdCtrl_D9、=(1<10、=(1<11、=(1<12、=(1<13、000);//关显示,关光标显示,不闪烁Lcd_Command(0b00000001);//清屏for(i=0;i<250;i++);//延时>1.6msfor(i=0;i<250;i++);Lcd_Command(0b00010100);//光标右移一个字符位,AC自动加1Lcd_Command(0b00001100);//开显示,关光标显示,不闪烁}/*Lcd_Command:执行给定的cmd命令------------------------**功能:执行给定的cmd命令,且延时**参数:cmd:待执行的命令**返回:无14、**-----------------------------------------------------*/voidLcd_Command(unsignedcharcmd){unsignedchari;for(i=0;i<20;i++);//等待>40usLcdData
6、=1
7、<8、void){unsignedchari;LcdData_D=0b11111111;//数据口为输出LcdCtrl_D9、=(1<10、=(1<11、=(1<12、=(1<13、000);//关显示,关光标显示,不闪烁Lcd_Command(0b00000001);//清屏for(i=0;i<250;i++);//延时>1.6msfor(i=0;i<250;i++);Lcd_Command(0b00010100);//光标右移一个字符位,AC自动加1Lcd_Command(0b00001100);//开显示,关光标显示,不闪烁}/*Lcd_Command:执行给定的cmd命令------------------------**功能:执行给定的cmd命令,且延时**参数:cmd:待执行的命令**返回:无14、**-----------------------------------------------------*/voidLcd_Command(unsignedcharcmd){unsignedchari;for(i=0;i<20;i++);//等待>40usLcdData
8、void){unsignedchari;LcdData_D=0b11111111;//数据口为输出LcdCtrl_D
9、=(1<10、=(1<11、=(1<12、=(1<13、000);//关显示,关光标显示,不闪烁Lcd_Command(0b00000001);//清屏for(i=0;i<250;i++);//延时>1.6msfor(i=0;i<250;i++);Lcd_Command(0b00010100);//光标右移一个字符位,AC自动加1Lcd_Command(0b00001100);//开显示,关光标显示,不闪烁}/*Lcd_Command:执行给定的cmd命令------------------------**功能:执行给定的cmd命令,且延时**参数:cmd:待执行的命令**返回:无14、**-----------------------------------------------------*/voidLcd_Command(unsignedcharcmd){unsignedchari;for(i=0;i<20;i++);//等待>40usLcdData
10、=(1<11、=(1<12、=(1<13、000);//关显示,关光标显示,不闪烁Lcd_Command(0b00000001);//清屏for(i=0;i<250;i++);//延时>1.6msfor(i=0;i<250;i++);Lcd_Command(0b00010100);//光标右移一个字符位,AC自动加1Lcd_Command(0b00001100);//开显示,关光标显示,不闪烁}/*Lcd_Command:执行给定的cmd命令------------------------**功能:执行给定的cmd命令,且延时**参数:cmd:待执行的命令**返回:无14、**-----------------------------------------------------*/voidLcd_Command(unsignedcharcmd){unsignedchari;for(i=0;i<20;i++);//等待>40usLcdData
11、=(1<12、=(1<13、000);//关显示,关光标显示,不闪烁Lcd_Command(0b00000001);//清屏for(i=0;i<250;i++);//延时>1.6msfor(i=0;i<250;i++);Lcd_Command(0b00010100);//光标右移一个字符位,AC自动加1Lcd_Command(0b00001100);//开显示,关光标显示,不闪烁}/*Lcd_Command:执行给定的cmd命令------------------------**功能:执行给定的cmd命令,且延时**参数:cmd:待执行的命令**返回:无14、**-----------------------------------------------------*/voidLcd_Command(unsignedcharcmd){unsignedchari;for(i=0;i<20;i++);//等待>40usLcdData
12、=(1<13、000);//关显示,关光标显示,不闪烁Lcd_Command(0b00000001);//清屏for(i=0;i<250;i++);//延时>1.6msfor(i=0;i<250;i++);Lcd_Command(0b00010100);//光标右移一个字符位,AC自动加1Lcd_Command(0b00001100);//开显示,关光标显示,不闪烁}/*Lcd_Command:执行给定的cmd命令------------------------**功能:执行给定的cmd命令,且延时**参数:cmd:待执行的命令**返回:无14、**-----------------------------------------------------*/voidLcd_Command(unsignedcharcmd){unsignedchari;for(i=0;i<20;i++);//等待>40usLcdData
13、000);//关显示,关光标显示,不闪烁Lcd_Command(0b00000001);//清屏for(i=0;i<250;i++);//延时>1.6msfor(i=0;i<250;i++);Lcd_Command(0b00010100);//光标右移一个字符位,AC自动加1Lcd_Command(0b00001100);//开显示,关光标显示,不闪烁}/*Lcd_Command:执行给定的cmd命令------------------------**功能:执行给定的cmd命令,且延时**参数:cmd:待执行的命令**返回:无
14、**-----------------------------------------------------*/voidLcd_Command(unsignedcharcmd){unsignedchari;for(i=0;i<20;i++);//等待>40usLcdData
此文档下载收益归作者所有