欢迎来到天天文库
浏览记录
ID:52523660
大小:40.50 KB
页数:6页
时间:2020-03-28
《ADC0809做AD转换地C程序 .doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、ADC0809做AD转换的C程序#includeunsignedcharcodedispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedchardispbuf[4];unsignedinti;unsignedintj;unsignedchargetdata;unsignedinttemp;unsignedinttemp1;unsignedcharcount;unsignedchard;sbitST=P
2、3^0;sbitOE=P3^1;sbitEOC=P3^2;sbitCLK=P3^3;sbitP34=P3^4;sbitP35=P3^5;sbitP36=P3^6;sbitP20=P2^0;sbitP21=P2^1;sbitP22=P2^2;sbitP23=P2^3;sbitP17=P1^7;voidTimeInitial();voidDelay(unsignedinti);//voidTimeInitial(){TMOD=0x10;TH1=(65536-200)/256;//定时时间为2us,亦即CLK周期为
3、0.4usTL1=(65536-200)%256;EA=1;ET1=1;TR1=1;}voidDelay(unsignedinti)//延时函数{unsignedintj;for(;i>0;i--){for(j=0;j<125;j++){;}}}voidDisplay()//{P1=dispbitcode[dispbuf[3]];//十位P20=0;P21=1;P22=1;P23=1;Delay(10);P1=0x00;P1=dispbitcode[dispbuf[2]];//个位P17=1;//显示小数点P
4、20=1;P21=0;P22=1;P23=1;Delay(10);P1=0x00;P1=dispbitcode[dispbuf[1]];//十分位P20=1;P21=1;P22=0;P23=1;Delay(10);P1=0x00;P1=dispbitcode[dispbuf[0]];//百分位P20=1;P21=1;P22=1;P23=0;Delay(10);P1=0x00;}voidmain()//主函数{TimeInitial();while(1){ST=0;//关闭转换OE=0;//关闭输出ST=1;/
5、/开启转换ST=0;//关闭转换P34=0;//选择通道0P35=0;P36=0;while(EOC==0);//判断是否转换结束:是则执行以下语句,否则等待OE=1;//开启数据输出允许getdata=P0;//将数据取走,存放在变量getdata中OE=0;//关闭输出temp=getdata*1.0/255*500;//电压值转换,5V作为参考电压,分成256份dispbuf[0]=temp%10;//百分位dispbuf[1]=temp/10%10;//十分位dispbuf[2]=temp/100%1
6、0;//个位dispbuf[3]=temp/1000;//十位Display();}}voidt1(void)interrupt3using0//定时器中断服务函数;作用:产生CLK信号{TH1=(65536-200)/256;TL1=(65536-200)%256;CLK=~CLK;}AD7524做D/A转换的C程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all
7、;entityAD7524isport(clk:instd_logic;--系统时钟rst:instd_logic;--复位信号ile:outstd_logic;--数据锁存允许信号cont:outstd_logic;--控制信号(WR1、WR2、CS、Xfer)data_out:outstd_logic_vector(7downto0));--波形数据输出endAD7524;architecturebehavofAD7524issignalq:integerrange0to63;--计数器signaldat
8、a:std_logic_vector(7downto0);--波形数据Beginprocess(clk)beginifrst='1'thenq<=0;--复位,对计数器q清零elsifclk'eventandclk='1'thenifq=63thenq<=0;--此IF语句对系统时钟进行64分频ifdata="11111111"thendata<="00000000";--此IF语句产生锯齿波波形数
此文档下载收益归作者所有