首页 > 微机单片机 >单片机制作 > 用打印机端口做可编程频率发生器电路

用打印机端口做可编程频率发生器电路

来源:互联网发布者:张三叔 更新时间: 2018/04/15

用打印机端口做可编程频率发生器电路 #include #include #include #include #include #define CLK1 0x04 /* Clock Pulse High*/ #define CLK0 0xfb /* Clock Pulse Low*/ #define CS1 0x01 /* 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,dport,ACTUALDATA,out,k; /*Global Declarations*/ float VOUT;/*DAC 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) %26;amp; 0x1; } float ftov() /*Hertz to DAC output Conversion Routine*/ { int HERTZ; printf("\n \nEnter the frequency within 0 to 10000Hz:"); scanf("%d",%26;amp;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%26;amp;=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%26;amp;=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; outportb(dport,out); printf("%d",c); delay(1); CLOCK_DAC(); } out|=CS1; outportb(dport,out); delay(1); } main() { int v,inc; float y; unsigned int 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, %26;amp;integer); if (fraction<0.44) inc=0; els
提问/讨论 常见疑问?

这里还没有内容,您有什么问题吗?

我要提问/讨论

推荐帖子 最新更新时间:2024-11-13 06:10

分享蓝牙音箱/智能穿戴 手势识别传感器
本帖最后由 jameswangsynnex 于 2015-3-3 19:50 编辑 ISSI Sensor IC 应用于蓝牙音箱/耳机,通过红外发射接收原理,进行手势识别操作 分享蓝牙音箱/智能穿戴 手势识别传感器 您好!我是科美欧认证检测公司的黄先生(Jacky),科美欧
 janbe移动便携
CircuitPython 发布 4.0.2 版
作为micropython目前最重要的分支,CircuitPython 发布了 4.0.2 版,这是4.x的第二个错误修复版本。 自4.0.1以来的新修复 修复导致崩溃的根显示组的错误gc。感谢@dhalbert和@ATMakersBill 修复gamep
 dcexpertMicroPython开源版块
【DIY湿度计】打样的板子回来了
速度很快啊,板子如下: 购买器件后就可以给大家快递了,hoho 【DIY湿度计】打样的板子回来了 哈哈 赞速度 :P 期待中~~~~ 质量和价格还过得去的话,向大家多推荐推荐。 呵呵,打样速度蛮快的 嘿嘿,不错,漂亮 :P 不错。期待 哪里做的板子,速度很快.不知道质量咋
 EEWORLD社区DIY/开源硬件专区
DigiKey“智造万物,快乐不停”创意大赛:基于Arduino Uno R4智能床头灯——WiFi版本
基于Arduino Uno R4智能床头灯具体内容可参考: https://bbs.eeworld.com.cn/forum.php?mod=viewthread&tid=1269690&page=1&extra= 系统框架: 产品实物: 云
 eew_cT3H5dDigiKey得捷技术专区
恒压BUCK电感的计算有些困惑
恒压BUCK电感的计算有些困惑,要求输入电压范围176-265Vac,输出9V/1A,效率91%,磁芯选用EE10,算出的结果96圈,145uH,实际测试发现输出正常,但二极管和电感的温度很高,而且效率只有60左右,加大磁芯效率和温度也没什么变化。根据输入输出要求,实际占空比只
 cpfpost开关电源学习小组
C6678网口初始化失败
C6678的网络协处理器NETCP模块有两个对外千兆网口,但PDK提供的网口驱动示例只支持单网口,需要做修改。采用多核导航器描述符中的一个字段来区分两个网口完成了这一任务。使用了几个月后没有出现大的问题。然而某一天当工程的优化属性配置为O3优化时,网口启动有一定概率失败。
 AguileraDSP 与 ARM 处理器

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

EEWORLD 电路图 站点相关: 下载中心 Datasheet 参考设计

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved