#include#include#include#include#include#define CLK1 0x04 /* Clock Pulse High*/#define CLK0 0xfb /* Clock Pulse Low*/#define CS10x01 /* Chip Select high to deactivate DAC*/#define CS0 0xfe /* Chip Select low to activate DAC*/#define DATA1 0x02 /* Data Pulse High*/#define DATA0 0xfd /* Data Pulse low*/int c[16],dport,ACTUALDATA,out,k;/*Global Declarations*/float VOUT;/*DAC OUTPUT-p.htm" target="_blank" title="OUTPUT貨源和PDF資料">OUTPUT*/void d2b(unsigned int x, int*c)/*Routine for Decimal to Binary Conversion*/{int i;for(i=0;i<=15;i )*(c )=(x>>i) & 0x1;}float ftov()/*Hertz to DAC output Conversion Routine*/{int HERTZ;printf("\n \nEnter the frequencywithin 0 to 10000Hz:");scanf("%d",&HERTZ);VOUT=0.00040955*HERTZ;printf("\n VOUT=%f\n",VOUT);return VOUT;}void CLOCK_DAC(void)/*Routine for clocking the DAC*/{out|=CLK1;outportb(dport,out);/*Setting the clock high*/delay(1);out&=CLK0;outportb(dport,out);/*Setting the clock low*/delay(1);}void LOAD_DACDATA(int*c)/*Routine for loading actual data into the DAC*/{out|=CS1;outportb(dport,out);/*Chip Select high to disable DAC*/delay(1);out&=CS0;outportb(dport,out);/*Chip Select low to enable DAC*/delay(1);printf("\nDATA loaded into the DAC=");for(k=15;k>=0;k--){out|=c[k];outportb(dport,out);printf("%d",c[k]);delay(1);CLOCK_DAC();}out|=CS1;outportb(dport,out);delay(1);}main(){int v,inc;float y;unsignedint x;double fraction, integer, number;clrscr();printf("\tUse Your Printer Port as a Programmable Frequency Generator");printf("\n\t\t\t by\n");printf("\tK.Suresh,MSD,IGCAR,Kalpakkam,TamilNadu-603102,India");dport= peek(0x40,8);/*Check up for availability of Printer Port*/if (dport==0){printf("\n\n LPT NOT AVIAILABLE! EXITING........");exit(1);}printf("\n\nAddress of the printer port found =0x%X",dport);ftov();y=(VOUT*8192)/(2.5*1.6384);v=y/1;number=y;fraction = modf(number, &integer);if (fraction<0.44)inc=0;else inc=1;ACTUALDATA=16384 v inc; /*Actual data including the Control Word for DAC*/d2b(ACTUALDATA,c);LOAD_DACDATA(c);return 0;}
單片機(jī)相關(guān)文章
更多 >>- 納祥科技NX6806 一款國(guó)產(chǎn)替代PCF8591的單
- 基于可見(jiàn)光定位技術(shù)的智能車導(dǎo)航系統(tǒng)設(shè)計(jì)
- Microchip推出PIC18-Q24 系列單片機(jī)
- 一種低功耗電流/頻率轉(zhuǎn)換電路零偏補(bǔ)償方法
- 板卡上電時(shí)序控制系統(tǒng)的設(shè)計(jì)和仿真
- 掃盲:?jiǎn)纹瑱C(jī)的I/O口驅(qū)動(dòng)的作用分析
- 教程:如何用51單片機(jī)實(shí)現(xiàn)交通信號(hào)燈
- 教程:基于51單片機(jī)的矩陣鍵盤(pán)設(shè)計(jì)