<var id="fnfpo"><source id="fnfpo"></source></var>
<rp id="fnfpo"></rp>

<em id="fnfpo"><object id="fnfpo"><input id="fnfpo"></input></object></em>
<em id="fnfpo"><acronym id="fnfpo"></acronym></em>
  • <th id="fnfpo"><track id="fnfpo"></track></th>
  • <progress id="fnfpo"><track id="fnfpo"></track></progress>
  • <tbody id="fnfpo"><pre id="fnfpo"></pre></tbody>

  • x
    x

    用打印機端口做可編程頻率發生器電路

    發布時間:2011-6-22 11:50    發布者:circuit_share
    關鍵詞: 打印機 , 頻率發生器


    #include<stdio.h>
    #include<conio.h>
    #include<math.h>
    #include<bios.h>
    #include<dos.h>
    #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;
    }
    本文地址:http://www.portaltwn.com/thread-69288-1-1.html     【打印本頁】

    本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
    您需要登錄后才可以發表評論 登錄 | 立即注冊

    廠商推薦

    • Microchip視頻專區
    • EtherCAT®和Microchip LAN925x從站控制器介紹培訓教程
    • MPLAB®模擬設計器——在線電源解決方案,加速設計
    • 讓您的模擬設計靈感,化為觸手可及的現實
    • 深度體驗Microchip自動輔助駕駛應用方案——2025巡展開啟報名!
    • 貿澤電子(Mouser)專區
    關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
    電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
    快速回復 返回頂部 返回列表
    精品一区二区三区自拍图片区_国产成人亚洲精品_亚洲Va欧美va国产综合888_久久亚洲国产精品五月天婷