完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
源程序!!
#include #include typedef unsigned int uint; typedef unsigned char uchar; void Delay(uint m,uint n) { uint i,j; for(i=0;i } void GPIO_Init(void) { DDRA=0xFF; DDRD=0xFF; DDRB=0xFF; PORTA&=~BIT(3);//RS PORTA&=~BIT(4);//RW PORTA&=~BIT(5);//EN } void Read_Busy(void) { uchar dat=0; DDRD=0x00; PORTA&=~(1<<3); PORTA|=(1<<4); PORTA|=(1<<5);//直接上高电平无需上升沿 Delay(10,10);//加一个小小的延时 dat=PIND; Delay(10,10); PORTA&=~(1<<5); DDRD=0xFF; while(dat&0x80); } void Write_Dat(uchar dat)//写数据 { Read_Busy(); PORTA|=(1<<3);//RS PORTA&=~(1<<4);//RW PORTA&=~(1<<5);//EN Delay(10,10); PORTD=dat; Delay(10,10); PORTA|=(1<<5); Delay(10,10); PORTA&=~(1<<5); } void Write_Command(uchar com)//写命令 { Read_Busy(); PORTA&=~(1<<3); PORTA&=~(1<<4); PORTA&=~(1<<5); Delay(10,10); PORTD=com; Delay(10,10); PORTA|=(1<<5); Delay(10,10); PORTA&=~(1<<5); } void LCD_Init(void)//初始化 { Write_Command(0x38); Delay(200,20); Write_Command(0x06); Delay(200,20); Write_Command(0x0C); Delay(200,20); Write_Command(0x01); Delay(200,20); } void main(void) { GPIO_Init(); LCD_Init(); while(1) { Write_Command(0x80+0x40); Write_Dat(' ');//显示空格 Delay(200,200); Write_Command(0x80+0x40); Write_Dat('T'); Delay(200,200); } } 时序都一样! |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5126 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7769 浏览 0 评论
3028 浏览 2 评论
3103 浏览 1 评论
10055 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 20:21 , Processed in 0.562046 second(s), Total 69, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号