网站大量收购独家精品文档,联系QQ:2885784924

实验6--数字温测量系统设计实验说明.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验6--数字温测量系统设计实验说明

数字温度测量系统设计 热敏电阻 1个(25度时的阻值为100K) 100K欧可调电阻 若干 741/LM324运算放大器 若干 其他阻值电阻 若干 三、设计与验收要求(当场验收) 1、提前设计好电路,两组同学分别在第15、16周三晚上来实验室领取元件,进行电路焊接、调试; 2、在30度~70度之间,每间隔5度测一次,至少测5组数据; 3、显示的温度误差不超过1度; 4、将调试好的电路板贴上姓名和测试数据上交。 四、附加提高(有兴趣同学可以尝试,做出来验收通过者考核成绩加分) 不采用数字电压表,采用模数转换器、单片机及LED来完成温度的数字显示,有兴趣同学可近一步设计硬件电路,编写软件(提供参考软件附后),实现数字温度测量功能。 本次实验占总实验成绩的比重较大,请同学们认真做好本次实验。 数字温度测量参考程序 #include c8051f410.h // SFR declarations #define SYSCLK// SYSCLK frequency in Hz code unsigned char led_7[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; code unsigned char position[4]={0xfe,0xfd,0xfb,0xf7}; unsigned char dis_buff[4]; // 显示缓冲区 bit point_on,set_on,alarm_win; //小数点和闪烁标记 警告标记 sfr16 TMR2RL = 0xca; // Timer2 reload value sfr16 TMR2 = 0xcc; // Timer2 counter sfr16 ADC0 = 0xbd; // ADC0 result sfr16 ADC0LT =0xc5; //上限 sfr16 ADC0GT =0xc3; //下限 void display(void) { static char posit=0; P2 = 0xFF; P0 = led_7[dis_buff[posit]]; if (posit==2) //第二位小数点亮 P0 |= 0x80; P2 = position[posit]; if (++posit =4 ) posit = 0; } void i_to_disbuf(int v) // 电压值送显示缓冲区函数 { char i; //v=v/10; for (i=0;i=2;i++) { dis_buff[i] = v%10; v=v/10; } dis_buff[3]=v; } void Timer2_Init (void) //16-bit auto-reload,100uS { TMR2CN = 0x00; // Stop Timer2; Clear TF2; // use SYSCLK as timebase, 16-bit auto-reload CKCON = 0x30; // select SYSCLK for timer 2 source TMR2RL = - (SYSCLK / 10000); // init reload value for 100uS TMR2 = 0xffff; // set to reload immediately TR2 = 1; // start Timer2 ET2 = 1; // Timer2 interrupt enabled } void Timer2_ISR (void) interrupt 5 { static char time_4ms_ok=0; static char counter=0; counter++; if(counter==40) { display(); // LED 扫描显示 4ms一次 counter=0; time_4ms_ok++; if (time_4ms_ok==125)//500ms到了,警告闪烁 { time_4ms_ok=0; } } TF2H = 0; } void ADC0_Init (void) { ADC0CN =0x03; // ADC0 disabled, normal tracking, // conversion triggered on TMR2 overflow REF0

文档评论(0)

vtangojia + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档