找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3803|回复: 6
打印 上一主题 下一主题
收起左侧

Keil编译错误error C100: unprintable character 0xE2 skipped

[复制链接]
跳转到指定楼层
楼主
按照教科书上的程序写的,但是测试发现好多错误。不会改,求大神帮忙改一下让程序能用。错误图片已经上传
error C100: unprintable character 0xE2 skipped


这是一个数字钟的程序,自动计时,由6位LED显示器显示时、分、秒。 具备校准功能,可以设置当前时间。 具备定时启闹功能,可以设置启闹时间并同时开启闹钟功能,启闹15s后自动关闭闹铃。 在闹钟开启状态或闹铃过程中,可以按键关闭闹钟功能

单片机源程序如下:
  1. #include”reg51.h"
  2. typedef unsigned int u16;
  3. typedef unsigned char u8;

  4. sbit naodeng=P2^0;
  5. sbit S1=P3^0;
  6. sbit S2=P3^2;
  7. sbit S3=P3^3;
  8. sbit beep=P2^7;

  9. void shijian( );
  10. void Timer0Init ( );
  11. void DigDisplay( );
  12. void alarm( );
  13. void tiao_nao ( );
  14. void moshi ( );
  15. void delay ( u16 i ) ;

  16. bit nao ;
  17. u8 a =0;
  18. u8 dispiay [] = {0,0,0,0,0,0};
  19. u8 ssec, sec, min, hour, nao_hour=0, nao_min=0;

  20. void delay ( u16 i )
  21. {
  22.         while (i--);
  23. }

  24. void Timer0Init  (  )
  25. {
  26.         TMOD =0x01;
  27.         EX0 =1;
  28.         IT0  =1;
  29.         PX0 =1;
  30.         EX1 =1;
  31.         IT1  = 0;
  32.         TH0= 0xd8;
  33.         TL0 = 0xf0;
  34.         ET0 = 1;
  35.         EA=1;
  36.         TR0=1;
  37. }

  38. void DigDisplay (  )
  39. {
  40.         u8 i, j, m, temp;
  41.         u8  led [] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f };
  42.         temp=0x01;
  43.         for ( i=0 ; i<6 ; i++)
  44.         {
  45.          P1=0x00;
  46.          j=display [ i ];
  47.          P1=led [j];
  48.          P0=~temp;
  49.          temp<<=1;
  50.          for ( m=0 ; m<100; m++);
  51.         }
  52. }

  53. void alarm ( )
  54. {
  55.         if ( nao_ hour==hour && nao_ min==min && sec>=0 && sec<15 && nao ==1 )
  56.         {
  57.         beep=1;
  58.         delay (5);
  59.         beep=0;
  60.         delay(5);
  61.         }        
  62. }

  63. void tiao_ nao ( )
  64. {
  65.         IT0=0;
  66.         EX1=0;
  67.         EX0=0;
  68.         delay ( 10 ) ;
  69.         while ( S1 )
  70.           {
  71.         if (S2 = =0)
  72.            {delay (10);
  73.          if ( S2==0 )   nao_ hour++;
  74.          while ( ! S2 ) ;  }
  75.         if ( nao_ hour>=24 )        nao_ hour=0;
  76.         if(S3==0)
  77.           {delay ( 10 );
  78.         if (S3==0) nao_ min++; while ( ! S3 )  ; }
  79.         if(nao_ min>=60)  nao_ min=0;
  80.         display [5] =0;
  81.         display [4] =0;
  82.         display [3] =nao_ min%10;
  83.         display [2] =nao_ min/10;
  84.         display [1] =nao_ hour%10;
  85.         display [0] =nao_ hour/10;
  86.         DigDisplay (  ) ;
  87.         }
  88. IT0=1;
  89. EX1=1;
  90. EX0=1;
  91. nao=1;        
  92. }

  93. void moshi (  )
  94. {
  95.         if ( S1==0 )
  96.         {
  97.                 delay(100);
  98.                 if(S1==0)
  99.                   {
  100.                             a++;
  101.                         if ( a>=2 ) a=0;
  102.                         while( ! S1);
  103.                         switch (a)
  104.                          {
  105.                            case (0) ; nao=~nao; break;
  106.                            case (1) ; tiao_ nao ( ) ; break;
  107.                          }

  108.                  }
  109.         }while ( ! S1 );
  110. }

  111. void shijian ( )
  112. {
  113.         display [5] =sec%10;
  114.         display [4] =sec/10;
  115.         display [3] =min%10;
  116.         display [2] =min/10;
  117.         display [1] =hour%10;
  118.         display [0] =hour/10;
  119.         DigDisplay ( ) ;
  120. }

  121. void timer0 (  ) interrupt 1
  122. {
  123.         TH0=0xd8;
  124.         TL0=0xf0;
  125.         ssec++;
  126.         if ( ssec>=100 )
  127.         {
  128.                 ssec=0;
  129.                 sec++;
  130.                 if ( sec>=60 )
  131.                 {
  132.                         sec=0;
  133.                         min++;
  134.                         if ( min>=60)
  135.                         {
  136.                                 min=0;
  137.                                 hour++;
  138.                                 if ( hour>=24 )
  139.                                 {
  140.                                      hour=0;
  141.                                 }
  142.                         }
  143.                 }
  144.         }
  145. }

  146. void int0 (  ) interrupt 0
  147. {
  148.         delay (10);
  149.         hour++;
  150.         if (hour>=24)         hour=0;
  151. }

  152. void int1 (  ) interrupt 2
  153. {
  154.         min++;
  155.         if ( min==60 )          min=0;
  156.         while ( ! S3 );
  157. }

  158. void main (  )
  159. {
  160.         Timer0Init (  ) ;
  161.         while ( 1 )
  162.           {
  163.                 if ( nao==1 )  naodeng=0;
  164.                 else naodeng =1;
  165.                 shijian (  );
  166.                 moshi (  );
  167.                 alarm (  );
  168.           }
  169. }
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:796531 发表于 2021-6-11 15:40 | 只看该作者
#include”reg51.h" 这个地方你应该是中文输入法输入的引号,请改为英文
回复

使用道具 举报

板凳
ID:799382 发表于 2021-6-11 15:41 | 只看该作者
你好好检查好一下你自己的代码,这明显错误!!!
还有这里 谁教你这样写代码的???你在上面定义的是nao_hour在下面为什么要敲空格分开他???nao_   hour?????? 谁教你这样写的????还有这里 你有认真检查过自己的代码吗?????
回复

使用道具 举报

地板
ID:799382 发表于 2021-6-11 16:09 | 只看该作者
认真检查代码 代码中有一堆错误!!!!!!
回复

使用道具 举报

5#
ID:799382 发表于 2021-6-11 16:09 | 只看该作者

回复

使用道具 举报

6#
ID:328014 发表于 2021-6-11 16:38 | 只看该作者
第一行的引号错了 应该是这个引号 #include"reg51.h"
另外你的空格不行  全部删掉 换成半角的空格
回复

使用道具 举报

7#
ID:123289 发表于 2021-6-11 17:31 | 只看该作者
一般打印可显示的ASCII码<128 (80H)。超过了,就打印不了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表