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

#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;
}
程序为独立式键盘调时的数码时钟

用了很多中文符号。

都弄好了。


#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;
  }

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-10-27
简单给你看了一下 截图 你自己改一下吧 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;本回答被网友采纳
第2个回答  2015-10-27
双击错误标志 看看是哪一句错了

单片机c语言编译出现C(2): error C100: unprintable character 0xA1 ski...
\/\/显示秒{ P2=0xbf; \/\/打开 P0=tab[s\/10];\/\/显示秒的十位 delay(); P2=0x7f; P0=tab[s%10]; \/\/显示秒的个位 delay()

...error C100:unprintable character 0xA1 skipped 哪错了啊
出错的那一行,你也许输入了中文。你先把那一行注释掉,就看到了,把中文删除再编译就好了

...error C100:unprintable character 0xA1 skipped 哪错了啊
P0=SBUF这句话有问题,P0是一个并口,SBUF应该赋值到一个内存变量中。另外 if(RI){ RI=0;P0=SBUF;} 应该放在串口中断中。

...error C100:unprintable character 0xA1 skipped 哪错了啊
include<W77C32.H> define MODE_RT PWR_UP = 1; csn= 1; ce= 0; \/\/收发 define MODE_CF PWR_UP = 1; csn= 0; ce= 1; \/\/设置 define MODE_SB PWR_UP = 1; csn= 0; ce= 0; \/\/空闲 define MODE_PD PWR_UP = 0; \/\/关机 define uchar unsigned char define uint unsign...

...error c100:unprintable character 0xA1 skipped该如何解决啊_百度...
这个提示的意思是文件中包含不可打印的字符0xA1。检查你的文件中是不是有中文全角的标点符号。许多编译器不识别中文标点符号的。你贴出来代码的第21行,右括号的最左边有个全角标点“·”。

...error C100: unprintable character 0xA1 skipped
"void timer0() interrupt 1 、\/\/定时器中断"\/\/之前多了一个顿号.

...C100: unprintable character 0xa1 skipped 怎么解决哦
dula=1;P0=0;dula=0;while(1){】P3=0xfe;temp=P3;temp=temp&0xf0;while(temp!=0xf0){ 吧‘while(1){’后面的东西删了

...错误 C100: unprintable character 0xA1 skipped。 单片机的编写程 ...
应该是程序中出现了非ASCII码,造成无法编译。最常见的原因就是输入标点符号的时候,输入了全角字符,例如分号,逗号等,而在显示窗口中人眼很容易混淆,可编译器不会混淆。

...c(27): error C100: unprintable character 0xA9 skipped
while(1£©;---这是什么语句?}

MAIN.C(126): error C100: unprintable character 0xA3 skipped是什么意...
“这是提示在intrins.h文件中发现了(英文系统)不能识别的字符串“和显示程序”。对应的语句里存在非法字符。看看是不是半角的用了全角,或者是有中文字符。(在KEIL 看不到时,是因为输入的是中文里“,”,在前面加“\/\/”就能看到了) keil的断点不能设置了。在工程 option for target...

相似回答