OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5029|回复: 1

51关于1602LCD时钟编程的问题

[复制链接]

1

主题

1

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2013-5-26
在线时间
0 小时
发表于 2014-6-26 09:53:16 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]#include <reg51.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int #define DelayNOP() {_nop_();_nop_();_nop_();_nop_();} sbit K1=P1^0; sbit K2=P1^1; sbit K3=P1^2; sbit K4=P1^3; sbit SPK=P3^0; sbit LCD_RS=P2^0; sbit LCD_RW=P2^1; sbit LCD_EN=P2^2; bit LCD_Busy_Check(); void LCD_Initialize(); void LCD_Set_POS(uchar); void LCD_Write_Command(uchar); void LCD_Write_Data(uchar); uchar code string1[]=" Current Time "; uchar code string2[]="Set New Time ..."; bit Settime=0; bit Change_H_or_M=1; uchar MilliSecond,Hour=12,Minute=30,Second=0; void DelayMS(uint x) { uchar i; while(x--) for(i=0;i<120;i++); } void Display_String(uchar * str,uchar LineNo) { uchar k; LCD_Set_POS(LineNo); for(k=0;k<16;k++) LCD_Write_Data(str[k]); } void Beep() { char i,j=70; for(i=0;i<200;i++) { while(--j);SPK=~SPK; } DelayMS(300);SPK=0; } void Display_HMS(uchar h,m,s) { if(Settime) HMS_String[3]='>'; else HMS_String[3]=''; HMS_String[4]=h/10+'0'; HMS_String[5]=h%10+'0'; HMS_String[7]=m/10+'0'; HMS_String[8]=m%10+'0'; HMS_String[10]=s/10+'0'; HMS_String[11]=s%10+'0'; Display_String(HMS_String,0x40); } void Change_Time() { Settime=0; if(K1==0||K2==0||K3==0) { TR0=0; Display_String(string2,0x00); Settime=1; } while(Settime) { if(K1==0) { Beep(); while(K1==0); Change_H_or_M=!Change_H_or_M; } else if(K2==0) { Beep(); while(K2==0); if(Change_H_or_M==1) {if(++Hour==24)Hour=0;} else {if(++Minute==60)Minute=0;} } else if(K3==0) { Beep(); while(K3==0); if(Change_H_or_M==1) {if(--Hour=0xff)Hour=23;} else {if(--Minute==0xff)Minute=59;} } else if(K4==0) { Beep(); while(K4==0); Display_String(string1,0x00); Settime=0; TR0=1; } Display_HMS(Hour,Minute,Second); } } void Time0() interrupt 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(++Second==20) { Second=0; if(++Minute==60) { Minute=0; if(++Hour==24) { Hour=0;Minute=0;Second=0; } } } } void main() { TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; IE=0x82; SPK=0; LCD_Initialize(); Display_String(string1,0x00); TR0=1; P1=0xFF; while(1) { Display_HMS(Hour,Minute,Second); DelayMS(500); Change_Time(); } }[/mw_shl_code]

Build target 'Target 1'
assembling STARTUP.A51...
compiling clock.c...
CLOCK.C(48): error C202: 'HMS_String': undefined identifier
CLOCK.C(50): error C202: 'HMS_String': undefined identifier
CLOCK.C(50): error C101: '''': invalid character constant
CLOCK.C(51): error C202: 'HMS_String': undefined identifier
CLOCK.C(52): error C202: 'HMS_String': undefined identifier
CLOCK.C(53): error C202: 'HMS_String': undefined identifier
CLOCK.C(54): error C202: 'HMS_String': undefined identifier
CLOCK.C(55): error C202: 'HMS_String': undefined identifier
CLOCK.C(56): error C202: 'HMS_String': undefined identifier
CLOCK.C(57): error C202: 'HMS_String': undefined identifier
Target not created

最佳答案

查看完整内容[请看2#楼]

告诉你这个 HMS_String没有定义,找找文件看下
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-6-26 09:53:17 | 显示全部楼层
告诉你这个 HMS_String没有定义,找找文件看下
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 03:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表