问个关于动态显示的问题....共阳数码管的问题还是怎么回...

[复制链接]
1479|5
 楼主| johnny_wy 发表于 2015-4-22 22:50 | 显示全部楼层 |阅读模式
电路图 很简单 数码管是共阳的。
程序代码: 也很简单 ,偏偏数码管就是不会亮。引脚显示全是高电平。。

PS:用共阴极数码管能 点亮并稳定动态显示。将下面的位选 段选编码换成共阴的 再把消影的0x00变成0xff就是共阴数码管的代码。这个是成功的。
偏偏换成 共阳的数码管就行不通。。求大神解释 指点!
还有就是 我把中断换成延时程序,共阳数码管也是可以稳定显示的.....

自己对以下代码测试的结果就是只要把 display()放到 中断里面 数码管就完全无法显示,将display()放到中断外虽然不能成功显示,但还是”会闪“

  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar count,dunum=0,wenum=0;
  5. sbit dula=P2^6;
  6. sbit wela=P2^7;
  7. uchar code tabledu[]={
  8. 0xc0,0xf9,0xa4,0xb0,

  9. 0x99,0x92,0x82,0xf8,

  10. 0x80,0x90,0x88,0x83,

  11. 0xc6,0xa1,0x86,0x8e};
  12. uchar code tablewe[]=
  13. {0x01,0x02,0x04,0x08,
  14. 0x10,0x20};
  15. void display();
  16. void main()
  17. {
  18.         EA=1;
  19.         ET0=1;
  20.         TMOD=0x10;
  21.         TH1=(65536-500)/256;
  22.         TL1=(65536-500)%256;
  23.         TR0=1;
  24.         while(1)
  25.                 {
  26.                                 if(count==1)                                       
  27.                                 {
  28.                                         count=0;
  29.                                         if(dunum==6)
  30.                                      dunum=0;
  31.                                   if(wenum==6)
  32.                                                         wenum=0;       
  33.                                         display();
  34.                                         dunum++;
  35.                                   wenum++;
  36.                                         }                                                                
  37.                 }
  38. }

  39. void tim1() interrupt 3
  40. {
  41.         TH1=(65536-500)/256;
  42.         TL1=(65536-500)%256;
  43.         count++;
  44. }

  45. void display()
  46. {
  47.         P0=0x00;
  48.         wela=1;
  49.         wela=0;
  50.         P0=tabledu[dunum];
  51.         dula=1;
  52.         dula=0;
  53.         P0=tablewe[wenum];
  54.         wela=1;
  55.         wela=0;
  56. }


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| johnny_wy 发表于 2015-4-23 11:06 | 显示全部楼层
都没人。。。
JY-DX-JY 发表于 2015-4-23 20:34 | 显示全部楼层
延时的问题吧?
mcu5i51 发表于 2015-4-24 08:40 | 显示全部楼层
记得在ISIS中LED好像没有电阻就不亮,加上1-2百的限流电阻试试
 楼主| johnny_wy 发表于 2015-4-24 19:21 | 显示全部楼层

用延时程序 共阳数码管能点亮。用中断程序就点不亮,,。不知道 是什么原因
JY-DX-JY 发表于 2015-4-24 19:46 | 显示全部楼层
中断时间多长?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

35

帖子

0

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