找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1500|回复: 9
收起左侧

单片机源程序一直有两个错误,求大家帮忙改正

[复制链接]
ID:931449 发表于 2021-6-16 11:43 来自手机 | 显示全部楼层 |阅读模式
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define delayNOPX(){_nop_();_nop_();_nop_();_nop_();}
  6. sbit BEEP =P1^0;
  7. sbit LCD_RS =P2^0;
  8. sbit LCD_RW =P2^1;
  9. sbit LCD_EN =P2^2;
  10. void DelayMS(uint ms);
  11. bit LCD_Busy();
  12. void LCD_Pos(uchar);
  13. void LCD_Wcmd(uchar);
  14. void lcd_Wdat(uchar);
  15.   //标题字符串
  16.   char code Title_Text[]={"-phone code-"}
  17.   //键盘序号与键盘符号映射表
  18.   uchar code Key_Table[]={'1','2','3','4','5','6','7','8','9','0','#'};
  19.     //键盘拨号数字缓冲
  20.         uchar Dial_Code_Str[]={""};uchar KeyNo=0Xff;int tCount =0;
  21.         //延时
  22.         void DelayMS(uint x)
  23.         {
  24.         uchar i;
  25.         while(x--)
  26.         for(i=0;i<120;i++);
  27.         }
  28.         //在LCD指定的行上显示字符串
  29.         Void display_string(uchar*str,uchar klineNo)
  30.         {
  31.         uchar k;
  32.         LCD_pos(lineNo);
  33.         for (k=0;k<16;k++)
  34.         LCD_wdat(str[k]);
  35.         }
  36.         //1602LCD显示控制函数bit
  37. LCD_busy()void LCD_wcmd(uchar cmd)void
  38. LCD_wdat(uchar str)void LCD_init()void
  39. LCD_pos(uchar pos)
  40.     //T0控制按键声音
  41.         Void T0_INT() interrupt 1
  42.         {
  43.         TH0 = -600/256;
  44.         TL0        = -600%256;
  45.         BEEP =~BEEP;
  46.         If (++tcount == 200)
  47.         {
  48.         Tcount 0;tr0 =0;
  49.         }
  50.         }
  51.         //键盘扫描
  52.         Uchar getkey()
  53.         {
  54.         Uchar i,j,k = 0;
  55.         Uchar keyscancode[]={0xef,0xdf,0xbf,0x7f};//键盘扫描码
  56.         Uchar keyscancode[]={0xee,0xed,0xeb,0xde,0xdd,0xdb,0xbe,0xbd,0xbb,0x7e,0x7d,0x7b};//键盘特征码
  57.         P3= 0x0f;
  58.         //扫描键盘获取按键序号
  59.         If(p3!=0x0f)
  60.         {
  61.         For (i=0;i<4;i++)
  62.         {
  63.         p3 =keyscancode[i];
  64.         For (j=0;j<3;j++)
  65.         {
  66.         k =i*3+j;
  67.         If (p3==keycodetable[k])
  68.         return k;
  69.         }
  70.         }
  71.         }
  72.         else return oxff;
  73.         }
  74.         //主程序
  75.         Void main()
  76.         {
  77.         Uchar i =0,j;
  78.         p0 = p2 = p1 =0xff;
  79.         IE =0x82;TOMD =0x01;
  80.         LCD_init();//初始化LCD
  81.         Display_string(title_text,0x00);//在第一行显示标题
  82.         While(1)
  83.         {
  84.         KeyNo =getkey();//获取按键
  85.         If(keyNo ==0xff) cont inue;//无按键时继续扫描
  86.         If(++i ==11)//超过11位时清空
  87.         {
  88.         for(j=0;j<16;j++) dial_code_str[j]=' ';i=0;
  89.         }
  90.         Dial_code_str[i]=key_table[keyNo];//讲待显示字符放入待显示的拨号串中
  91.         Display_string(dial_code_str,0x40);//在第二行显示号码
  92.         Tr0 =1;//T0中断控制按键声音
  93.         While(getkey()!=0xff);//等待释放
  94.         }
  95.         }
复制代码
回复

使用道具 举报

ID:844772 发表于 2021-6-16 14:38 | 显示全部楼层
我理解是你在让我练习肉眼编译的能力。另外,你先把那个标题字符串赋值后边加上分号。
回复

使用道具 举报

ID:81196 发表于 2021-6-16 14:55 | 显示全部楼层
起码吧提示的错误信息也发上来吧
回复

使用道具 举报

ID:858964 发表于 2021-6-16 14:58 | 显示全部楼层
shumivan 发表于 2021-6-16 14:55
起码吧提示的错误信息也发上来吧

应该如此。
以便于别人帮你找出错误原因。
回复

使用道具 举报

ID:938685 发表于 2021-6-16 15:20 | 显示全部楼层
那个标题字符串赋值后边加上分号

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:931449 发表于 2021-6-16 15:35 来自手机 | 显示全部楼层
Kxuan163 发表于 2021-6-16 14:58
应该如此。
以便于别人帮你找出错误原因。

这是编译显示
IMG20210616152537.jpg
回复

使用道具 举报

ID:931449 发表于 2021-6-16 15:35 来自手机 | 显示全部楼层
这个是我的编译显示
IMG20210616152537.jpg
回复

使用道具 举报

ID:592807 发表于 2021-6-16 18:13 | 显示全部楼层
你这if关键字有点意思  
      
If(keyNo ==0xff) cont inue;//无按键时继续扫描
If(++i ==11)//超过11位时清空
回复

使用道具 举报

ID:934353 发表于 2021-6-17 10:19 | 显示全部楼层
你的25行和16 行都少加了分号,编译那里已经提醒的很明显了
回复

使用道具 举报

ID:964308 发表于 2021-10-17 21:02 来自手机 | 显示全部楼层
一个地方少了个分号,一个地方定义出问题了,具体什么问题要发图
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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