#include #include //#include"head.h" #define uchar unsigned char #define uint unsigned int #pragma config FOSC = XT // Oscillator Selection bits (XT oscillator) #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled) #pragma config PWRTE = ON // Power-up Timer Enable bit (PWRT enabled) #pragma config BOREN = OFF // Brown-out Reset Enable bit (BOR disabled) #pragma config LVP = ON // Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable bit (RB3 is digital I/O, HV on MCLR must be used for programming) #pragma config CPD = OFF // Data EEPROM Memory Code Protection bit (Data EEPROM code protection off) #pragma config WRT = OFF // Flash Program Memory Write Enable bits (Write protection off; all program memory may be written to by EECON control) #pragma config CP = OFF // Flash Program Memory Code Protection bit (Code protection off) //char tab[]="0123456789"; #define uchar unsigned char #define uint unsigned int void LCD_write_cmd(uchar command); void LCD_write_command(uchar command); void LCD_en_write(void); void LCD_set_xy( unsigned char x, unsigned char y ); void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s); void LCD_write_data(unsigned char data); void delay_nus(unsigned int n); void delay_nms(unsigned int n); #define RS RC2 #define EN RC3 #define DB7 RC7 #define DB6 RC6 #define DB5 RC5 #define DB4 RC4 #define LCD_DATA_PORT PORTC #define LCD_DATA_TRIS TRISC /*------------------------------------------------------------------------------ 函数说明 ------------------------------------------------------------------------------*/ void LCD_init() { TRISD=0x00; //数据口方向为输出 PORTD=0x00; TRISC=0x00; //数据口方向为输出 PORTC=0x00;//设置EN、RS/数据为输出 LCD_write_cmd(0x30);//4位的指令 delay_nms(5); LCD_write_cmd(0x30); delay_nus(200); LCD_write_cmd(0x30); delay_nms(1); LCD_write_cmd(0x20); LCD_write_cmd(0x20); //4位显示 LCD_write_cmd(0x80); LCD_write_cmd(0x00); //显示开 游标、闪烁不显示 LCD_write_cmd(0x80); LCD_write_cmd(0x00); //清屏 LCD_write_cmd(0x01); LCD_write_cmd(0x00); //两行 5*7 LCD_write_cmd(0xc0); } void LCD_write_cmd(uchar command) //写指令 { delay_nus(10); RS=0; EN=0;//使能清零 LCD_DATA_PORT&=0x0f; //清除端口 delay_nus(2); EN=1; LCD_DATA_PORT |= (command & 0xf0);//高4位不用改 delay_nus(2); EN=0; } void LCD_write_command(uchar command) //写指令 { LCD_write_cmd(command); LCD_write_cmd(command<<4); } void LCD_write_data(unsigned char data) //写数据 { delay_nus(10); RS=1; EN=0;//使能清零 LCD_DATA_PORT&=0x0f; EN=1; LCD_DATA_PORT |= (data & 0xf0);//高4位不用改 delay_nus(2); EN=0; delay_nus(2); LCD_DATA_PORT&=0x0F; //清低四位 EN=1; LCD_DATA_PORT |= ((data << 4) & 0xf0);//发送低4位 delay_nus(2); EN=0; } void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s) //列x=0~15,行y=0,1 { LCD_set_xy( X, Y ); //写地址 while (*s) // 写显示字符 { LCD_write_data( *s ); s ++; } } void LCD_set_xy( unsigned char x, unsigned char y ) //写地址函数 { unsigned char address; if (y == 0) address = 0x80 + x; else address = 0xc0 + x; LCD_write_command( address); } void delay_nms(unsigned int n) //N ms延时函数 { uint a,b; for(a=n;a>0;a--) for(b=80;b>0;b--); } void delay_nus(unsigned int n) //N us延时函数 { unsigned int i; for (i=0;i void main() { LCD_init(); // LCD_write_command(0x0d); //光标开 while(1) { RD0=1; delay_nms(1000); RD0=0; delay_nms(1000); LCD_write_string(0,0,"ceshiLCD"); LCD_write_string(0,1,"hahahaha"); delay_nms(2000); } }
上一篇:pic16f887 TMR0计时器讲解及准确定时程序
下一篇:PIC单片机USART的应用
推荐阅读
史海拾趣
算起来从1999年毕业,至今已十载。工作这些年中,应该也是尝尽了酸甜苦辣,本想留着自己品味。但也是看到一些网友现在的心绪,因此也想把自己的一些体会写出来,和EEWORLD的网友分享。也没什么系统,就想到哪儿写到哪儿吧。 今天第一次写,还 ...… 查看全部问答∨ |
|
摘要:本应用笔记比较了集成RF混频器与无源混频器方案的整体性能,论述了两种方案的主要特征,并指出集成方案相对于无源方案的主要优点。 过去,RF研发人员在高性能接收器设计中使用无源下变频混频器取得了较好的整体线性指标和杂散指标。但在这 ...… 查看全部问答∨ |
随着人们对于环保的不断重视,木质手机渐渐浮出水面,逐渐成为人们关注的热点。近日,一款由韩国设计师Hyun Jin Yoon和Eun Hak Lee两人设计的木质出现了,这款Maple木质手机的原材料是非洲黑木,机身尺寸为4.5×10.4×9.8mm。 高科技与大自然完美 ...… 查看全部问答∨ |
各位大人~~~~ 最近用C#在WinCE5.0系统下开发一个简单的小游戏,有网络连接功能(能两个人一个玩,像QQ的找茬一样),使用TCP/IP传输协议。实验箱是博创的UP-NETARM2410-s。现在遇到一个很大的问题,就是用网 ...… 查看全部问答∨ |
[驱动移植]S3C2410-2.6.24.4-CS89X0驱动 驱动启动信息显示,已经正确加载了驱动 不过ifconfig直接看不到eth0 不过ifconfig-a倒是可以 不过设置IP时出现 ifconfig: SIOCSIFFLAGS: Invalid argument 轻各位大侠帮忙看看… 查看全部问答∨ |
设计资源 培训 开发板 精华推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况