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

📄 dis.c

📁 一个电子表程序
💻 C
字号:
					/*************** 812 Bus LCD Program *************/
					
					#include "intrins.h"
					#include "math.h"
					//#include "ascii.h"
					
					//--------CSA----A10------//
					//--------CSB----A11------//
					//--------R/S----A8-------//--1-data,0-command//
					//--------R/W----A9-------//--1-read,0-write//					
					//--------EN-----A15&R&W--//
					
					#define	lcd_on		0x3f
					#define lcd_off		0x3e
					#define	lcd_xrow	0xc0
					#define	lcd_page	0xb8
					#define	lcd_y		0x40	
										
					#define		left_command_add	0x40800	// left command write address//
					#define		left_data_add		0x40900	// left data write address//
					#define		left_zt_read_add	0x40a00	// left zhuangtai read address//
					#define		left_data_read_add	0x40b00	// left data read address//
					
					#define		right_command_add	0x40400	// right command write address//
					#define		right_data_add		0x40500	// right data write address//
					#define		right_zt_read_add	0x40600	// right zhuangtai read address//
					#define		right_data_read_add	0x40700	// right data read address//
					
					
								
					/*********write left command ************/					
					void left_command(char cmd)
					{
						unsigned char flag;
						flag=FVAR(char, left_zt_read_add);
						while((flag&0x80)==0x80)
						{
							flag=FVAR(unsigned char,left_zt_read_add);
						}
						FVAR(unsigned char,left_command_add)=cmd;
					}
					
					/***********write right command ********/
					void right_command(char cmd)
					{
						char flag;
						
						flag=FVAR(unsigned char,right_zt_read_add);
						while((flag&0x80)==0x80)
						{
							flag=FVAR(unsigned char,right_zt_read_add);
						}
						FVAR(unsigned char,right_command_add)=cmd;
					}
												 
 					/***************write left data********/
 					void left_data(char lcd_data)
 					{
 						char flag;
						
						flag=FVAR(unsigned char,left_zt_read_add);
						while((flag&0x80)==0x80)
						{
							flag=FVAR(unsigned char,left_zt_read_add);
						}
						FVAR(unsigned char,left_data_add)=lcd_data;
					}
					
					/***************write right data********/
 					void right_data(char lcd_data)
 					{
 						char flag;
						
						flag=FVAR(unsigned char,right_zt_read_add);
						while((flag&0x80)==0x80)
						{
							flag=FVAR(unsigned char,right_zt_read_add);
						}
						FVAR(unsigned char,right_data_add)=lcd_data;
					}
					
					/*********read left data*********/
					unsigned char left_read()
					{
						char flag,reddd;
						
						flag=FVAR(unsigned char,left_zt_read_add);
						while((flag&0x80)==0x80)
						{
							flag=FVAR(unsigned char,left_zt_read_add);
						}
						FVAR(unsigned char,left_data_add)=0xff;
						reddd=FVAR(unsigned char,left_data_read_add);
						
						return reddd;
					}
					
					/*********read right data*********/
					unsigned char right_read()
					{
						char flag,reddd;
						
						flag=FVAR(unsigned char,right_zt_read_add);
						while((flag&0x80)==0x80)
						{
							flag=FVAR(unsigned char,right_zt_read_add);
						}
						FVAR(unsigned char,right_data_add)=0xff;
						reddd=FVAR(unsigned char,right_data_read_add);
						
						return reddd;
					}
					
						//******************* clear left lcd ***************************//
					void lcd_left_clear()
					{
						char	i;
						int	j;
						left_command(lcd_xrow);
						for(i=0;i<=7;i++)
						{
							left_command(lcd_page|i);
							left_command(lcd_y);
							for(j=0;j<=63;j++)
							{
								left_data(0x00);
							}
						}
					}
					
				//********************** clear right lcd **********************//
					void lcd_right_clear()
					{
						char	i;
						int	j;
						right_command(lcd_xrow);
						for(i=0;i<=7;i++)
						{
							right_command(lcd_page|i);
							right_command(lcd_y);
							for(j=0;j<=63;j++)
							{
								right_data(0x00);
							}
						}
					}
					
					
					void clearlcd(void)
					{
						left_command(lcd_off);			
						right_command(lcd_off);
						lcd_left_clear();
						lcd_right_clear();
						left_command(lcd_on);
						right_command(lcd_on);
					}
					
					void lcdon(void)
					{
						left_command(lcd_on);
						right_command(lcd_on);
					}
					
					void lcdoff(void)
					{
						left_command(lcd_off);
						right_command(lcd_off);
					}
					
					void disc(unsigned char h,unsigned l,unsigned char *buffer)
					{
						unsigned i;
												
						left_command(lcd_xrow|0x00);
						right_command(lcd_xrow|0x00);
						
						if(h<4)
						{
							left_command(lcd_page|(l*2));
							left_command(lcd_y|(h*16));
							for(i=0;i<16;i++)
							{
								left_data(buffer[i]);
							}
						
						
							left_command(lcd_page|(l*2+1));
							left_command(lcd_y|(h*16));
							for(i=16;i<32;i++)
							{
								left_data(buffer[i]);
							}
						}
						else
						{
							right_command(lcd_page|l*2);
							right_command(lcd_y|((h-4)*16));
							for(i=0;i<16;i++)
							{
								right_data(buffer[i]);
							}
				
			
							right_command(lcd_page|(l*2+1));
							right_command(lcd_y|((h-4)*16));
							for(i=16;i<32;i++)
							{
								right_data(buffer[i]);
							}
						}
					}
					
					

⌨️ 快捷键说明

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