⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c5112864a.html

📁 C51例程代码
💻 HTML
📖 第 1 页 / 共 3 页
字号:
}<br>void LcdData1(char); /* Photo type of routine */<br>void LcdData1(char c)<br>{<br>&nbsp;&nbsp;&nbsp; PioCon = 0x0c|0x02|0x00;<br>&nbsp;&nbsp;&nbsp; /* Input Output<br>&nbsp;&nbsp;&nbsp; Port A = 0x00 0x01<br>&nbsp;&nbsp;&nbsp; Port B = 0x00 0x02<br>&nbsp;&nbsp;&nbsp; Port C = 0x00 0x0c<br>&nbsp;&nbsp;&nbsp; Counter = Disable<br>&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; LcdDataPort = c;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdRegPin;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdRWPin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdCS1Pin;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdCS2Pin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdEnablePin;<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdEnablePin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br>}<br>void LcdData2(char); /* Photo type of routine */<br>void LcdData2(char c)<br>{<br>&nbsp;&nbsp;&nbsp; PioCon = 0x0c|0x02|0x00;<br>&nbsp;&nbsp;&nbsp; /* Input Output<br>&nbsp;&nbsp;&nbsp; Port A = 0x00 0x01<br>&nbsp;&nbsp;&nbsp; Port B = 0x00 0x02<br>&nbsp;&nbsp;&nbsp; Port C = 0x00 0x0c<br>&nbsp;&nbsp;&nbsp; Counter = Disable<br>&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; LcdDataPort = c;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdRegPin;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdRWPin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdCS1Pin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdCS2Pin;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdEnablePin;<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdEnablePin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br>}<br>char LcdRead1(void); /* Photo type of routine */<br>char LcdRead1()<br>{ <br>&nbsp;&nbsp;&nbsp; data unsigned char c;<br>&nbsp;&nbsp;&nbsp; PioCon = 0x0c|0x00|0x00;<br>&nbsp;&nbsp;&nbsp; /* Input Output<br>&nbsp;&nbsp;&nbsp; Port A = 0x00 0x01<br>&nbsp;&nbsp;&nbsp; Port B = 0x00 0x02<br>&nbsp;&nbsp;&nbsp; Port C = 0x00 0x0c<br>&nbsp;&nbsp;&nbsp; Counter = Disable<br>&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdRegPin;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdRWPin;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdCS1Pin;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdCS2Pin^0xff);<br><br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdEnablePin;<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br><br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdEnablePin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br><br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdEnablePin;<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br><br>&nbsp;&nbsp;&nbsp; c= LcdDataPort;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdEnablePin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br><br>&nbsp;&nbsp;&nbsp; return (c);<br>}<br>char LcdRead2(void); /* Photo type of routine */<br>char LcdRead2()<br>{ <br>&nbsp;&nbsp;&nbsp; data unsigned char c;<br>&nbsp;&nbsp;&nbsp; PioCon = 0x0c|0x00|0x00;<br>&nbsp;&nbsp;&nbsp; /* Input Output<br>&nbsp;&nbsp;&nbsp; Port A = 0x00 0x01<br>&nbsp;&nbsp;&nbsp; Port B = 0x00 0x02<br>&nbsp;&nbsp;&nbsp; Port C = 0x00 0x0c<br>&nbsp;&nbsp;&nbsp; Counter = Disable<br>&nbsp;&nbsp;&nbsp; */<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdRegPin;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdRWPin;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdCS1Pin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdCS2Pin;<br><br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdEnablePin;<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br><br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdEnablePin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br><br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort | LcdEnablePin;<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br><br>&nbsp;&nbsp;&nbsp; c= LcdDataPort;<br>&nbsp;&nbsp;&nbsp; LcdCtrlPort = LcdCtrlPort &amp; (LcdEnablePin^0xff);<br>&nbsp;&nbsp;&nbsp; LcdDelay();<br><br>&nbsp;&nbsp;&nbsp; return (c);<br>}<br>void LcdInit(void); /* LCD初始化 */<br>void LcdInit()<br>{ <br>&nbsp;&nbsp;&nbsp; data char i,j;<br>&nbsp;&nbsp;&nbsp; LcdCmd(0x3f); /* Display on/off, 0x3f = on , 0x3e = off */<br>&nbsp;&nbsp;&nbsp; LcdCmd(0xc0); /* Scan Start (0-63), 0xc0 to 0xff */<br>&nbsp;&nbsp;&nbsp; for (i=0;i&lt;8;i++) /* Fill the screen to blank */<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdCmd(0xb8|i); /* X Page (0-7), 0xb8 to 0xbf */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (j=0;j&lt;64;j++)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdCmd(0x40|j); /* Y Line (0-63), 0x40 to 0x7f */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData(0x00); /* Access to two LCD area */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; lcd_row=1;<br>&nbsp;&nbsp;&nbsp; lcd_column=1;<br>&nbsp;&nbsp;&nbsp; lcd_color=1;<br>}<br>void LcdClear(void); /* LCD清屏*/<br>void LcdClear()<br>{ <br>&nbsp;&nbsp;&nbsp; LcdInit();<br>}<br>void LcdGoto(char, char); /* 定位光标坐标 */<br>void LcdGoto(char row, char column)<br>{ <br>&nbsp;&nbsp;&nbsp; lcd_row=row;<br>&nbsp;&nbsp;&nbsp; lcd_column=column;<br>}<br><br>void LcdHgoto(char,char);/*定位汉字显示坐标<br>void LcdHgoto(char row, char column)<br>{<br>&nbsp;&nbsp;&nbsp; lcd_hrow=row;<br>&nbsp;&nbsp;&nbsp; lcd_hcolumn=column;<br>&nbsp;&nbsp;&nbsp; lcd_ascii=column;<br>}<br>void LcdChar(char); /* Photo type of routine */<br>void LcdChar(char c)<br>{ <br>&nbsp;&nbsp;&nbsp; data unsigned char loop;<br>&nbsp;&nbsp;&nbsp; lcd_x=(lcd_column-1)*6;<br>&nbsp;&nbsp;&nbsp; LcdCmd(0xb8|((lcd_row-1)&amp;0x07)); /* X Page (0-7), 0xb8 to 0xbf */<br>&nbsp;&nbsp;&nbsp; for (loop=0;loop&lt;6;loop++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdCmd(0x40|((lcd_x+loop)&amp;0x3f)); /* Y Line (0-63), 0x40 to 0x7f */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((lcd_x+loop)&gt;63)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lcd_color)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData2(Char_Bit[c-0x20][loop]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData2(Char_Bit[c-0x20][loop]^0xff);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lcd_color)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData1(Char_Bit[c-0x20][loop]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData1(Char_Bit[c-0x20][loop]^0xff);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; lcd_column++;<br>&nbsp;&nbsp;&nbsp; if (lcd_column&gt;21)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_column=1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_row++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lcd_row&gt;8)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_column=1;<br>}<br>}<br><br>void LcdHchar(char); /* 显示汉字字符 */<br>void LcdHChar(char c)<br>{ <br>&nbsp;&nbsp;&nbsp; data unsigned char loop1,loop2;<br>&nbsp;&nbsp;&nbsp; loop2=0;<br>&nbsp;&nbsp;&nbsp; lcd_x=(lcd_hcolumn-1)*16;<br>&nbsp;&nbsp;&nbsp; LcdCmd(0xb8|(((lcd_hrow-1)*2)&amp;0x07)); /* X Page (0-7), 0xb8 to 0xbf */<br>&nbsp;&nbsp;&nbsp; for (loop1=0;loop1&lt;16;loop1++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdCmd(0x40|((lcd_x+loop1)&amp;0x3f)); /* Y Line (0-63), 0x40 to 0x7f */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((lcd_x+loop1)&gt;63)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lcd_color)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData2(Hchar_Bit[c][loop1]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData2(Hchar_Bit[c][loop1]^0xff);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lcd_color)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData1(Hchar_Bit[c][loop1]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData1(Hchar_Bit[c][loop1]^0xff);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; LcdCmd(0xb8|(((lcd_hrow-1)*2+1)&amp;0x07)); /* X Page (0-7), 0xb8 to 0xbf */<br>&nbsp;&nbsp;&nbsp; for (;loop1&lt;32;loop1++)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdCmd(0x40|((lcd_x+loop2)&amp;0x3f)); /* Y Line (0-63), 0x40 to 0x7f */<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((lcd_x+loop2)&gt;63)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lcd_color)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData2(Hchar_Bit[c][loop1]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData2(Hchar_Bit[c][loop1]^0xff);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lcd_color)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData1(Hchar_Bit[c][loop1]);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdData1(Hchar_Bit[c][loop1]^0xff);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; loop2++;<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; lcd_hcolumn++;<br>&nbsp;&nbsp;&nbsp; if (lcd_hcolumn&gt;8)<br>&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_column=1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lcd_hrow++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (lcd_hrow&gt;4)lcd_hcolumn=1;<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br>void LcdStr(char *); /* 显示ASCII码字符串*/<br>void LcdStr(char *c)<br>{ <br>&nbsp;&nbsp;&nbsp; data unsigned char d=0;<br>&nbsp;&nbsp;&nbsp; while (c[d]!=0)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WDT^=1;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LcdChar(c[d++]);<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br><br>void Lcd_Ascii(char ); /* 显示ASCII码字符*/<br>void Lcd_Ascii(char c)<br>{ <br>&nbsp;&nbsp;&nbsp; unsigned char loop;<br>&nbsp;&nbsp;&nbsp; unsigned char tempdata;<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -