完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这是一个LCD12864的驱动程序!!使用串行方式的
#include "STM32f10x.h" #define uchar unsigned char #define RS_0() GPIO_WriteBit(GPIOD,GPIO_Pin_10 ,Bit_RESET ); #define RS_1() GPIO_WriteBit(GPIOD,GPIO_Pin_10 ,Bit_SET ); #define RW_0() GPIO_WriteBit(GPIOD,GPIO_Pin_11 ,Bit_RESET ); #define RW_1() GPIO_WriteBit(GPIOD,GPIO_Pin_11 ,Bit_SET ); #define E_0() GPIO_WriteBit(GPIOD,GPIO_Pin_12 ,Bit_RESET ); #define E_1() GPIO_WriteBit(GPIOD,GPIO_Pin_12 ,Bit_SET ); uchar i,j; u16 AC_TABLE[]={0x0080,0x0081,0x0082,0x0083,0x0084,0x0085,0x0086,0x0087, 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, }; void PA_input(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 |GPIO_Pin_2 |GPIO_Pin_3 |GPIO_Pin_4 |GPIO_Pin_5 |GPIO_Pin_6|GPIO_Pin_7; //LED0-->PA.8 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); } void PA_output(void) { GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 |GPIO_Pin_2 |GPIO_Pin_3 |GPIO_Pin_4 |GPIO_Pin_5 |GPIO_Pin_6|GPIO_Pin_7; //LED0-->PA.8 端口配置 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOAtiNG; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); } /**** 清屏 *****/ void claer_all(void) { RS_0(); RW_0(); write_comd(0x0001); delay_ms(5); } /*******初始化*******/ void LCDInit(void) { write_comd(0x0030); //功能设定,基本指令 write_comd(0x000e); // 显示开,游标关,反白关 write_comd(0x0001); // 清除显示 } /*********读忙********/ void read_busy(void) { char busy; write_data(0x00ff); RS_0(); RW_1(); do{ E_1(); busy=read_data(); E_0(); }while(busy>0x7f); } /*********写命令********/ int write_comd(u16 cmd) { RS_0(); RW_0(); GPIO_Write(GPIOA,cmd); E_1(); E_0(); } /*********写数据********/ int write_data(u16 dat) { RS_1(); RW_0(); GPIO_Write(GPIOA,dat); E_1(); E_0(); } /*********写数据********/ int read_data() { u8 a; PA_input(); delay_ms(20); a=(u8)GPIO_ReadInputData(GPIOA); PA_output(); return(a); } /*******汉字和字符显示,参数入口:Show(地址,显示宽度,汉字数组)************/ /*void Show(u16 address,u8 L,u16 STR1[]) { char i; RS_0(); RW_0(); write_comd(address); for(i=0;i read_busy(); write_data(STR1); } } */ void main() { u8 L=32; u16 add=0x0080; SystemInit(); //系统时钟初始化为72M SYSCLK_FREQ_72MHz delay_init(72); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 LED_Init(); LCDInit(); delay_ms(5); claer_all() ; delay_ms(5); //Show(add,L,AC_TABLE[]); for(i=0;i<32;i++) { write_comd(add); add++; read_busy(); write_data(0x00ff); } } |
|
相关推荐
1个回答
|
|
32看不懂。。。。。。。。。。。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用Keil建立完整的工程,并使用外部中断0触发数码管显示903
151 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-使用AHT20进行环境监测之AHT20传感器介绍
1043 浏览 0 评论
836 浏览 0 评论
874 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
869 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11824 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-30 00:06 , Processed in 0.625905 second(s), Total 76, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号