#include"sfr_r82b.h"<br />#define uchar unsigned char<br />#define uint unsigned int<br />#define Data_HT1622 p1_addr.bit.b0<br />#define WR_HT1622 p0_addr.bit.b0<br />#define CS_HT1622 p0_addr.bit.b1<br />#define beiguang1622 p6_addr.bit.b0<br />//HT1622初始化 <br /><br />void Delay_us(uchar a)<br />{<br /> uchar z;<br /> for(z=a;z>0;z--);<br /> }<br /><br />//HT1622写入脉冲 <br />void LCD_CLK(void) <br />{ <br /> Delay_us(10); <br /> WR_HT1622 = 0; <br /> Delay_us(10); <br /> WR_HT1622 = 1; <br /> Delay_us(10); <br />} <br />//向HT1622写命令 <br />void LCD_WRCMD(uint dat) <br />{ <br /> uchar i; <br /> CS_HT1622 = 0; <br /> Delay_us(3); <br /> for (i=0;i<12;i++) <br /> { <br /> if (dat&0x8000==0x800) <br /> { <br /> Data_HT1622 = 1; <br /> } <br /> else <br /> { <br /> Data_HT1622 = 0; <br /> } <br /><br /> dat <<= 1; <br /> LCD_CLK(); <br /> } <br /> Delay_us(3); <br /> CS_HT1622 = 1; <br />} <br />//向HT1622写数据 <br />void LCD_WRDATA(uint date) <br />{ <br /> uchar j;<br /> CS_HT1622 = 0; <br /> Delay_us(3); <br /> for (j=0;j<13;j++) <br /> { <br /> if (date&0x8000==0x800) <br /> { <br /> Data_HT1622 = 1; <br /> } <br /> else <br /> { <br /> Data_HT1622 = 0; <br /> } <br /><br /> date <<= 1; <br /> LCD_CLK(); <br /> } <br /> Delay_us(3); <br /> CS_HT1622 = 1;<br /> <br />} <br />//初始化<br />void LCD_Init(void) <br />{ <br /> pd6_addr.bit.b0=1;<br /> pd1_addr.bit.b7=1;<br /> pd0_addr.bit.b0=1;<br /> pd0_addr.bit.b1=1;<br /> pd1_addr.bit.b0=1; <br /> LCD_WRCMD(0x8000); <br /> LCD_WRCMD(0x8020);<br /> LCD_WRCMD(0x8300); <br /> LCD_WRCMD(0x8040); <br /> LCD_WRCMD(0x8060);<br /> LCD_WRCMD(0x0000); <br />} <br />void main()<br />{<br /> LCD_Init();<br /> beiguang1622=1;<br /> if(p1_addr.bit.b7==1)<br /> {<br /> Delay_us(3);<br /> if(p1_addr.bit.b7==1)<br /> {<br /> LCD_WRDATA(0xBCF8); <br /> }<br /> }<br /> else<br /> {<br /> LCD_WRDATA(0xBC80);<br /> }<br /> <br /> <br />}<br /> |
|