您的位置 首页 电源

ADC0804+LED数码管显现模仿值0~255

includereg52h>defineuintunsignedintdefineucharunsignedcharsbitrd=P3^7;sbitwr=P3^6;sbitcs0=P3^5;sb

#include#define uint unsigned int #define uchar unsigned charsbit rd=P3^7;sbit wr=P3^6;sbit cs0=P3^5;sbit hc=P3^4;void delay(uint );void format0804();void display(uchar aa );unsigned char code  table1[]=   //共阳段码操控{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40}; unsigned char code   dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; //位选操控   查表的办法操控 uchar aa,adc0804;void main(){  //uint adc0804;cs0=0;P1=0xff;//为P1口读取数据做准备,与P1口相连的某个引脚若为低,则P1相应位被拉低,hc=1; //以此来读取数据while(1){ /*wr=1;delay(1);wr=0;rd=1;delay(1);wr=1;rd=0;adc0804=P1;//依据时序DAC0804时序图,只能在些读取其输出值delay(1);rd=1;delay(1); */format0804();adc0804=P1;   //在rd=0才干读取P1口状况,display(adc0804); }  }void delay(uint z){uint j;for(z;z>0;z--)for(j=110;j>0;j--);}void format0804(){wr=1;//delay(1);wr=0;wr=1;//依据时序ADC0804时序图,只要wr端存在上升沿就可读取模仿值rd=1;//delay(1);rd=0;   //依据时序ADC0804时序图,只要rd低电平时才干向外发送信号//adc0804=P1;//delay(1);//rd=1;}  void display(uchar aa){uchar ledout[10],i;ledout[0]=table1[aa%10000/1000];    //千位ledout[1]=table1[aa%1000/100];  //百位带小数点ledout[2]=table1[aa%100/10];     //十位ledout[3]=table1[aa%10];             //个位for(i=0;i<4;i++){P2=dispbit[i];//位选 先位选再段选P0=ledout[i]; //段码delay(1);}} 

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/255296.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部