版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、* *AT89C51单片机控制 HT1621B 驱动 LCD*(全显示程序)*/#in elude <reg51.h>#in elude vintrin s.h>#defi neBIAS 0X501/2偏压,4背极/#defi neRC256 0X30II系统时钟选择为片内RC振荡器#defi neRC2560X38#defi neWDTDIS1 0X0A/禁止WDT溢出标志输出#defi neTIMERDIS 0X08/时基输出禁能#defi neSYSEN 0X02/打开系统时钟#defi neLCDON 0X06/打开偏压发生器#defi neSYSDIS 0X00/关
2、闭系统时钟和偏压发生器#defi ne_NOP() _nop_()sbit LED=P2A0;sbit CS=P2A7;sbit WRD=P2A6;sbit DATA=P2A5;#define uehar unsigned char#define uint unsigned intvoid SENDBYTE (uehar dat);void SENDBIT (uehar dat,ueharbitent);/*延时子函*/void delay1s()/ 延时 1Suchar i;uint j;for(i=0;i<10;i+)for(j=0;j<1300;j+);void delay1
3、s()/ 延时 1Svoid delay1s()/ 延时 1S*HT1621B初始化*void delay1s()/ 延时 1Svoid delay1s()/ 延时 1S/ 初始化 HT1621void START_HT1621()CS=1;WRD=1;DATA=1;/delay();_NOP();CS=0;CS=0;WRD=0;WRD=0;void delay1s()/ 延时 1Svoid delay1s()/ 延时 1S/*发送命令子函数 A*/void delay1s()/ 延时 1Svoid delay1s()/ 延时 1Svoid SENDCOMA(uchar com)/发送命令 A
4、, ID=100+0void delay1s()/ 延时 1Svoid delay1s()/ 延时 1SSTART_HT1621();SENDBIT(0X80,4);SENDBYTE(com);void delay1s()/ 延时 1Svoid delay1s()/ 延时 1S/*发送命令子函数 B*/void delay1s()/ 延时 1Svoid delay1s()/ 延时 1Svoid SENDCOMB(uchar adr)/发送命令B,发送显示数据void delay1s()/ 延时 1SSTART_HT1621();/HT1621 初始化SENDBIT(0XA0,4);/发送写数据
5、ID: 101+6位LCD之RAM地址第1位SENDBIT(adr,5);/ 然后发送地址后 5 位*发送命令子函数C*/ 发送命令 C, ID=100+1void SENDCOMC(uchar com)START_HT1621();SENDBIT(0X90,4);SENDBYTE(com);*按位发送数据子函数*/ 从最高位发送/ 在 WRD 的上升沿,数据写入 HT1621Bvoid SENDBIT (uchar dat,uchar bitcnt) / 按位发送数据uchar i;for(i=0;i<bitcnt;i+)if(dat&0x80)=0X00)DATA=0;els
6、eDATA=1;/delay();_NOP();WRD=1;/delay();_NOP();WRD=0;dat=dat<<1;/*发送字节数据子函数 */ 发送字节数据void SENDBYTE (uchar dat)SENDBIT(dat,8);/*LCD显示子函数 */void display(uchar dat)/LCD 显示uchar i;SENDCOMB(0X00);/ 从 RAM 的 0X00 地址开始放入数据SENDBYTE(dat);SENDBYTE(dat);for (i=0;i<2;i+)SENDBYTE(dat);/从 SEG0 开始显示数据/*HT16
7、21B 初始化设置 */void SETUP_HT1621()/HT1621 偏压、背极、工作方式设置SENDCOMA(BIAS);SENDCOMA(RC256);SENDCOMA(SYSEN);delay1s();SENDCOMA(LCDON);SENDCOMA(WDTDIS1);SENDCOMA(TIMERDIS);/*主函数 */main()/ 主函数LED=1;SETUP_HT1621();while(1)display(0XFF);/ 全显示各位大牛下午好,我用STC12C520单片机控制1621驱动液晶 程序调了几天都没进展, 显示的不知道什么乱七八糟的东西, 好像命令根本写不 进
8、去,COM和 coml是个1v不到的电平,com3为3点几V的电平,com4有时有 波形刷我自己写的程序就是这个样子,SEGMENT部分有波形,其余就是一个电平打电话咨询合泰技术,让我搞他们的范例,于是我修改了下,还是老样子 大家帮我看看是什么问题,谢谢了 下面的就是从合泰网上下的范例,我稍微修改了下,基本是原封不动的/STC12C5204AD单片机控制 HT1621B驱动 LCD#include <STC12C52XXAD.h> #include <stdio.h> #include <intrins.h>#define BIAS 0X52/1/3#def
9、ine RC256K 0X30/#define WDTDIS1 0X0A/#define TIMERDIS 0X08/#define SYSEN 0X02/#define SYSDIS 0X00/#define LCDON 0X06/#define LCDOFF 0X04/#define TONEON 0X12/#define TONEOFF 0X10/#define CS P3_2#define WR P3_4 #define DATA P3_5偏压, 4背极系统时钟选择为片内RC振荡器 禁止 WD溢出标志输出 时基输出禁止 打开系统时钟 关闭系统时钟和偏压发生器 打开LCD偏压发生器 关闭
10、LCD偏压发生器 打开音频输出 关闭音频输出延时子函数/j=12延时约 4.3us#define uchar unsigned char #define uint unsigned int /* void delay(uchar i)while(i-)uchar j=0;while(j<8)j+;void SendBit_1621(uchar dat ,uchar cnt)uchar i;for(i =0; i <cnt; i +)if(dat&0x80)=0)DATA=0;else DATA=1;WR=0;delay(2);WR=1;dat=dat<<1;vo
11、id SendDataBit_1621(uchar dat,uchar cnt) uchar i;for(i =0; i <cnt; i +)if(dat&0x01)=0) DATA=0;else DATA=1;WR=0;delay(2);WR=1;dat=dat>>1;void SendCmd(uchar command)CS=0;_nop_();_nop_();SendBit_1621(0x80,4);SendBit_1621(command,8);CS=1;void Write_1621(uchar addr,uchar dat)CS=0;_nop_();_no
12、p_();SendBit_1621(0xa0,3);SendBit_1621(addr,6);SendDataBit_1621(dat,4);CS=1;void WriteAll_1621(uchar addr,uchar *p,uchar cnt) uchar i;CS=0;_nop_();_nop_();SendBit_1621(0xa0,3);SendBit_1621(addr,6); for(i =0; i <cnt; i +,p+) SendDataBit_1621(*p,8);CS=1;主函数 */* main()uchar a10;a0=0xFF;a1=0xFF;a2=0x
13、FF;a3=0xFF;a4=0xFF;a5=0xFF;a6=0xFF;a7=0xFF;a8=0xFF;a9=0xFF; a10=0xFF;a11=0xFF;a12=0xFF;a13=0xFF;a14=0xFF;a15=0xFF;SendCmd(BIAS);SendCmd(SYSEN);SendCmd(LCDON); / SendCmd(RC256K); WriteAll_1621(0,a,16); / SendCmd(LCDOFF);LCD驱动程序 适用于HT1621/= #define Lcd_Delay _nop_();_nop_();_nop_();_nop_();_nop_();_no
14、p_() void Lcd_Data(uchar Start,uchar cData)/将数据当中的字节与LCD上的进行同步/ Start -要开始同页面地址,每个页面为4个有效位,总其为32X4字节/ Length - 要同步的页面数量uchar i;LCD_CS=0;Lcd_Delay;Lcd_Delay;Lcd_Delay; /Send ID 101BLCD_CLK=0;Lcd_Delay;LCD_IO=1;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LCD_CLK=0;Lcd_Delay;LCD_IO=0;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LC
15、D_CLK=0;Lcd_Delay;LCD_IO=1;Lcd_Delay;LCD_CLK=1;Lcd_Delay; /Send Address 6bitStart=Start*2; for(i=0;i<6;i+) if(Start&0x20) LCD_IO=1; else LCD_IO=0; Lcd_Delay;LCD_CLK=0;Lcd_Delay;Start=Start<<1;LCD_CLK=1;Lcd_Delay;/Send data 8bit for(i=0;i<8;i+) if(cData&0x01) LCD_IO=1; else LCD_IO
16、=0; Lcd_Delay; LCD_CLK=0; Lcd_Delay; cData=cData>>1; LCD_CLK=1; Lcd_Delay;LCD_CS=1;Lcd_Delay;/= void Lcd_Command(uchar Command)/向指定的LCD当中写入一个命令/每个命令应以 100三个位为起始 , 命令长度为 9位,实际有效位为 8位, 因此在 最后补一个 0/ LcdSelect-LCD 的片选确定,取值为 0,1,2/ Command 要写入的 8 位命令uchar i;LCD_CS=0;Lcd_Delay;Lcd_Delay;Lcd_Delay;/S
17、end ID 100BLCD_CLK=0;Lcd_Delay;LCD_IO=1;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LCD_CLK=0;Lcd_Delay;LCD_IO=0;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LCD_CLK=0;Lcd_Delay;LCD_IO=0;Lcd_Delay;LCD_CLK=1;Lcd_Delay;for(i=0;i<8;i+)LCD_CLK=0;Lcd_Delay;if(Command&0x80) LCD_IO=1;else LCD_IO=0;Command=Command<<1;Lcd_D
18、elay;LCD_CLK=1;Lcd_Delay;/ 最后补一个 0LCD_CLK=0;Lcd_Delay;LCD_IO=0;Lcd_Delay;LCD_CLK=1;Lcd_Delay;LCD_CS=1;Lcd_Delay;/=void Lcd_Refresh(void) /重新对 LCD进行刷屏uchar i;for(i=0;i<LCD_BUFF_MAX;i+)Lcd_Data(i,lcd.buffi);/= void Lcd_Cls(void) / 清空 LCD显示区/功能:清空LCD显示区/返值:无/ 入口: cSelectlc LCD 的片选,取值为 0,1,2 uchar i;for(i=0;i<LCD_BUFF_MAX;i+)lcd.buffi=0;Lcd_Refresh();/=void
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度安保人员职业健康管理与劳动合同2篇
- 二零二五版二手房购房合同定金及家具家电安装服务协议书3篇
- 二零二五版企业研发项目定金及借款合同3篇
- 二零二五版水上娱乐设施安全生产管理合同3篇
- 二零二五年度茶园承包经营与茶叶市场调研合同3篇
- 展会现场广告投放与媒体合作合同(二零二五年度)2篇
- 二零二五版国际贸易保险合同主体欺诈识别与应对措施合同3篇
- 右岸景苑S5幢0、30号商铺2025年度租赁合同24篇
- 二零二五年度预制构件钢筋加工定制合同3篇
- 展会品牌推广合同(2篇)
- 2023年保安公司副总经理年终总结 保安公司分公司经理年终总结(5篇)
- 中国华能集团公司风力发电场运行导则(马晋辉20231.1.13)
- 中考语文非连续性文本阅读10篇专项练习及答案
- 2022-2023学年度六年级数学(上册)寒假作业【每日一练】
- 法人不承担责任协议书(3篇)
- 电工工具报价单
- 反歧视程序文件
- 油气藏类型、典型的相图特征和识别实例
- 流体静力学课件
- 顾客忠诚度论文
- 实验室安全检查自查表
评论
0/150
提交评论