找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

我想尋找單片機數(shù)數(shù)的完美解決方案

[復(fù)制鏈接]
ID:17979 發(fā)表于 2009-11-11 18:31 | 顯示全部樓層 |閱讀模式

      我是一個大三的學(xué)生,剛學(xué)單片機:自己的實驗板有5個數(shù)碼管,我想實現(xiàn)計數(shù)(數(shù)數(shù))的功能,就是說個位開始數(shù)0-9(其他位不點亮),然后進位十位點亮,一直這樣直到99999. 可是,這個程序我想破頭也想不出來。我希望可以寫一個函數(shù)void jishu(uint a){}; 把a參數(shù)傳進去,然后就可以在數(shù)碼管顯示,然后只要不停對a加1就可以了,可是,怎么可以把a這個數(shù)顯示在數(shù)碼管上呢??哥哥姐姐們可以教教我嗎??

 

    void jishu(uint a)      //在數(shù)碼管顯示a

    {/*不懂實現(xiàn)嗚嗚

       哥哥姐姐幫幫忙

       O(∩_∩)O謝謝

    */

 

 

    };

回復(fù)

使用道具 舉報

ID:1 發(fā)表于 2009-11-11 19:04 | 顯示全部樓層

你可到專區(qū)看看51hei板子的程序撒

回復(fù)

使用道具 舉報

ID:16785 發(fā)表于 2009-11-11 21:55 | 顯示全部樓層

首先要搞清楚 數(shù)碼管的的管教是怎么接在單片機的管腳上的;然后才能編寫出程序

你這樣不放出電路圖  別人沒辦法給你程序

回復(fù)

使用道具 舉報

ID:17922 發(fā)表于 2009-11-12 10:25 | 顯示全部樓層

這個是四位的數(shù)碼管點亮程序,接P0口

五位只要套個循環(huán)即可,程序中的b[N]

N一定要比循環(huán)大一,自己也不明白為什么會這樣

大家研究研究。

#include<reg52.h>
int a[9];

int c[3];

delay()//延時函數(shù)
{
 int i;
for(i=0;i<=355;i++)
;
}

 


int zs10_j(int i)//十的指數(shù)函數(shù)
{
int j=1;
for(;3-i!=0;i++)
{
 j*=10;
}
return j;
}

 


 
main()
 {
 int i, b[5];

 c[0]=0x7f;//位置表格
c[1]=0xbf;
c[2]=0xdf;
c[3]=0xef;


a[1]=0xf9;//數(shù)據(jù)顯示表格

a[2]=0xa4;
a[3]=0xb0;
a[4]=0x99;
a[5]=0x92;
a[6]=0x82;
a[7]=0xf8;
a[8]=0x80;
a[9]=0x90;


for(b[0]=0;b[0]<=9;b[0]++)//最高位
 for(b[1]=0;b[1]<=9;b[1]++)//次高位
  for(b[2]=0;b[2]<=9;b[2]++)//次低位
   for(b[3]=0;b[3]<=9;b[3]++)//低位
     for(i=0;i<100;i++)
    for(b[4]=0,P3=0xef;b[4]<=3;b[4]++)//定位計數(shù)函數(shù)
    {
       if (b[0]*1000+b[1]*100+b[2]*10+b[3]>zs10_j(b[4]))//顯示零或不顯示零(零是點亮位的還是待點亮位的)的判斷條件
     a[0]=0xc0;
     else
     a[0]=0xff;
     P0=a[b[b[4]]];?
     delay();
     P0=0xff;
     P3=(P3<<1)+0x01;
     
     }
 }

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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