找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5479|回復(fù): 4
收起左側(cè)

51單片機(jī)光控計(jì)數(shù)器仿真與源碼

[復(fù)制鏈接]
ID:302886 發(fā)表于 2018-4-6 20:27 | 顯示全部樓層 |閱讀模式
單片機(jī)光控計(jì)數(shù)器仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png

單片機(jī)源程序如下:
  1. #include <reg52.h> //包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義

  2. #define DataPort P2 //定義數(shù)據(jù)端口 程序中遇到DataPort 則用P0 替換
  3. sbit    LATCH1=P3^5;//定義鎖存使能端口 段鎖存
  4. sbit    LATCH2=P3^4;//                 位鎖存
  5. sbit   HW1=P3^2;
  6. sbit   HW2=P3^3;
  7. sbit  led=P1^4;
  8. sbit  qing=P1^2;
  9. unsigned int  num;
  10. unsigned char code dofly_DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 顯示段碼值0~9

  11. unsigned char code dofly_WeiMa[]={0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7};//分別對(duì)應(yīng)相應(yīng)的數(shù)碼管點(diǎn)亮,即位碼,567801234

  12. unsigned char TempData[8]; //存儲(chǔ)顯示值的全局變量

  13. void delay(unsigned int i)
  14.    {
  15.    while(i--);
  16.     }

  17. void Display(unsigned char FirstBit,unsigned char Num)
  18. {
  19.        
  20.     unsigned char i;
  21.           
  22.           for(i=0;i<Num;i++)
  23.           {
  24.                            DataPort=0;   //清空數(shù)據(jù),防止有交替重影
  25.                                  LATCH1=1;     //段鎖存
  26.                                  LATCH1=0;

  27.                                  DataPort=dofly_WeiMa[i+FirstBit]; //取位碼
  28.                                  LATCH2=1;     //位鎖存
  29.                                  LATCH2=0;

  30.                                  DataPort=TempData[i]; //取顯示數(shù)據(jù),段碼
  31.                                  LATCH1=1;     //段鎖存
  32.                                  LATCH1=0;
  33.                                  
  34.                            delay(50); // 掃描間隙延時(shí),時(shí)間太長(zhǎng)會(huì)閃爍,
  35.                                                                                  //太短會(huì)造成重影

  36.    }

  37. }




  38. void   disp()
  39. {
  40.      unsigned char  j;
  41.   
  42.                                         for(j=0;j<200;j++)
  43.                                         {  if(j==40)
  44.                                             {
  45.                                                        
  46.                                             if(num==100)
  47.                                              num=0;
  48.                                             }
  49.                                          TempData[0]=dofly_DuanMa[num/10];//分解顯示信息,
  50.                                                                                                                 //如要顯示68,則68/10=6  68%10=8  
  51.                                          TempData[1]=dofly_DuanMa[num%10];
  52.                                        
  53.                                         }
  54. }



  55.   void jia()
  56. {

  57. if(HW1==0)
  58. while(HW2==1)          Display(5,2);
  59. if(HW2==0)
  60. {
  61. num++;
  62. led=0;
  63. if(num==99)
  64. num=0;
  65. }
  66. while(HW2==0)          Display(5,2);
  67.        
  68. }



  69. void jian()
  70. {
  71.   if(HW2==0)
  72.         while(HW1==1)    Display(5,2);
  73.         if(HW1==0)
  74.         {
  75.         if(num>0)
  76.         num--;
  77.         led=0;
  78.         if(num==0)
  79.         num=0;
  80.         }
  81.         while(HW1==0) Display(5,2);
  82.        
  83. }



  84. void main()
  85. {  
  86.    while(1)
  87.         {
  88.                 led=1;
  89.                 if(HW1==0)
  90.                 jia();
  91.                 if(HW2==0)
  92.                 jian();
  93.                 disp();
  94.                 if(qing==0)
  95.                 num=0;
  96.                  Display(5,2);
  97. }

  98. }
復(fù)制代碼

所有資料51hei提供下載:
實(shí)驗(yàn)1.rar (167.92 KB, 下載次數(shù): 97)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:758310 發(fā)表于 2020-9-9 15:02 | 顯示全部樓層
hhhh,我打不開(kāi)了,不過(guò)還是謝謝樓主,我自己畫(huà)了
回復(fù)

使用道具 舉報(bào)

ID:620565 發(fā)表于 2020-9-10 17:15 來(lái)自手機(jī) | 顯示全部樓層
請(qǐng)問(wèn)樓主,那兩個(gè)非門(mén)起什么作用
回復(fù)

使用道具 舉報(bào)

ID:652783 發(fā)表于 2020-9-23 20:41 | 顯示全部樓層
有人能解釋一下這個(gè)圖形  步驟什么的么
回復(fù)

使用道具 舉報(bào)

ID:652783 發(fā)表于 2020-9-23 20:48 | 顯示全部樓層
請(qǐng)問(wèn)樓主 能對(duì)proteus圖進(jìn)行一下比較簡(jiǎn)單的解釋么
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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