历史上的今天
今天是:2024年11月20日(星期三)
2019年11月20日 | LCD1602在PIC单片机中的使用程序
2019-11-20 来源:51hei
#include __CONFIG(0x1832); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 #define rs RA1 #define rw RA2 #define e RA3 const char web[ ]={' ','W','W','W','.','P','I','C','1','6','.','C','O','M',' ',' '}; //显示公司web地址 const char tel[ ]={'T','E','L','0','7','5','5','-','2','8','1','8','7','9','7','5'}; //显示公司电话号码 void init(); //申明I/O口初始化函数 void lcd_init(); //申明LCD初始化函数 void write_web(); //申明显示公司web地址函数 void write_tel(); //申明显示公司tel函数 void write(char x); //申明显示1字节数据函数 void lcd_enable(); //申明LCD显示设置函数 void delay(); //申明延时函数 //--------------------------------------- //主函数 void main() { while(1) { init(); //调用I/O口初始化函数 lcd_init(); //调用LCD初始化函数 write_web(); //调用显示公司web地址函数 PORTD=0XC0; //设置第2行显示地址 lcd_enable(); //调用LCD显示设置函数 write_tel(); //调用显示公司tel函数 } } //--------------------------------------- //I/O口初始化函数 void init() { ADCON1=0X07; //设置A口为普通I/O口 TRISA=0X00; //设置A口为输出 TRISD=0X00; //设置D口为输出 } //--------------------------------------- //LCD初始化函数 void lcd_init() { PORTD=0X1; //清除显示 lcd_enable(); PORTD=0X38; //8位2行5*7点阵 lcd_enable(); PORTD=0X0e; //显示开,光标开,闪烁 lcd_enable(); PORTD=0X06; //文字不动,光标右移 lcd_enable(); PORTD=0X80; //公司web显示地址 lcd_enable(); } //-------------------------------------- //显示公司web地址 void write_web() { int i; for(i=0;i<0x10;i++) //一共16字节数据 { write(web[i]); //查表获取数据并调用写一个字节数据函数送LCD显示 } } //-------------------------------------- //显示公司tel函数 void write_tel() { int i; for(i=0;i<0x10;i++) //一共显示16字节数据 { write(tel); //查表获取数据并调用写一个字节数据函数送LCD显示 } } //-------------------------------------- //写一个字节数据函数 void write(char x) { PORTD=x; //待显示数据送PORTD口 rs=1; //该字节数据为数据,而不是命令 rw=0; //此次操作为写,而不是读 e=0; //拉低使能信号 delay(); //保持使能信号为低一段时间 e=1; //拉高使能信号,建立LCD操作所需要的上升沿 } //-------------------------------------- //LCD显示设置函数 void lcd_enable() { rs=0; //该字节数据为命令,而不是数据 rw=0; //此次操作为写,而不是读 e=0; //拉低使能信号 delay(); //保持使能信号为低一段时间 e=1; //拉高使能信号,建立LCD操作所需要的上升沿 } //-------------------------------------- //延时函数 void delay() { int i; for(i=0;i<5000;i++); }
史海拾趣
|
请教大家一个问题,不是很难,但我不知道怎么做~ 就是用Protel绘图时,我用了一个或门,元件库里有的,但是是个两输出的,我的设计中需要用到三个输出,应该怎么做呢??不会是自己画好了再封装吧??谢谢各位大虾,我是菜鸟~~~呜啦啦啦\\(^o^)/~… 查看全部问答> |
|
Secure Digital/Multimedia Card (SD/MMC) 上的图片带一个问号? C:\\Documents and Settings\\Administrator\\桌面\\sd.bmp 请问为什么会有个问号?… 查看全部问答> |
|
职位描述 Windows驱动程序设计和实现 职位要求 1.计算机、电子工程、通信、自动化等相关专业本科以上学历; 2.熟练掌握C/C++语言编程; 3.精通WDM, WDF编程,熟悉DriverStudio, WINDBG等开发工具; 4.深入理解Windows操作系统组成原理和内核 ...… 查看全部问答> |
|
在baidu找不到,谁有资料给我传一个呀,用过这芯片的大虾能给我说说这芯片的优缺点吗?谢谢!散分了. EMAIL:xhbbit@yahoo.com.cn QQ:472149942 MSN:xhbbit@yahoo.com.cn … 查看全部问答> |
|
keil编译mem.h报错 error: #40: expected an identifier .\\third_party\\lwip-1.3.1\\src\\include\\lwip/mem.h(76): error: #40: expected an identifier.\\third_party\\lwip-1.3.1\\src\\include\\lwip/mem.h(88): error: #20: identifier \"mem_size_t\" is undefined keil 中这里已经 ...… 查看全部问答> |




