当前位置:首页 > 基于51单片机的多功能电子钟设计
基于51单片机的多功能电子钟设计
BOOL result; rs = 0; rw = 1; ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); result = (BOOL)(LCD_DATA & 0x80); ep = 0; return result; }
void lcd_wcmd(BYTE cmd) { while(lcd_bz()); rs = 0; rw = 0; ep = 0; _nop_(); _nop_(); LCD_DATA = cmd; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; }
void lcd_pos(BYTE pos) { lcd_wcmd(pos | 0x80); }
void lcd_wdat(BYTE dat) { while(lcd_bz()); rs = 1; rw = 0; ep = 0;
37
基于51单片机的多功能电子钟设计
LCD_DATA = dat; _nop_(); _nop_(); _nop_(); _nop_(); ep = 1; _nop_(); _nop_(); _nop_(); _nop_(); ep = 0; }
void lcd_write_line(BYTE line, BYTE *line_data) {
BYTE i = 0; lcd_pos(line * 0x40); for (i = 0; line_data[i] != '\\0'; i ++) { lcd_wdat(line_data[i]); } }
void lcd_clear_line(BYTE line) { BYTE i = 0; lcd_pos(line * 0x40); for (i = 0; i < 16; i ++) { lcd_wdat (' '); } }
void lcd_init() { lcd_wcmd(0x38); delay(1); lcd_wcmd(0x0c); delay(1); lcd_wcmd(0x06); delay(1); lcd_wcmd(0x01); delay(1); lcd_clear_line(0);
38
基于51单片机的多功能电子钟设计
lcd_clear_line(1); }
4.5 DS12887模块软件实现
4.5.1 DS12887模块子程序流程图
图4-4 DS12887时间显示流程图
39
基于51单片机的多功能电子钟设计
图4-5 DS12887时间设置流程图
4.5.2 DS12887模块子程序代码 #include
40
共分享92篇相关文档