//数码管动态显示经典程序2---动态显示秒表数字。晶振=12MHz
#include<reg51.h>//定义51寄存器头文件
#define uint unsigned int//定义无符号双字节数据类型 值域:0--65535
#define uchar unsigned char//定义无符号单字节数据类型 值域:0--255
#define SEG P0//定义数码管段选IO口
#define WE P2//定义数码管位选IO口
uchar code scandata[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x3f};//
// 定义 7段共阴数码管段码--数组
uchar i=0; t=0, add=0,j, temp;// 给i,t,j赋值0,初值。
uchar count[4]=0;
void timer_init();//定义定时器函数
void main()// 主函数,程序从这里开始执行。
{
timer_init();//程序初始化。
SEG=0x00;//
WE|=0x1e;//
while(1);//循环
}
void timer_init()//定时器主程序
{
EA=1;//开总中断开关
ET1=1;//开定时器1中断开关
TR1=1;//启动定时器1
TMOD=0X10;//设置定时器1工作在模式3下工作
TH1=(65536-10000)/256;//给定时器1高8位装载定时初始值(10000us=10ms)
TL1=(65536-10000)%256;//给定时器1低8位装载定时初始值(10000us=10ms)
}
void timer1() interrupt 4 // 定时器1重装初始值(10000us=10ms)
{
TH1=(65536-10000)/256;//给定时器1高8位装载定时初始值(10000us=10ms)
TL1=(65536-10000)%256;//给定时器1低8位装载定时初始值(10000us=10ms)
i++;//i变量自动加1,每执行一次。
t++;// t变量自动加1,每执行一次。
WE|=0x1e;// 位选扫描“|”按位或指令运算
SEG=scandata[count[i-1]] ;//送秒段码到scandata储存单元寄存器进行显示
WE&=~(0x01<<i);//送位选码扫描左移进行位选显示
if(i==4) i=0;//判定位选左移次数是否达到4次,达到了,返回初始值,清零重新开始左移扫描。
if(t==100); //判定中断次数是否达到100次,1秒。
{
t=0; 时间
add++;
for(j=0;j<4;j++)
{
count[3-j]=temp%10;
temp/=10;
}
}
} //程序结束
错误提示如下:
Build target 'Target 1'
assembling STARTUP.A51...
compiling 001.c...
001.C(53): error C100: unprintable character 0xCA skipped
001.C(53): error C100: unprintable character 0xB1 skipped
001.C(53): error C100: unprintable character 0xBC skipped
001.C(53): error C100: unprintable character 0xE4 skipped
Target not created
请问如何改正错误。谢谢!
|