单片机c语言编译出现C(2): error C100: unprintable character 0xA1 skipped是什么意思如下程序哪里有错

#include<reg51.h>unsignedcharcodetab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,... #include<reg51.h>
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char int_time;
unsigned char second ;
unsigned char minute;
unsigned char hour;

sbit S1=P1^4 ;
sbit S2=P1^5 ;
sbit S3=P1^6;
sbit S4=P1^7;

void delay(void) //数码扫描延时
{
unsigned char j;
for(j=0;j<200;j++);
}
void delay60ms (void) //键盘扫描延时
{
unsigned char i,j;
for(i=0;i<200;i++) ;
for (j=0;j<100;j++) ;
}
void DisplaySecond(unsigned char s) ??//显示秒
{
P2=0xbf; //打开
P0=tab[s/10]; //显示秒的十位
delay();
P2=0x7f;
P0=tab[s%10]; //显示秒的个位
delay();
P2=0xff //关闭所有数码管
;
}
void DisplayMinute(unsigned char m) //显示分钟
{
P2=0xf7;
P0=tab[m/10];
delay();
P2=0xef;
P0=tab[m%10];
delay();
P2=0xdf;
P0=0xbf; //显示分隔符“_”的断码
delay();
P2=0xff;
}
void DisPlayHour(unsigned char h) //显示小时
{
P2=0xfe;
P0=tab[h/10]; //显示小时十位数
delay();

P2=0xfd;
P0=tab[h%10]; //显示小时个位数
delay();
P2=0xff;
}
void key_scan(void) //键盘扫描
{
P1=0xf0;
if((P1&0xf0)!= 0xf0) //确认有按键按下
{
delay60ms();
if(S1==0) //如果是S1键按下
second++; //秒加1
if(S2==0)
minute++;
if(S3==0)
hour++;
if(S4==0)
{
second=0; //秒清零
minute=0; //分钟清零
hour=0; //小时清零
}
}
}
void main (void) //主函数
{
TMOD=0X01;
EA=1;
ET0=1;
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
TR0=1;
int_time=0;
second=0;
minute=0;
hour=0;
while(1)
{
DisplaySecond(second);
DisplayMinute(minute);
DisplayHour(hour );
}
}
void interserve(void)interrupt1 using1 //using Timer0 定时器T0中断服务子程序
{
TR0=0;
int_time++;
if{int_time==20}
{
int_time=0;
second++;
};
if(second==60)
{
second=0;
minuter++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
{
hour=0;
}
key_scan();
TH0=(65536-46083)/256;
TL0=(65536-46083%256);
TR0=1;
}
程序为独立式键盘调时的数码时钟
展开
 我来答
做而论道
高能答主

推荐于2016-02-07 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
用了很多中文符号。

都弄好了。


#include<reg51.h>

unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char int_time;
unsigned char second ;
unsigned char minute;
unsigned char hour;

sbit S1=P1^4 ;
sbit S2=P1^5 ;
sbit S3=P1^6;
sbit S4=P1^7;

void delay(void)  //数码扫描延时
{
 unsigned char j;
 for(j=0;j<200;j++); 
}
 void delay60ms (void) //键盘扫描延时
 {
  unsigned char i,j;
  for(i=0;i<200;i++) ;
  for (j=0;j<100;j++)  ; 
 }
void DisplaySecond(unsigned char s)//  ??//显示秒
{
 P2=0xbf;  //打开 
 P0=tab[s/10]; //显示秒的十位
 delay();
 P2=0x7f;
 P0=tab[s%10];  //显示秒的个位
 delay(); 
 P2=0xff //关闭所有数码管
 ;
}
void  DisplayMinute(unsigned char m) //显示分钟
{
  P2=0xf7;
  P0=tab[m/10];
  delay();
  P2=0xef;
 P0=tab[m%10];
  delay();
  P2=0xdf;
  P0=0xbf;  //显示分隔符“_”的断码
  delay();
  P2=0xff;
}
void DisPlayHour(unsigned char h)  //显示小时
    
{
 P2=0xfe;
 P0=tab[h/10];  //显示小时十位数
 delay();

  P2=0xfd;
  P0=tab[h%10];  //显示小时个位数
  delay();
  P2=0xff;
}
void key_scan(void)   //键盘扫描
{
 P1=0xf0;
  if((P1&0xf0)!= 0xf0)   //确认有按键按下
  {
   delay60ms();    
   if(S1==0)   //如果是S1键按下
   second++;  //秒加1
   if(S2==0)
   minute++;
   if(S3==0)
   hour++;
   if(S4==0)
   {
   second=0;    //秒清零
   minute=0;    //分钟清零
   hour=0;    //小时清零
   }
  }
}
  void main (void)   //主函数
  {
    TMOD=0X01;
EA=1;
ET0=1;
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
TR0=1;
int_time=0;
second=0;
minute=0;
hour=0;
while(1)
{
DisplaySecond(second);
DisplayMinute(minute);
DisPlayHour(hour);

  }
  void interserve(void) interrupt 1 using 1     //using Timer0 定时器T0中断服务子程序
  {
   TR0=0;
   int_time++;
   if(int_time==20)//}
   {
       int_time=0;
  second++;
   };
if(second==60)
{
second=0;
minute++;
}
if(minute==60)
{
minute=0;
hour++;
}
if(hour==24)
{
hour=0;
}
   key_scan();
TH0=(65536-46083)/256;
TL0=(65536-46083%256);
TR0=1;
  }
w3180121
2015-10-27 · 知道合伙人数码行家
w3180121
知道合伙人数码行家
采纳数:793 获赞数:2403
单片机 C语言 电脑 液晶 没有 证书 我们只是一个团队

向TA提问 私信TA
展开全部
简单给你看了一下 截图 你自己改一下吧 TR0=0;int_time=0;(改分号)
void interserve(void)interrupt1 using1 //using Timer0 定时器T0中断服务子程序
{
TR0=0;//(改分号)
int_time++;
if{int_time==20}
{
int_time=0;//(改分号)
second++;
};//(改分号)
先把这些改了吧 程序没有看 我的编译系统 没有52的 所以编一部了 在哪有问题 在告诉我们吧
void DisplaySecond(unsigned char s) //显示秒 (unsigned char s)这句 括号右面 有隐藏的符号 清除一下
程序 一定要严谨
P2=0xff //关闭所有数码管
; 吧分号 退回去 跑这么远
TL0=(65536-46083%256); 你应该 是对 256取余吧TL0=(65536-46083)%256;
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哭泣的苍耳
2015-10-27
知道答主
回答量:12
采纳率:0%
帮助的人:1.4万
展开全部
双击错误标志 看看是哪一句错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式