北工大电子工程实验2闭环温控系统(参考模板)_第1页
北工大电子工程实验2闭环温控系统(参考模板)_第2页
北工大电子工程实验2闭环温控系统(参考模板)_第3页
北工大电子工程实验2闭环温控系统(参考模板)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、传播优秀Word版文档 ,希望对您有帮助,可双击去除!#include C8051F020.h#include absacc.h#include data_define.c#define AD XBYTE0x2000/AD模块入口地址为CS1(即片选为CS1)#define DA XBYTE0x4000/AD模块入口地址为CS2#define LED1 XBYTE0x0000/显示电路入口地址为CS0,数码管从左到右对应地址为0003到0000#define LED2 XBYTE0x0001#define LED3 XBYTE0x0002#define LED4 XBYTE0x0003#def

2、ine TIMER 0x80/定义变量TIMER的值#include Init_Device.c/引入库函数unsigned char num=0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90,0xff;/做数组将二进制数转换为数码管(共阳极接法)能显示的数字,0到9以及全灭void display(unsigned int x,unsigned int y);/子函数声明void delay(void);/子函数声明void main(void) unsigned char i,j,a,temp,x,xdec,keynum;/定义一些变量,

3、其中xdec为x所对应十进制数unsigned char input = 2;unsigned char run = 0;unsigned char shiwei,gewei;unsigned char target = 25;unsigned long t = 100000;unsigned adcont = 0; Init_Device(); LED1=LED2=LED3=LED4=0xff;/将数码管各位全灭while(1) AD=0; delay(); x=AD; delay();/AD转换xdec=x*100.0/255;/将x转化为十进制数if(adcont = 1)display

4、(4,(unsigned char)(xdec/10);/将当前X十进制数十位显示到LED4 display(3,(unsigned char)(xdec%10);/将当前X十进制数个位显示到LED3if(adcont = 100)adcont = 0;/防止数码管显示的前两位变化过快adcont+;1 / 4传播优秀Word版文档 ,希望对您有帮助,可双击去除! if(t=1000)t+;/延时程序,与delay()所不同,在延时的同时还能保证程序其他部分继续工作else for(i=4;i8;i+) /键盘 地址法 0x00040x0007 a=XBYTEi;/取键盘行值 a=a&0x1f

5、;/将A取反 for(j=0,temp=1;j= 0 & keynum = 9)/当键盘输入0至9之间的数时,进行之后的操作switch(input)case 2:shiwei = keynum;display(2,keynum);/将键盘输入数的十位显示到LED2input-;break;case 1:gewei = keynum;display(1,keynum);/将键盘输入数的各位显示到LED1input-;target = shiwei*10+gewei;/求出目标温度break;default:break;elseswitch (keynum)case 0x0a:run = !ru

6、n;/将A设为启动AND停止键break;传播优秀Word版文档 ,希望对您有帮助,可双击去除!case 0x0b:input = 2;shiwei = 0;gewei = 0;display(2,10);display(1,10);/将B设为清零键,此时可重新输入目标温度十位和个位,并且数码管后两位灯灭break;default:break; temp=temp1; if(run)/当启动键A按下后,开始进行乒乓算法if(xdectarget)DA = 0x00;/当前温度大于目标温度时,降温elseDA=0x80;/当前温度等于目标温度时,保持当前温度elseDA = 0x80;/停止键A按下后,目标恢复到室温 void delay(void) unsigned int i; for(i=0;iTIMER;+i);/延迟子函数void display(unsigned int x,unsigned int y)if(x=1)LED1=numy;/显示电路子函数,通过变量控制数码管显示的位 els

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论