首页 2051比較器模擬AD

2051比較器模擬AD

举报
开通vip

2051比較器模擬AD /* io分配: * ;* OUTPUT: * ;* P1.0 ...... 模拟量输入 * ;* P1.1 ...... DA输入比较基准电压 * ;* P1.2~7..... R-2R DA电阻网络 * ;* P3.7 ...... LED 模拟亮度输出 * ;* CPU CLOCK EQU 6M */ //xiaoqi last edit in 2001.11 //#pragma src #i nclude "AT89x051.h" #i nclude #i nclude #i nclude /...

2051比較器模擬AD
/* io分配: * ;* OUTPUT: * ;* P1.0 ...... 模拟量输入 * ;* P1.1 ...... DA输入比较基准电压 * ;* P1.2~7..... R-2R DA电阻网络 * ;* P3.7 ...... LED 模拟亮度输出 * ;* CPU CLOCK EQU 6M */ //xiaoqi last edit in 2001.11 //#pragma src #i nclude "AT89x051.h" #i nclude #i nclude #i nclude //变量类型标识的宏定义,大家都喜欢这么做 #define Uchar unsigned char #define Uint unsigned int #define Ledlight() (P3 &= 0x7f) #define Leddark() (P3 |= 0x80) sbit P36 = P3^6; // 比较器内部判断脚 sbit LED = P3^7; // 一个发光二级管观察亮度变化 // 内部标志位定义 bit less; // 比较是否大于 1.小于,0.大于 // 全局变量定义 Uchar timer1, // 通用延时计数器 timer2, // 按键蜂鸣器反应定时器 adcdata, // ad转换变量 pwm1; // PWM输出比例 // 函数列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf void DelayMs(unsigned int number); // 毫秒延时 void timers0(); // 在定时器中断中做数码管的扫描显示 (ct0) void Initall(void); // 系统初始化 void timers1(void); // TC1定时器中断用于扫描显示与键盘 Uchar adcread(void); // adc转换程序 void main(void) using 0 { DelayMs(120); Initall(); pwm1 = adcread(); LED=1; while(1) { pwm1 = adcread(); timer2=10; while (timer2); } } // 毫秒延时 void DelayMs(unsigned int number) { unsigned char temp; for(;number!=0;number--) for(temp=112;temp!=0;temp--); } /************************************* 在定时器中断中做LED的PWM输出 *************************************/ void timers0() interrupt 1 using 1 { TH0 = 0xff; TL0 = 0xd0; timer1--; if (timer1==pwm1)LED=0; if (timer1==0){ LED=1; timer1=0x40; timer2--; }; } /**************** ;* 6位 ADC转换 ;****************/ Uchar adcread(void) { Uchar i=0x3f,temp=0; P36 =1; P1 = 3; _nop_();_nop_(); // 从零开始 while ((i--)&& (P36)) { temp += 4; P1 = temp|3; _nop_(); } temp >>= 2; return temp; } /**************** ;* 系统初始化 ;****************/ void Initall(void) { TMOD = 0x11; // 0001 0001 16进制计数器 IP = 0x8; // 0000 1000 t1优先 IE = 0x8A; // 1000 1010 t0,t1中断允许 TCON = 5; // 0000 0101 外部中断低电平触发 TR0 = 1; // 打开定时器中断,IE中已经打开,在明示一下 TR1 = 0; ET0 = 1; ET1 = 0; P1 = 0xff; } /************************************* TC1定时器中断用于扫描显示与键盘 (ct1) *************************************/ void timers1(void) interrupt 3 using 2 { _nop_(); //实验中没有启用 }
本文档为【2051比較器模擬AD】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_819896
暂无简介~
格式:pdf
大小:78KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2012-11-25
浏览量:19