这是我基于C语言写的模数转换代码,其中包含硬件的Proteus图和源代码。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <reg51.h>
- #define uchar unsigned char
- #define uint unsigned int
- sbit ST=P2^6;
- sbit OE=P2^1;
- sbit EOC=P2^0;
- sbit TP=P2^7;
- uchar data led[4];
- uint data date;
- int q=0;
- int w;
- uchar code weixuan[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
- uchar code a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- uchar code b[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd};
-
- void delay(unsigned int n)
- {
-
- unsigned int i=0,j=0;
- for(i=0;i<n;i++)
- for(j=0;j<123;j++);
- }
-
- void display()
- {
- uchar k,i;
- q++;
- q=q%2;
-
- led[0]=(date*100/51)%10;
- led[1]=(date*100/51)/10%10;
- led[2]=(date*100/51)/100%10;
- if(q==0) {
-
- for(k=0;k<3;k++)
- {
- P3=weixuan[k];
- i=led[k];
-
- if(k==2)
- P1=b[i];
- else
- P1=a[i];
- delay(1);
-
- }
- }
- if(q==1)
- {
-
- for(k=0;k<3;k++)
- {
- P3=weixuan[k+5];
- i=led[k];
-
- if(k==2)
- P1=b[i];
- else
- P1=a[i];
- delay(1);
-
- }
- }
- }
- void main()
- {
- TP=0;
- while(1)
- {
- TP=~TP;
- ST=1;
- ST=0;
- while(EOC==0);
- OE=1;
- date=P0;
- OE=0;
- delay(10);
- display();
-
-
-
- }
- }
复制代码
所有资料51hei提供下载:
5.2模数转换.rar
(99.05 KB, 下载次数: 24)
|