[AVR单片机] 菜鸟真心求指导。

[复制链接]
1558|3
 楼主| studying123 发表于 2012-11-25 11:21 | 显示全部楼层 |阅读模式
  1. #include <iom16v.h>
  2. #include <macros.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar num;
  6. #pragma interrupt_handler miao:9
  7. #pragma data:code
  8. const table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,
  9. 0x5E,0x79,0x71};

  10. void delay(uint ms)
  11. {
  12. uint i,j;
  13. for (i=0;i<ms;i++)
  14. for (j=0;j<1141;j++);
  15. }


  16. void show(uchar j,uchar k)

  17. {
  18. PORTA=table[k];
  19. delay(10);
  20. PORTC=table[j];
  21. delay(10);
  22. }


  23. void miao (void)
  24. {
  25. uchar a,b;
  26. TCNT1H=0X85;
  27. TCNT1L=0XED;
  28. a=num%10;
  29. b=num/10;
  30. show(a,b);

  31. }

  32. void main(void)
  33. {
  34. uint pre=0,cur=0;
  35. uchar j=0,k=0;
  36. DDRD=0x00;
  37. DDRA=0xff;
  38. DDRC=0xff;
  39. TCCR1B=0X04;
  40. TCNT1H=0X85;
  41. TCNT1L=0XED;
  42. TIMSK|=BIT(2);
  43. SREG|=BIT(7);
  44. show(j,k);
  45. delay(10);
  46. while(1)
  47. {
  48. cur = PIND&0x01;
  49. if(pre&(cur^pre)) num++;
  50. delay(1);
  51. pre=cur;
  52. }
  53. }




这样一个程序,用JTAG口仿真时,为什么数码管连接PA口的那个可以正常显示,连接PC口的那个却显示不正常。(实现的功能是计脉冲,PA口显示10位,PC口显示个位。)
NE5532 发表于 2012-11-25 15:13 | 显示全部楼层
不要用这么复杂的代码找问题,就用这一句

pc = 0xAA;

来找。
 楼主| studying123 发表于 2012-11-26 17:29 | 显示全部楼层
原来是受JTAG仿真口的影响,把PC口的电路挪到PD口就正常了。
NE5532 发表于 2012-11-26 19:30 | 显示全部楼层
呵呵,恭喜找到原因。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

18

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部