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