ADC032.rar

  • PUDN用户
    了解作者
  • C/C++
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 3
    下载次数
  • 2010-09-21 14:23
    上传日期
ADC0832 用于采集0-5V直流信号 转换为8位二级制
ADC032.rar
  • ADC与74HC163实验板(优).txt
    2KB
内容介绍
#include<reg51.h> #include<string.h> #include<stdio.h> #include"intrins.h" #define uchar unsigned char #define nop() _nop_(); sbit DAT=P0^6; //模拟串口数据发送端 sbit CLK=P0^7;//模拟时钟控制端 sbit p0_0=P0^0; sbit p0_1=P0^1; sbit p0_2=P0^2; sbit p0_3=P0^3; uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9,-,全灭 sbit clk1=P2^4; sbit data_i=P2^2; sbit data_o=P2^3; sbit cs=P2^5; unsigned char m,n,x,y; uchar read_adc(void) { uchar i,ch=0; cs=0; data_i=1; clk1=1; nop(); nop(); clk1=0; nop(); nop(); clk1=1; nop(); nop(); clk1=0; nop(); nop(); clk1=1; nop(); nop(); clk1=0; nop(); nop(); for (i=0; i<8; i++) { clk1=1; nop(); nop(); clk1=0; nop(); nop(); ch=(ch<<1)|data_o; } cs=1; m=ch; n=m/100; y=m%10; m=m/10; x=m%10; m=0; return(ch); } void sendbyte(uchar byte) { uchar num,c; num=tab[byte]; for(c=0;c<8;c++) { CLK=0; DAT=num&0x80; CLK=1; num<<=1; } } void delay_50ms(unsigned int t) { unsigned int j; for(;t>0;t--) for(j=101;j>0;j--) {;} } unsigned char ad; void main(void) { unsigned char w=6; TMOD=0x01; //T0,工作方式1 TH0=0xb1; //20ms定时 TL0=0xe0; TR0=1; //开启T0定时器 ET0=1; //允许T0定时器中断 EA=1; //开启总中断允许 while(1) { delay_50ms(1); P0=0xff; for(;w==0;) { p0_0=0; sendbyte(m); w=7; } for(;w==2;) { p0_1=0; sendbyte(n); w--; } for(;w==4;) { p0_2=0; sendbyte(x); w--; } for(;w==6;) { sendbyte(y); p0_3=0; w--; } w--; } } void time0(void) interrupt 1 { TH0=0xb1; TL0=0xe0; ad=read_adc(); P1=ad; }
评论
    相关推荐