标题: 数码管动态显示经典程序2---动态显示秒表数字 有错误,求修正错误,谢谢! [打印本页]

作者: hts2008222    时间: 2014-11-19 17:29
标题: 数码管动态显示经典程序2---动态显示秒表数字 有错误,求修正错误,谢谢!
//数码管动态显示经典程序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


请问如何改正错误。谢谢!


作者: hts2008222    时间: 2014-11-19 22:18
通过一整天的忘我投入钻研,以上问题已解决!谢谢大家的提示!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1