单片机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;
}
程序为独立式键盘调时的数码时钟 展开
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;
}
程序为独立式键盘调时的数码时钟 展开
3个回答
展开全部
用了很多中文符号。
都弄好了。
#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;
}
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;
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;
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
双击错误标志 看看是哪一句错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询