您好,欢迎访问三七文档
/******************************************************************************版权信息:深圳天微电子有限公司*文件名:TM1621-V1.0*当前版本:V1.0*MCU型号:STC12C5608AD*开发环境:KeiluVision4*晶震频率:11.0592MHZ*完成日期:2013-08-07*程序功能:1.LCD驱动:LCD屏显示0`F*免责声明:1.此程序为TM1621驱动LCD演示程序,仅作参考之用。2.如有直接使用本例程程序造成经济损失的,本公司不承担任何责任********************************************************************************/#includereg52.h//MCU头文件#includeintrins.h//包含nop指令头文件#defineucharunsignedchar//数据类型宏定义#defineuintunsignedint//数据类型宏定义#definenop_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//宏定义/******************TM1621模块命令定义*********************/#defineSYSDIS0x00//关系统振荡器和LCD偏压发生器#defineSYSEN0x02//打开系统振荡器#defineLCDOFF0x04//关LCD偏压#defineLCDON0x06//开LCD偏压#defineTONEON0x12//打开声音输出#defineTONEOFF0x10//关闭声音输出#defineXTAL0x28//外部接晶振#defineRC0x30//内部RC振荡#defineBIAS0x52//1/3偏压4公共口#defineWDTDIS0x0a//禁止看门狗#defineWDTEN0x0e//开启看门狗/********************定义控制端口**********************/sbitCS=P2^1;sbitREAD=P2^7;sbitWRITE=P2^0;sbitDATA=P1^7;/********************定义数据*************************/ucharcodeSmg[16]={0xeb,0x60,0xc7,0xE5,0x6C,0xAD,0xaf,0xE0,0xef,0xed,0xee,0x2f,0x8b,0x67,0x8f,0x8e};//0~F字型码ucharcodeTab0[16]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//清屏/********************延时函数*************************/voiddelay_nms(uintn){uinti;while(n--)for(i=0;i500;i++);}/********************从高位写入数据*************************/voidWrite_Data_H(ucharData,ucharCnt)//Data的高cnt位写入TM1621,高位在前{uchari;for(i=0;iCnt;i++){WRITE=0;if(Data&0x80)//从最高位发送DATA=1;elseDATA=0;nop;nop;WRITE=1;Data=1;}WRITE=0;DATA=0;}/********************从低位写入数据*************************/voidWrite_Data_L(ucharData,ucharCnt)//Data的低cnt位写入TM1621,低位在前{unsignedchari;for(i=0;iCnt;i++){WRITE=0;if(Data&0x01)//从低位发送DATA=1;elseDATA=0;nop;nop;WRITE=1;Data=1;}WRITE=0;DATA=0;}/********************写入控制命令*************************/voidWriteCmd(ucharCmd){CS=0;nop;Write_Data_H(0x80,4);//写入命令标志100Write_Data_H(Cmd,8);//写入命令数据CS=1;nop;}/*********指定地址写入数据,实际写入后4位************/voidWriteOneData(ucharAddr,ucharData){CS=0;Write_Data_H(0xa0,3);//写入数据标志101Write_Data_H(Addr2,6);//写入地址数据Write_Data_L(Data,4);//写入数据CS=1;nop;}/*********连续写入方式,每次数据为8位,写入数据************/voidWriteAllData(ucharAddr,uchar*p,ucharcnt){uchari;CS=0;Write_Data_H(0xa0,3);//写入数据标志101Write_Data_H(Addr2,6);//写入地址数据for(i=0;icnt;i++)//写入数据{Write_Data_L(*p,8);p++;}CS=1;nop;}/*******************TM1621初始化**********************/voidTM1621_init(){CS=1;WRITE=1;DATA=1;nop;delay_nms(1);WriteCmd(BIAS);//1/3偏压4公共口WriteCmd(RC);//内部RC振荡WriteCmd(SYSDIS);//关系统振荡器和LCD偏压发生器WriteCmd(WDTDIS);//禁止看门狗WriteCmd(SYSEN);//打开系统振荡器WriteCmd(LCDON);//开LCD偏压}voidmain(){TM1621_init();//开机初始化delay_nms(1);WriteAllData(0,Tab0,16);//LCD不显示while(1){WriteAllData(0,Smg,16);//LCD显示0~Fdelay_nms(200);WriteAllData(0,Tab0,16);//LCD不显示delay_nms(200);}}
本文标题:tm1621
链接地址:https://www.777doc.com/doc-6645084 .html