用1602实现电子表编程思路及仿真.docxVIP

  • 3
  • 0
  • 约2.95千字
  • 约 6页
  • 2022-06-26 发布于上海
  • 举报
{ { 本设计是对中断,1602 液晶的使用介绍,通过中断调节分钟和时钟。 1602 显示效果如下: 1602 显示效果图 1602 底层驱动程序如下: #ifndef LCD_CHAR_1602_2005_4_9 #define LCD_CHAR_1602_2005_4_9 #include intrins.h sbit LcdRs sbit LcdRw sbit LcdEn = P2^2; = P2^0; = P2^1; unsigned char LCD_Wait(void) { LcdRs=0; LcdRw=1; LcdEn=1; LcdEn=0; return P0; _nop_(); _nop_(); } #define LCD_COMMAND 0 // Command #define LCD_DATA 1 // Data #define LCD_CLEAR_SCREEN 0x01 // 清屏 #define LCD_HOMING 0x02 // 光标返回原点 void LCD_Write(bit style, unsigned char input) LcdEn=0; LcdRs=style; LcdRw=0; P0=input; LcdEn=1; LcdEn=0; LCD_Wait(); }  _nop_(); _nop_();//注意顺序 _nop_();//注意顺序 _nop_(); #define LCD_SHOW #define LCD_HIDE 0x04 0x00 //显示关 #define LCD_CURSOR #define LCD_NO_CURSOR #define LCD_FLASH 0x02//显示光标 0x00 //无光标 0x01 //光标闪动 #define LCD_NO_FLASH 0x00 //光标不闪动 void LCD_SetDisplay(unsigned char DisplayMode) { LCD_Write(LCD_COMMAND, 0x08|DisplayMode); } #define LCD_AC_UP 0x02 #define LCD_AC_DOWN 0x00 #define LCD_MOVE 0x01 #define LCD_NO_MOVE 0x00 //default void LCD_SetInput(unsigned char InputMode) LCD_Write(LCD_COMMAND, 0x04|InputMode); } void LCD_Initial() { LcdEn=0; LCD_Write(LCD_COMMAND,0x38); LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); } void GotoXY(unsigned char x, unsigned char y) { if(y==0) if(y==1) }  LCD_Write(LCD_COMMAND,0x80|x); LCD_Write(LCD_COMMAND,0x80|(x-0x40)); void Print(unsigned char *str) { while(*str!=\0) { LCD_Write(LCD_DATA,*str); str++; } } void LCD_LoadChar(unsigned char user[8], unsigned char place) { unsigned char i; LCD_Write(LCD_COMMAND,0x40|(place*8)); for(i=0; i8; i++) LCD_Write(LCD_DATA,user[i]); } 驱动程序包括最基本的通信程序以及常规的一些设置,这里不再详细说明。主程序如下: #include reg52.h #define uchar unsigned char #include 110300.h unsigned char TempBuffer[16]; unsigned int Count= 0,fen=22,shi=17; void IntToStr(unsigned int t, unsigned char fen,unsigned char shi,unsigned char *str, unsigned char n) { unsigned char a[8]; char i, j; a[0]=shi/10; a

文档评论(0)

1亿VIP精品文档

相关文档