找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4963|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)小制作—8位數(shù)碼管循環(huán)左移

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:85192 發(fā)表于 2015-7-10 02:18 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式



//8位共陰數(shù)碼管間隔0.5S循環(huán)左移依次顯示 12345678、23456781、34567812 ...
//2011  12 09     E:\DPJ\OTHER\1\8位左移\8位左移.C

#include<reg51.h>
#include<intrins.h>
#define  uchar  unsigned  char
#define  uint  unsigned int

uchar  time,i,temp,temp1=0xfe;
uchar  code tab[ ]={0x06,0x5B,0x4F,0x66,
    0x6D,0x7D,0x07,0x7F};
bit flag;
sbit  P2_0=P2^0;
sbit  P2_1=P2^1;
sbit  P2_2=P2^2;
sbit  P2_3=P2^3;
sbit  P2_4=P2^4;
sbit  P2_5=P2^5;
sbit  P2_6=P2^6;
sbit  P2_7=P2^7;

void  delay(int ms)
{
uchar j;
while(ms--)
for(j=0;j<123;j++);
}
void T0INTinit()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;

}

void disp();

void main()
{
T0INTinit();
temp=0xfe;
while(1)
{
  temp=temp1;
  disp();
  if(flag)
  {
   flag=0;
   temp1=_cror_(temp1,1);
  }
}
}

void  disp()
{
P0=tab[0];
P2=temp;
delay(1);
P2=0xff;
temp=_crol_(temp,1);
P0=tab[1];
P2=temp;
delay(1);
P2=0xff;
P0=tab[2];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[3];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[4];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[5];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[6];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
P0=tab[7];
temp=_crol_(temp,1);
P2=temp;
delay(1);
P2=0xff;
}

void T0INT() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if(time==10)
{
  time=0;
  flag=1;
}
}




2012 01 06 更新。原來的寫得不好,重寫。



  1. //8位共陰數(shù)碼管間隔0.5S循環(huán)左移依次顯示 12345678、23456781、34567812 ...
  2. //2012  01 06 更新     E:\DPJ\OTHER\1\8位左移\8位左移-2.C

  3. #include<reg51.h>
  4. #include<intrins.h>
  5. #define  uchar  unsigned  char
  6. #define  uint  unsigned int

  7. uchar  temp;
  8. uchar  code tab[ ]={0x06,0x5B,0x4F,0x66,
  9.                                0x6D,0x7D,0x07,0x7F};
  10. bit flag;

  11. void  delay(int ms)
  12. {
  13. uchar j;
  14. while(ms--)
  15. for(j=0;j<123;j++);
  16. }
  17. void T0INTinit()
  18. {
  19. TMOD=0x01;
  20. EA=1;
  21. ET0=1;
  22. TR0=1;
  23. TH0=(65536-50000)/256;
  24. TL0=(65536-50000)%256;
  25. }

  26. void disp();

  27. void main()
  28. {
  29. T0INTinit();
  30. temp=0xfe;
  31. while(1)
  32. {
  33.   disp();
  34.   if(flag)
  35.   {
  36.    flag=0;
  37.    temp=_cror_(temp,1);
  38.   }
  39. }
  40. }
  41. void disp()
  42. {
  43. uchar i;
  44. for(i=0;i<8;i++)
  45. {
  46.   P0=tab[i];
  47.   P2=temp;
  48.   delay(1);
  49.   P2=0xff;
  50.   temp=_crol_(temp,1);
  51. }
  52. }

  53. void T0INT() interrupt 1
  54. {
  55. uchar  time;
  56. TH0=(65536-50000)/256;
  57. TL0=(65536-50000)%256;
  58. time++;
  59. if(time==10)
  60. {
  61.   time=0;
  62.   flag=1;
  63. }
復(fù)制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:79034 發(fā)表于 2015-11-2 13:33 | 只看該作者
好,就是要多一些新手的學(xué)習(xí)實(shí)踐。供新手參考。
頂一下樓主。
作為新手來說。太復(fù)雜的看不懂。。。樓主這個正好。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:94481 發(fā)表于 2015-11-2 22:04 | 只看該作者
是要自己焊電路板嗎
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表