历史上的今天
返回首页

历史上的今天

今天是:2025年01月30日(星期四)

2018年01月30日 | MSP430控制6963c驱动液晶

2018-01-30 来源:eefocus

/******************************************************************
读液晶状态字到STA 
功能:用于往液晶写数据或命令之前判断忙闲 
*******************************************************************/ 
void read_sta(void)



   P4DIR = 0x00;          //P4数据输入 
   P3OUT =  P3_2_DATAIO; //4245(x1)数据传送方向选择为:由液晶到430 
   P3OUT =  P3_1_CD;     //命令方式 
   P3OUT &= ~P3_0_RD;     //read 
   STA = P4IN;            //读回状态 
   P3OUT = P3_0_RD;      //CANcel read 
   P4DIR = 0xff;          //P4口置为数据输出方式     
   P3OUT &= ~P3_2_DATAIO; //4245(x1)数据传送方向选择为:由430到液晶 
  

/***************************************************************************** 
判状态位S1,S0 函数(读写指令和读写数据状态) 
******************************************************************************/ 
void ST1( void ) 
    { 
      do 
        { 
        read_sta(); 
        } 
      while( (STA & 0x03) != 0x03 ); 
  
    } 
/********************************************************** 
判状态位S2函数(数据自动读状态) 
**********************************************************/ 
void ST2( void ) 
   { 
     do 
     { 
       read_sta(); 
     } 
    while( (STA & 0x04) != 0x04); 
   } 
/*************************************************************** 
-判状态位S3函数(数据自动写状态)- 
****************************************************************/ 
void ST3( void ) 
   { 
     do 
     { 
       read_sta(); 
     } 
     while( (STA & 0x08) != 0x08 ); 
   } 
/***************************************************************************** 
写入数据字节 
******************************************************************************/ 
void write_data(unsigned char Byte ) 

        ST1(); 
        P4OUT = Byte; 
        P3OUT &= ~P3_1_CD;       //数据方式 
        P2OUT &= ~P2_7_WR ;      // write 
        P2OUT =  P2_7_WR ;     

/***************************************************************************** 
自动写入数据字节 
******************************************************************************/ 
void autowrite_data(unsigned char Byte ) 

        P4OUT = Byte; 
        P3OUT &= ~P3_1_CD;       //数据方式 
        P2OUT &= ~P2_7_WR ;      // write 
        P2OUT =  P2_7_WR ;     

  
/***************************************************************************** 
写入命令字 
******************************************************************************/ 
void write_cmd(unsigned char cmd ) 

        ST1(); 
        P4OUT = cmd ; 
        P3OUT =  P3_1_CD  ;      //命令方式 
        P2OUT &= ~P2_7_WR ;       // write 
        P2OUT =  P2_7_WR ;     

/***************************************************************************** 
写只有一个参数的命令 
******************************************************************************/ 
void write_onepara(unsigned char dat1,unsigned char command ) 

  
        write_data( dat1 ); 
        write_cmd( command ); 
         

/***************************************************************************** 
写含有双参数的命令 
******************************************************************************/ 
void write_doublepara(unsigned char dat1,unsigned char dat2,unsigned char command ) 

  
        write_data( dat1 ); 
        write_data( dat2 ); 
        write_cmd( command ); 
         

/***************************************************************************** 
清显示缓冲的函数 
******************************************************************************/ 
void CLEAR_RAM( void ) 
    { 
    int i; 
    write_doublepara( 0x00,0x00,0x24 );       /* 设置显示RAM 首地址 */ 
   
    write_cmd( 0xb0 );                        /* 设置自动写方式 */ 
    for(i=0;i<8200;i++)                       /* 清8K存储器 */ 
       {          
         ST3();                               /* 判状态位S3 */ 
         write_data(0x00);                    /* 写入数据 */             
        } 
     write_cmd( 0xb2 );                       /* 设置自动写结束指令 */         
        
    } 
/***************************************************************************** 
对液晶屏的一些初始设置函数 
******************************************************************************/ 
void LCDIni( void ) 
    { 
       write_doublepara(0x00,0x00,0x40);       /*设文本显示区域首地址*/ 
       write_doublepara(0x28,0x00,0x41);       /*设文本显示区域宽度*/ 
       write_doublepara(0x03,0x00,0x22);    /* 设置CGRAM偏置地址 */ 
  
       write_doublepara(0x00,0x08,0x42);       /*设图形显示区域首地址*/ 
       write_doublepara(0x1e,0x00,0x43);       /*设图形显示区域宽度*/ 
//      write_cmd(0xa2);                        /*光标形状设置*/    
  //     write_doublepara(0x08,0x08,0x21);       /* 设置光标 位置*/  
       write_cmd(0x80);                        /*显示方式设置逻辑"或"合成, 内部字符发生器有效*/ 
       write_cmd(0x98);                        /*显示开关设置 关文本和开图形显示*/ 
       CLEAR_RAM(); 
    } 


推荐阅读

史海拾趣

Electric Imp Inc.公司的发展小趣事

在物联网设备管理平台的基础上,Electric Imp Inc.公司不断推动技术创新。公司研发团队经过数年的努力,成功研发出了一款基于边缘计算的物联网设备。这款设备具有更高的数据处理能力、更低的延迟和更好的安全性,能够满足更广泛的应用场景。这一技术突破使得公司在物联网领域的技术实力得到了显著提升。

晶群科技(Gem-micro)公司的发展小趣事

