| 我用的是STC8F2K16S2单片机 连接液晶显示 SEG9-SEG27 COM0-COM3 #include "STC8F.H" #include "absacc.h" #include "intrins.h" #include "stdio.h" #define uint unsigned int #define uchar unsigned char #define BIAS 0X52 //必须跟硬件电路的COM匹配,1个或者2个COM 0x42 3个COM 0X4A 4个COM 0x52 1/3LCD驱动器偏压 4个公共端口COM #define RC256 0X30 #define SYSTEN 0x02 #define SYSDIS 0x00 #define LCDON 0X06 void sendbitHT1621(uchar nbit,uchar n);//发送一个字节中的n位到HT1621里,驱动程序的最底层部分 void write_com(uchar cmdcode);//写命令到LCD void init_lcd();//初始化LCD屏 void seg_display(uchar col,uchar pag);//显示基本单位点 void scerrn_clear();//清空屏幕的内容 void delay(); //5s //说明:凡是输出IO后缀都是_dr,凡是输入后缀都是_sr sbit ht162x_data_dr=P0^0; sbit ht162x_cs_dr=P0^2; sbit ht162x_wr_dr=P0^3; void main() { init_lcd(); } //发送一个字节中的N位到HT1621里,驱动程序的最底层部分// void sendbitHT1621(uchar nbit,uchar n) { uchar i; for(i=0;i<n;i++) { ht162x_wr_dr=0; if(nbit&0x80) //判断最高位 { ht162x_data_dr=1; } else { ht162x_data_dr=0; } _nop_(); _nop_(); _nop_(); ht162x_wr_dr=1; _nop_(); _nop_(); _nop_(); nbit<<=1; } } //写命令到LCD,驱动液晶程序的一部分// void write_com(uchar cmdcode) { ht162x_cs_dr=0; //选通HT1621 _nop_(); _nop_(); sendbitHT1621(0x80,4); //写入命令 sendbitHT1621(cmdcode,8); //写入控制命令 _nop_(); _nop_(); ht162x_cs_dr=1; _nop_(); _nop_(); _nop_(); } void init_lcd() { ht162x_data_dr=1; ht162x_cs_dr=1; ht162x_wr_dr=1; write_com(SYSTEN); // 打开系统振荡器 write_com(RC256); //启动内部256K RC振荡器 write_com(BIAS); //1/3LCD驱动器偏压 4个公共端口COM write_com(LCDON); //开启LCD } //核心内容 显示基本单位点,col代表X轴,X轴的数据用位来表示,一个字节中的高4位来表示,pag表示Y轴 void seg_display(uchar col,uchar pag) { // pag<<=2; ht162x_cs_dr=0; _nop_(); _nop_(); sendbitHT1621(0XA0,3); //发送写数据模式 高位101 101为6 位RAM 地址, sendbitHT1621(pag<<2,6); //写入地址数据 sendbitHT1621(col,4); //写入数据 ht162x_cs_dr=1; _nop_(); _nop_(); } //清空屏幕内容 void screen_clrar() { uchar i; uchar y=0; for(i=0;i<32;i++) { seg_display(0X00,y); y=y+1; } } 注:这个还有一个毛病就是每次烧完程序之后 要断电很久屏幕才会发生变化,这个也搞不清是什么原因 ![]() |
共1条
1/1 1 跳转至页
请教STC8F2K16S2单片机驱动LCD控制器HT1621B老是出现乱码的问题
关键词: STC8F2K16S2 单片机 HT1621B L
共1条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| 一种有效完成脚本程序测试的方法被打赏¥28元 | |
| WorkBuddy搭配SolidCraft给开发板做两件式外壳被打赏¥33元 | |
| 开箱一块k230被打赏¥33元 | |
| 【瑞萨RA8D1测评】RA8D1+lwIP网络验证与TCPOTA的实验记录被打赏¥33元 | |
| 28BYJ-48机械臂实现人脸跟随被打赏¥24元 | |
| 基于RK3506B的片温识读功能的实现被打赏¥25元 | |
| 【瑞萨RA8D1测评】基于FreeRTOS的lvgl移植教程被打赏¥29元 | |
| 电子价签墨水屏开发被打赏¥35元 | |
| 【Ozone】RTT 打印终端使用被打赏¥29元 | |
| BMS保护板绝缘检测功能-不平衡电桥技术绝缘电阻检测设计与实现被打赏¥34元 | |

我要赚赏金
