ADC0809做AD转换地C程序 .doc

ADC0809做AD转换地C程序 .doc

ID:52523660

大小:40.50 KB

页数:6页

时间:2020-03-28

ADC0809做AD转换地C程序 .doc_第1页
ADC0809做AD转换地C程序 .doc_第2页
ADC0809做AD转换地C程序 .doc_第3页
ADC0809做AD转换地C程序 .doc_第4页
ADC0809做AD转换地C程序 .doc_第5页
资源描述:

《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语句产生锯齿波波形数

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。