北工大电子工程实验2闭环温控系统.doc

上传人:w****2 文档编号:6593781 上传时间:2020-02-29 格式:DOC 页数:4 大小:19KB
返回 下载 相关 举报
北工大电子工程实验2闭环温控系统.doc_第1页
第1页 / 共4页
北工大电子工程实验2闭环温控系统.doc_第2页
第2页 / 共4页
北工大电子工程实验2闭环温控系统.doc_第3页
第3页 / 共4页
点击查看更多>>
资源描述
#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#define 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;/定义一些变量,其中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,(unsigned char)(xdec/10);/将当前X十进制数十位显示到LED4 display(3,(unsigned char)(xdec%10);/将当前X十进制数个位显示到LED3if(adcont = 100)adcont = 0;/防止数码管显示的前两位变化过快adcont+; if(t=1000)t+;/延时程序,与delay()所不同,在延时的同时还能保证程序其他部分继续工作else for(i=4;i8;i+) /键盘 地址法 0x00040x0007 a=XBYTEi;/取键盘行值 a=a&0x1f;/将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 = !run;/将A设为启动AND停止键break;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;/显示电路子函数,通过变量控制数码管显示的位 else if(x=2) LED2=numy; else if(x=3) LED3=numy; else LED4=numy;
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑环境 > 建筑工程


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!