发新帖我要提问
12
返回列表
打印

PIC单片机串口通信问题

[复制链接]
楼主: zhengxinydc
手机看帖
扫描二维码
随时随地手机跟帖
21
zhengxinydc|  楼主 | 2015-10-23 17:00 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 zhengxinydc 于 2015-10-23 17:03 编辑

同上

使用特权

评论回复
22
zhengxinydc|  楼主 | 2015-10-23 20:03 | 只看该作者
本帖最后由 zhengxinydc 于 2015-10-23 20:05 编辑

问题已经解决,确实是应该把dis()放在while(1)里,前面我把case 0xed:项写成了case0x31:了,而在助手里一直输入ED所以就没有得到正解。在这里首先要感谢millenniumm 和GeekyGeek 朋友,谢谢大家的支持!
#include<pic.h>
#define uint unsigned int
#define uchar unsigned char
__CONFIG(0X3b31);
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                         0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar key_num;
void init();
void disp();
void main()
{
  init();
while(1)
{
  disp();
}
}
void init()
{
         TRISD=0;
         TRISA=0;
         PORTD=0;
         PORTA=0XFF;
         TXSTA=0x24;
         RCSTA=0X90;
         SPBRG=25;
         GIE=1;
         PEIE=1;
         RCIE=1;
}
void interrupt com()
{
         if(RCIE&&RCIF)
         {
                 key_num=RCREG;
                 TXREG=key_num;
                 while(!TRMT);
         }
}
void disp()
{
         switch(key_num)
         {
                 case 0xee:PORTD=table[0];break;
                 case 0Xed:PORTD=table[1];break;
                 case 0xeb:PORTD=table[2];break;
                 case 0xe7:PORTD=table[3];break;
                 case 0xde:PORTD=table[4];break;
                 case 0xdd:PORTD=table[5];break;
                 case 0xdb:PORTD=table[6];break;
                 case 0xd7:PORTD=table[7];break;
                 case 0xbe:PORTD=table[8];break;
                 case 0xbd:PORTD=table[9];break;
                 case 0xbb:PORTD=table[10];break;
                 case 0xb7:PORTD=table[11];break;
                 case 0x7e:PORTD=table[12];break;
                 case 0x7d:PORTD=table[13];break;
                 case 0x7b:PORTD=table[14];break;
                 case 0x77:PORTD=table[15];break;
         }
}

使用特权

评论回复
23
GeekyGeek| | 2015-10-24 16:51 | 只看该作者
zhengxinydc 发表于 2015-10-23 15:25
GeekyGeek您好!今天买了一个PICkit 3,想设断点试试,但是这个断点设在哪里能看到key_num的值呢?请指导 ...

你用MAPLAB还是MAPLAB X, 不过不管你用其中哪个,你要设置断点,在DEBUG模式选择RUN,
右键点击Key_num加入到watches窗口,这样就可以看了,不清楚在哪设置断点就用逐步运行。

你的pickit3是正版还是Clone半?多少钱?
我准备在Microchip MASTERs年会上买个,
据说会打折,具体多少还不清楚,官方正品哦。

使用特权

评论回复
24
zhengxinydc|  楼主 | 2015-10-25 14:13 | 只看该作者
GeekyGeek 发表于 2015-10-24 16:51
你用MAPLAB还是MAPLAB X, 不过不管你用其中哪个,你要设置断点,在DEBUG模式选择RUN,
右键点击Key_num加 ...

我的是在天祥电子网站上买的,买的时间长了刚拿出来用价格记不得了。问题解决了,非常感谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则