HT1621驱动LCD问题

[复制链接]
 楼主| lby2037 发表于 2008-7-17 15:40 | 显示全部楼层 |阅读模式
我用AVR单片机控制HT1621驱动LCD,程序烧写后LCD只能全屏都显示,不能够通过更改显存数组中的值来控制LCD中某一段的显示的内容,也不能清屏,请给位帮我看看这个程序是否有问题,谢谢!<br /><br /><br /><br /><br />#include&nbsp;&ltiom48v.h&gt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//AVR头文件<br /><br />typedef&nbsp;unsigned&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint8;<br />typedef&nbsp;unsigned&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint16;<br />typedef&nbsp;unsigned&nbsp;long&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint32;<br />typedef&nbsp;signed&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sint8;<br />typedef&nbsp;signed&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sint16;&nbsp;<br />typedef&nbsp;signed&nbsp;long&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sint32;&nbsp;<br /><br /><br />//Lcd显示定义&nbsp;<br /><br />//HT1621的WR引脚对应AVR的PORT口的PIN位置,在具体应用中要修改X<br />#define&nbsp;LCD_wr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />//HT1621的DATA引脚对应AVR的PORT口的PIN位置,在具体应用中要修改X&nbsp;<br />#define&nbsp;LCD_data&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />//HT1621的CS引脚对应AVR的PORT口PIN的位置,在具体应用中要修改X&nbsp;&nbsp;<br />#define&nbsp;LCD_cs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />//HT1621的WR引脚对应AVR的PORT口,&nbsp;在具体应用中要修改X&nbsp;<br />#define&nbsp;LCDWRPORT&nbsp;&nbsp;&nbsp;&nbsp;PORTC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />//HT1621的DATA引脚对应于AVR的PORT口,在具体应用中要修改X<br />#define&nbsp;LCDDATAPORT&nbsp;&nbsp;PORTC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;//HT1621的CS引脚对应于AVR的PORT口,在具体应用中要修改X<br />#define&nbsp;LCDCSPORT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />&nbsp;//定义LCD显示缓冲区的空间<br />#define&nbsp;BuffSize&nbsp;32&nbsp;<br /><br />#define&nbsp;SYSEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x01<br />#define&nbsp;LCDOFF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x02<br />#define&nbsp;LCDON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x03<br />#define&nbsp;BAIS1_2&nbsp;&nbsp;&nbsp;&nbsp;0X28<br />#define&nbsp;BAIS1_3&nbsp;&nbsp;&nbsp;&nbsp;0X29<br />#define&nbsp;RC256K&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x18<br />#define&nbsp;TONEON&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x09<br />#define&nbsp;TONEOFF&nbsp;&nbsp;&nbsp;&nbsp;0x08<br />#define&nbsp;TONE4K&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x40<br />#define&nbsp;TONE2K&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0x60&nbsp;<br /><br />#define&nbsp;NOP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#asm(&quot;nop&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><br />//将DATA的高X位写入HT1621<br />&nbsp;void&nbsp;SendHBit1621(uint8&nbsp;data,uint8&nbsp;x);&nbsp;<br /><br />//将DATA的低X位写入HT1621<br />&nbsp;void&nbsp;SendLBit1621(uint8&nbsp;data,uint8&nbsp;x);&nbsp;<br /><br />//写入命令<br />&nbsp;void&nbsp;PutLcdCommand(uint8&nbsp;Command);&nbsp;<br /><br />//写入1个地址<br />&nbsp;void&nbsp;PutLcdOnedata(uint8&nbsp;ADD,uint8&nbsp;DATA);&nbsp;<br /><br />//显示LCD缓冲区内容&nbsp;从start~~end&ltBuffSize<br />&nbsp;void&nbsp;PutLcdAllData(uint8&nbsp;start,uint8&nbsp;end);&nbsp;<br /><br />//对LCD缓冲区写相同数<br />&nbsp;void&nbsp;PutLcdClear(uint8&nbsp;start,uint8&nbsp;end,uint8&nbsp;x);&nbsp;<br /><br />//LCD初始化&nbsp;&nbsp;<br />&nbsp;void&nbsp;LCDInit(void);&nbsp;&nbsp;<br /><br />//LCD缓冲区<br />//&nbsp;uint8&nbsp;LcdBuff[BuffSize];&nbsp;<br /><br />uint8&nbsp;LcdBuff[BuffSize]={0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0,0,0,0,0,0,0,0,0,0,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,0,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF};&nbsp;&nbsp;<br />&nbsp;<br />&nbsp;<br />//------------------------------------------------------------------------------&nbsp;<br />//DATA的高X位写入HT1621<br />void&nbsp;SendHBit1621(uint8&nbsp;data,uint8&nbsp;x)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&ltx;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//LCDWRPORT&=(0&lt&ltLCD_wr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCDWRPORT&=~(1&lt&ltLCD_wr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((data&0x80)==0){LCDDATAPORT&=~(1&lt&ltLCD_data);}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{LCDDATAPORT|=(1&lt&ltLCD_data);}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCDWRPORT|=(1&lt&ltLCD_wr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&lt&lt=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />//------------------------------------------------------------------------------<br />//将DATA的低X位写入HT1621<br />void&nbsp;SendLBit1621(uint8&nbsp;data,uint8&nbsp;x)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=0;i&ltx;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCDWRPORT&=~(1&lt&ltLCD_wr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((data&0x01)==0){LCDDATAPORT&=~(1&lt&ltLCD_data);}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{LCDDATAPORT|=(1&lt&ltLCD_data);}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCDWRPORT|=(1&lt&ltLCD_wr);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&gt&gt=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />//------------------------------------------------------------------------------<br />//写入命令<br />void&nbsp;PutLcdCommand(uint8&nbsp;Command)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;LCDCSPORT&=~(1&lt&ltLCD_cs);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//LCD数据命令有效&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;SendHBit1621(0x80,3);&nbsp;&nbsp;&nbsp;//写入标志码&quot;100&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;SendHBit1621(Command,9);//写入9位数据,前8位为Command命令<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//后一位任意&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;LCDCSPORT|=(1&lt&ltLCD_cs);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//LCD数据命令无效<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;}&nbsp;<br />//------------------------------------------------------------------------------<br />//写入1个地址<br />void&nbsp;PutLcdOnedata(uint8&nbsp;ADD,uint8&nbsp;DATA)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;LCDCSPORT&=~(1&lt&ltLCD_cs);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//LCD数据命令有效&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;SendHBit1621(0xa0,3);&nbsp;&nbsp;&nbsp;//写入标志码&quot;101&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;SendHBit1621(ADD&lt&lt2,6);&nbsp;//写入6位地址<br />&nbsp;&nbsp;&nbsp;&nbsp;SendLBit1621(DATA,4);&nbsp;&nbsp;&nbsp;//写入4位数据&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;LCDCSPORT|=(1&lt&ltLCD_cs);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//LCD数据命令无效<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;}&nbsp;<br />//------------------------------------------------------------------------------<br />//显示LCD缓冲区内容&nbsp;Disp_LcdBuff[starts]~Disp_LcdBuff[end]<br />void&nbsp;PutLcdAllData(uint8&nbsp;start,uint8&nbsp;end)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCDCSPORT&=~(1&lt&ltLCD_cs);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//LCD数据命令有效<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendHBit1621(0xa0,3);&nbsp;&nbsp;&nbsp;//写入标志码&quot;101&quot;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendHBit1621(0x00,6);&nbsp;&nbsp;&nbsp;//写入6位起始地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=start;i&lt=end;i++){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendLBit1621(LcdBuff,4);}//写入4位数据<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCDCSPORT|=(1&lt&ltLCD_cs);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//LCD数据命令无效<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP;//<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />//------------------------------------------------------------------------------<br />//对LCD缓冲区写相同数<br />void&nbsp;PutLcdClear(uint8&nbsp;start,uint8&nbsp;end,uint8&nbsp;x)<br />&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint8&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(i=start;i&lt=end;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{LcdBuff=x;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />//------------------------------------------------------------------------------<br />//LCD初始化&nbsp;&nbsp;<br />void&nbsp;LCDInit(void)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;PutLcdCommand(RC256K);<br />&nbsp;PutLcdCommand(SYSEN);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//打开系统振荡器<br />&nbsp;PutLcdCommand(BAIS1_3);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置偏压和占空比,BAIS1_3为1/3偏压4个公共口<br />&nbsp;PutLcdCommand(TONE4K);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;PutLcdCommand(LCDON);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//打开偏压发生器&nbsp;LCDON<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br /><br />//------------------------------------------------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;//端口初始化<br />void&nbsp;port_init(void)<br />{<br />PORTC&nbsp;=&nbsp;(1&lt&ltPC0)|(1&lt&ltPC1)|(1&lt&ltPC2)|(1&lt&ltPC3)|(1&lt&ltPC4)|(1&lt&ltPC5)|(1&lt&ltPC6);<br />&nbsp;&nbsp;&nbsp;&nbsp;DDRC&nbsp;&nbsp;=&nbsp;(1&lt&ltPC0)|(1&lt&ltPC1)|(1&lt&ltPC2)|(1&lt&ltPC3)|(1&lt&ltPC4)|(1&lt&ltPC5)|(0&lt&ltPC6);<br />}&nbsp;&nbsp;&nbsp;<br />//------------------------------------------------------------------------------<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />void&nbsp;main(void)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//AVR_CPU初始化函数<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port_init();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LCDInit();//HT1621初始化&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//缓冲器赋值函数<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PutLcdAllData(0,BuffSize);//显示LCD缓冲器内容<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

9

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部