STM32F1 驱动并行LCD12864

在这里插入图片描述

lcd12864.h

#include "main.h" 
void LCD_Check_Busy(void); 
void LcdWriteCom(unsigned char date);			//LCD12864 写指令
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
LCD12864是一种点阵式液晶显示屏,常用于电子产品中。在并行通信中,使用的是8位并行通信方式。下面是LCD12864并行通信C语言代码示例: ```c #include<reg52.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define lcd_data P0 sbit cs1 = P2^2; sbit cs2 = P2^3; sbit wr = P2^4; sbit rs = P2^5; sbit rst = P2^6; sbit rd = P2^7; void delay_ms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void write_com(uchar com) { rs = 0; lcd_data = com; wr = 0; _nop_(); wr = 1; } void write_data(uchar dat) { rs = 1; lcd_data = dat; wr = 0; _nop_(); wr = 1; } void init_lcd() { rst = 1; delay_ms(5); rst = 0; delay_ms(5); rst = 1; write_com(0xe2); delay_ms(5); write_com(0x24); delay_ms(5); write_com(0xc2); delay_ms(5); write_com(0xa2); delay_ms(5); write_com(0x40); delay_ms(5); write_com(0x2f); delay_ms(5); } void display(uchar page,uchar column,uchar *dp) { uint i,j; if(page < 4) { cs1 = 0; cs2 = 1; write_com(0xb0+page); write_com(column&0x0f); write_com(0x10|(column>>4)); for(i=0;i<64;i++) { write_data(*dp++); } } else { cs1 = 1; cs2 = 0; write_com(0xb0+(page-4)); write_com(column&0x0f); write_com(0x10|(column>>4)); for(j=0;j<64;j++) { write_data(*dp++); } } cs1 = 1; cs2 = 1; } void main() { uchar dat1[64] = {0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; uchar dat2[64] = {0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x44,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; init_lcd(); display(0,0,dat1); display(4,0,dat2); while(1); } ``` 该代码使用了常规的51单片机来控制LCD12864并行通信,通过设置不同的控制信号和数据来实现对LCD12864的显示控制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sam-zy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值