C语言版AD转换编程及仿真
单片机源程序如下:
- #include<reg51.h>
- sbit EOC=P2^0;
- sbit START=P2^1;
- sbit OE=P2^2;
- sbit ALE=P2^3;
- sbit CLK=P2^4;
- void AD(void);
- void delay();
- void INT_T0(void);
- //共阳极字型码
- const unsigned char a[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,};
- //共阴极字型码
- //const unsigned char a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x07,0x07,0x7F,0x6F,};
- int i,ms,adc,c,H=1,L=1;
- void INT_T0() //方波
- {
- TMOD=0X02;
- TH0=0X56;
- TL0=0X56;
- IE=0X82;
- ET0=1;
- TR0=1;
- }
- void delay(int ms)
- {for (i=0;i<=ms;i++) {;}
- }
-
- void AD()
- {
- START=0;
- delay();
- START=1;
- delay();
- START=0;
- while(!EOC) {;}
- OE=1;
- adc=P0;
- OE=0;
- }
-
- void timer_0() interrupt 1
- {
- TH0=0X56;
- TL0=0X56;
- CLK=~CLK; //时钟状态翻转
- }
- main()
- {
- INT_T0();
- while(1)
- {
- AD();
- H=adc/50;
- L=adc%50/5;
- P3=a[H];
- P1=a[L];
- }
- }
复制代码
所有资料51hei提供下载:
C语言AD转换(静态显示).rar
(104.34 KB, 下载次数: 15)
|