为了进一步提升品牌影响力和市场份额,Electric Imp Inc.公司开始实施国际化战略。公司先后在北美、欧洲、亚洲等地设立了研发中心和分支机构,以便更好地了解当地市场需求和技术趋势。同时,公司还积极参加国际展览、研讨会等活动,与全球同行交流经验、分享技术。这些努力使得公司的国际化水平不断提高。

EOZ S.A.S公司的发展小趣事

EOZ S.A.S公司自创立之初,就致力于电子技术的研发与创新。在智能手机市场饱和之际,公司敏锐地捕捉到可穿戴设备市场的潜力,投入大量资源进行智能手表的研发。通过不断优化算法和硬件设计,EOZ S.A.S成功推出了一款具有超长待机、高精度健康监测和丰富应用场景的智能手表,迅速在市场上获得认可,公司因此崭露头角。

Greenlee公司的发展小趣事

在电子行业的激烈竞争中,GREEGOO公司凭借其在半导体材料领域的持续创新,成功研发出了一种新型高性能芯片封装材料。这种材料不仅大幅提升了芯片的散热性能和稳定性,还显著降低了生产成本。这一技术突破迅速吸引了业界的关注,多家知名电子产品制造商纷纷与GREEGOO建立合作关系,推动了公司业务的快速增长。GREEGOO因此在电子材料市场上崭露头角,成为行业内的佼佼者。

Bridgelux公司的发展小趣事

Bridgelux在LED照明技术方面取得了重要突破。公司研发出了一种新型的LED芯片结构,提高了光效和稳定性,降低了成本。这一创新使得Bridgelux的产品在市场上更具竞争力,也为其赢得了众多客户的青睐。同时,公司还注重知识产权保护,积极申请专利,确保自身技术的领先地位。

EMC Technology RF Labs公司的发展小趣事

RF Labs非常重视产品质量和品质保证。他们建立了完善的质量管理体系,从原材料采购到生产、检测、包装等各个环节都进行严格的质量控制。同时,RF Labs还引进了先进的生产设备和技术,确保产品的质量和性能达到国际先进水平。这些举措使得RF Labs的产品在市场上享有很高的声誉和口碑。

问答坊 | AI 解惑

预热式沐浴水箱水位自控器

此电路结构简单,取材容易,性能可靠,操作方便。工作原理:假设水箱内没有水,需要进水预热,只要将K1合上(见下图),则绿色指示灯亮,电磁阀经J1-2常闭触点得电而开阀进水,待水箱内水升至平面S1时,BG1、BG2组成的复合管得正向偏压而驱动继电 ...…

查看全部问答>

fopen打开的文件,如何实现当文件达到一定大小后,重头进行覆盖写入

我的那个文件要求记录5000条记录,超过5000条时,重头开始写入,用新的记录覆盖掉旧的记录。fopen就那几种打开方式,我试了下,好像都不支持。如果以“a+“的方式打开,然后用seek去定位,然后再写入也不行,仍然会加到文件尾。各位有没有什么好的 ...…

查看全部问答>

usb驱动问题!!!dispatch_level在callusbdi下不可用!!急急急!!

callusbdi windows wdm设备驱动程序开发指南(chris cant) 在dispatch_level调用出现死等,但是在passive_level正常 书上也说只能在Passive_level调用,是什么原因呢,怎样才能在dispatch_level调用呢? 高手快来啊 NTSTATUS CallUSBDI(IN PDEV ...…

查看全部问答>

DOS下启用图形加速卡.

怎样在DOS下不用VGA,启用图形加速卡呢?…

查看全部问答>

【MSP430共享】晶化箱温度控制系统设计

设计了一种基于Ms P 4 3 0处理器的温控系统, 介绍了系统主要硬件, 重点介绍了温度控制系统及其算法的实现, 这里采用的是史密斯一 模糊自调整 P I D控制系统, 该系统通过对传统的史密斯预估器进行改良, 将该模糊自调整P I D控制器引入史密斯控 ...…

查看全部问答>

12864读函数问题

YM12864R读函数为什么读不出正确的数据,总是0xff,调了好久都没弄好,网上也有人有同样的问题,但是好像都没有解决,急求帮助uchar LcdRdata(void){ uchar getdata; RS=1; WRD=1; P0=0xff; E=0; E=1; delay(100); getdata=P0; E=0; return getdata ...…

查看全部问答>

易电源游戏看做事态度

我在早上9点半玩易电源拼图游戏,发现电容电感问题,明显是错误的,而且后来更正过来了,那么在之前得100分的朋友们,你们难道没有发现这个简单的错误吗?如果发现了,为什么还跟着错?难道就为了那100分?为了奖品机会? 作为技术人员,发现问题 ...…

查看全部问答>

瑞萨RL78开发工具_原厂的培训教程

瑞萨RL78开发工具_原厂的培训教程 …

查看全部问答>

基于安卓/苹果的物品防盗管家,用于对随身箱包和贵重物品进行管理

利用手机作为监控终端,既简便又易用,同时如果手机被人拿走的话,通讯断开,手机和开发模块都会报警。 1. 通过蓝牙与手机进行数据互联,若发送报警信息或是“心跳同步”时,通讯没有相应,则发送方进行报警 2. 检测光线有强烈变化时,进行报警 ...…

查看全部问答>

晒WEBENCH设计的过程+DC8-16V转5V/1A车载充电器的设计过程

本帖最后由 a736015 于 2014-5-29 17:14 编辑 一、设计要求:输入DC8-16V,输出5V/1A二、应用:车载手机平板电脑充电器三、设计过程根据论坛窗口或进入TI在线设计工具页面 点击后进入到登陆(注册)界面 注册TI账号后进入WEBENCH在线设计工具在 ...…

查看全部问答>