ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:18.23KB ,
资源ID:7997926      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7997926.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(HT1621B通用程序集锦.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

HT1621B通用程序集锦.docx

1、HT1621B通用程序集锦/*AT89C51单片机控制HT1621B驱动LCD* (全显示程序) */#include #include #define BIAS 0X50 /1/2偏压,4背极/#define RC256 0X30 /系统时钟选择为片内RC振荡器#define RC256 0X38#define WDTDIS1 0X0A /禁止WDT溢出标志输出#define TIMERDIS 0X08 /时基输出禁能#define SYSEN 0X02 /打开系统时钟#define LCDON 0X06 /打开偏压发生器#define SYSDIS 0X00 /关闭系统时钟和偏压发生器#d

2、efine _NOP() _nop_()sbit LED=P20;sbit CS=P27;sbit WRD=P26;sbit DATA=P25;#define uchar unsigned char#define uint unsigned intvoid SENDBYTE (uchar dat); void SENDBIT (uchar dat,uchar bitcnt); /*延时子函数*/void delay1s() /延时1Suchar i;uint j;for(i=0;i10;i+) for(j=0;j1300;j+);/*HT1621B初始化*/void START_HT1621(

3、) /初始化HT1621CS=1;WRD=1;DATA=1;/delay();_NOP();CS=0;CS=0;WRD=0;WRD=0;/*发送命令子函数A*/void SENDCOMA(uchar ) /发送命令A,ID=100+0START_HT1621();SENDBIT(0X80,4);SENDBYTE();/*发送命令子函数B*/void SENDCOMB(uchar adr) /发送命令B,发送显示数据START_HT1621(); /HT1621初始化SENDBIT(0XA0,4); /发送写数据ID:101+6位LCD之RAM地址第1位SENDBIT(adr,5); /然后发送

4、地址后5位/*发送命令子函数C*void SENDCOMC(uchar ) /发送命令C,ID=100+1START_HT1621();SENDBIT(0X90,4);SENDBYTE();/*按位发送数据子函数*/void SENDBIT (uchar dat,uchar bitcnt) /按位发送数据uchar i;for(i=0;ibitcnt;i+) if(dat&0x80)=0X00) /从最高位发送 DATA=0; else DATA=1; /delay(); _NOP(); WRD=1; /在WRD的上升沿,数据写入HT1621B /delay(); _NOP(); WRD=0;

5、 dat=dat1; /*发送字节数据子函数*/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;i2;i+) SENDBYTE(dat); /从SEG0开始显示数据 /*HT1621B初始化设置*/void SETUP_HT1621() /HT1621偏压、背极、工作方式设置SENDCOMA(BIAS); S

6、ENDCOMA(RC256);SENDCOMA(SYSEN);delay1s();SENDCOMA(LCDON);SENDCOMA(WDTDIS1);SENDCOMA(TIMERDIS); /*主函数*/main() /主函数 LED=1; SETUP_HT1621(); while(1) display(0XFF); /全显示 各位大牛下午好,我用STC12C5204单片机控制1621驱动液晶程序调了几天都没进展,显示的不知道什么乱七八糟的东西,好像命令根本写不进去,COM0和com1是个1v不到的电平,com3为3点几V的电平,com4有时有波形刷我自己写的程序就是这个样子,SEGMENT

7、一部分有波形,其余就是一个电平打电话咨询合泰技术,让我搞他们的范例,于是我修改了下,还是老样子大家帮我看看是什么问题,谢谢了下面的就是从合泰网上下的范例,我稍微修改了下,基本是原封不动的/STC12C5204AD单片机控制HT1621B驱动LCD#include #include #include #define BIAS 0X52 /1/3偏压,4背极#define RC256K 0X30 /系统时钟选择为片内RC振荡器#define WDTDIS1 0X0A /禁止WDT溢出标志输出#define TIMERDIS 0X08 /时基输出禁止#define SYSEN 0X02 /打开系统时

8、钟#define SYSDIS 0X00 /关闭系统时钟和偏压发生器#define LCDON 0X06 /打开LCD偏压发生器#define LCDOFF 0X04 /关闭LCD偏压发生器#define TONEON0X12 /打开音频输出#define TONEOFF 0X10 /关闭音频输出#define CS P3_2#define WR P3_4#define DATA P3_5#define uchar unsigned char#define uint unsigned int/*延时子函数*/void delay(uchar i) /j=12延时约4.3uswhile(i-)

