使用ADC0809实现可调电阻两端电压的测量(显示为0-255变化),亲测可用。
初学水平有限,大家一起进步~
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- uchar code LEDData[]= //???????
- {
- 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
- };
- sbit OE = P1^0;
- sbit EOC = P1^1;
- sbit ST = P1^2;
- sbit CLK = P1^3;
- void DelayMS(uint ms) { //????
- uchar i;
- while(ms--)
- {
- for(i=0;i<120;i++);
- }
- }
- void Display_Result(uchar d) { //A/D????????
- P2 = 0xf7;
- P0 = LEDData[d%10];
- DelayMS(5);
- P2 = 0xfb;
- P0 = LEDData[d%100/10];
- DelayMS(5);
- P2 = 0xfd;
- P0 = LEDData[d/100];
- DelayMS(5);
- }
- void main() {
- TMOD = 0x02;
- TH0 = 0x14;
- TL0 = 0x00;
- IE = 0x82;
- TR0 = 1;
- P1 = 0x3f;
- while(1) {
- ST = 0;
- ST = 1;
- ST = 0;
- while(EOC == 0);
- OE = 1;
- Display_Result(P3);
- OE = 0;
- }
- }
- void Timer0_INT() interrupt 1 //????
- {
- CLK = !CLK;
- }
复制代码
所有资料51hei提供下载:
ADC0809.zip
(93.43 KB, 下载次数: 122)
|