9、uchar j=0; while(j8) j+; void SendBit_1621(uchar dat ,uchart)uchar i;for(i =0; i cnt; i +)if(dat&0x80)=0) DATA=0;else DATA=1;WR=0;delay(2);WR=1; dat=dat1;void SendDataBit_1621(uchar dat,uchart) uchar i;for(i =0; i 1;void SendCmd(uchar command)CS=0;_nop_();_nop_();SendBit_1621(0x80,4); SendBit_1621(c

10、ommand,8);CS=1; void Write_1621(uchar addr,uchar dat)CS=0;_nop_();_nop_();SendBit_1621(0xa0,3);SendBit_1621(addr,6); SendDataBit_1621(dat,4);CS=1;void WriteAll_1621(uchar addr,uchar *p,uchart)uchar i;CS=0;_nop_();_nop_();SendBit_1621(0xa0,3); SendBit_1621(addr,6); for(i =0; i cnt; i +,p+) SendDataBi

11、t_1621(*p,8);CS=1;/*主函数*/main() uchar a10;a0=0xFF;a1=0xFF;a2=0xFF;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/

12、=#define Lcd_Delay _nop_();_nop_();_nop_();_nop_();_nop_();_nop_()voidLcd_Data(uchar Start,uchar cData)/将数据当中的字节与LCD上的进行同步/ Start -要开始同页面地址,每个页面为4个有效位,总其为32X4字节/ Length -要同步的页面数量 uchar i; LCD_CS=0; Lcd_Delay; Lcd_Delay; Lcd_Delay; /Send ID 101B LCD_CLK=0; Lcd_Delay; LCD_IO=1; Lcd_Delay; LCD_CLK=1; L

13、cd_Delay; LCD_CLK=0; Lcd_Delay; LCD_IO=0; Lcd_Delay; LCD_CLK=1; Lcd_Delay; LCD_CLK=0; Lcd_Delay; LCD_IO=1; Lcd_Delay; LCD_CLK=1; Lcd_Delay; /Send Address 6bit Start=Start*2; for(i=0;i6;i+) if(Start&0x20) LCD_IO=1; else LCD_IO=0; Lcd_Delay; LCD_CLK=0; Lcd_Delay; Start=Start1; LCD_CLK=1; Lcd_Delay; /S

14、end data 8bit for(i=0;i1; LCD_CLK=1; Lcd_Delay; LCD_CS=1; Lcd_Delay;/=voidLcd_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; /Send ID 100B LCD_CLK=0; Lcd_Delay; LCD_

15、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;i8;i+) LCD_CLK=0; Lcd_Delay; if(Command&0x80) LCD_IO=1; else LCD_IO=0; Command=Command1; Lcd_Delay; LCD_CLK=1; Lcd_Delay; /

16、最后补一个0 LCD_CLK=0; Lcd_Delay; LCD_IO=0; Lcd_Delay; LCD_CLK=1; Lcd_Delay; LCD_CS=1; Lcd_Delay;/=voidLcd_Refresh(void) /重新对LCD进行刷屏 uchar i; for(i=0;iLCD_BUFF_MAX;i+) Lcd_Data(i,lcd.buffi);/=voidLcd_Cls(void) /清空LCD显示区/功能: 清空LCD显示区/返值: 无/入口: cSelectIc LCD的片选,取值为0,1,2 uchar i; for(i=0;iLCD_BUFF_MAX;i+) l

17、cd.buffi=0; Lcd_Refresh();/=voidLcd_Init(void)/初始化LCD,二个屏都进行处理,同时进行清屏 LCD_CLK=1; Lcd_Delay; LCD_IO=1; Lcd_Delay; Lcd_Command(0x00); /控制器掉电(控制字) Lcd_Command(0x02); /控制器液晶关闭(控制字) Lcd_Command(0x18); /初始化LCD控制器 Lcd_Command(0x01); /控制器上电(控制字) Lcd_Command(0x03); /控制器液晶显示(控制字) Lcd_Command(0x29); /控制器液晶模式1/3BAIS 1/4DUTY(控制字) Lcd_Cls();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1