北工大电子工程设计报告(小型温度控制系统)(6)

2019-04-21 19:44

电子工程设计Ⅱ实验报告 120231班14组

附录

附录一、环境温度显示源程序

#include \#include \

#include \#include \

#define DP1 XBYTE[0x0000] #define DP2 XBYTE[0x0001] #define DP3 XBYTE[0x0002] #define DP4 XBYTE[0x0003] #define CS1 XBYTE[0x2000] #define TIMER 0x8000

unsigned char data table1[]={0x10,0xF9,0x0A,0x09,0xE1,0x05,0x04,0xD9,0x00,0x01}; unsigned char data table2[]={0x04,0xAF,0xC0,0x82,0x23,0x12,0x10,0x8F,0x00,0x02}; unsigned char data table3[]={0x40,0xF5,0x82,0x81,0x31,0x09,0x08,0xE5,0x00,0x01}; unsigned char data table4[]={0x04,0xEE,0x58,0x4A,0xAA,0x0B,0x01,0x6E,0x00,0x02}; void delay(void);

void display(unsigned int x,unsigned int y); void main(void) { unsigned int x,y=0,z=0,num=0; Init_Device();

DP1=DP2=DP3=DP4=0xFF;

while(1) { CS1=x; delay(); x=CS1; delay(); if(x==255) { display(1,1); display(2,0); display(3,0); } else{ x=(x*100)/255; display(1,0) ;

y=x/10;num=3;display(num,y); delay();

25

电子工程设计Ⅱ实验报告 120231班14组

z=x;num=4;display(num,z); delay(); } } }

void display(unsigned int x,unsigned int y) { if(x==1) DP1=table1[y];

else if(x==2) DP2=table2[y]; else if(x==3) DP3=table3[y]; else DP4=table4[y]; }

void delay(void) {

unsigned int i;

for(i=0;i

附录二、温度闭环控制源程序

#include \#include \#include \#define XBYTE[0x0000]

#define XBYTE[0x0001]

#define XBYTE[0x0002]

#define XBYTE[0x0003]

#define XBYTE[0x2000]

#define

XBYTE[0x4000]

#define

KEY_WR

XBYTE[0x0005]

DP1

#define

KEY_RD

XBYTE[0x0004]#define TIMER

DP2 0x8000

#include \

DP3

Unsigned

char

table[]={0xC0,0xF9,0xA4,0xB0,0x99,0

DP4 x92,0x82,0xF8,0x80,0x90};

unsigned

char

C2 table_doc[]={0x40,0x79,0x24,0x30,0x1

9,0x12,0x02,0x78,0x00,0x10};

CS2

26

电子工程设计Ⅱ实验报告 120231班14组

unsigned char convert(unsigned

char a);

unsigned char key_scan(void); void delay(void); void main(void) { Init_Device();

DP1=DP2=DP3=DP4=0xFF;

CS2=0x81;

while(1){ /*测温程序段*/ DP3=DP4=0xFF; r=0; e=0;

C2=dr;

delay(); dr=C2;

delay();

dr=dr*100/255; hr=dr/10; lr=dr; if(hr>9) {hr=9;

if(lr<1) lr=9;}

display(hr,lr); delay();delay();delay(); /*测温程序段*/

unsigned char num1,num2; unsigned char dp[4]; unsigned char output,input; signed char dnum;

DP1=DP2=DP3=DP4=0xff; Init_Device(); aa:keyboard(dp);//Set and

display the aimed temperature

num1=dp[3]*10+dp[4];

do{

C1=input; delay();

input=C1; num2=(input*100)/256;

display(1,num2/10);

display(2,num2);//Display current temperature

dnum=num1-num2; if(dnum>0) {

if(dnum>1) output=255;

else output=128-dnum; } else {

if(dnum<-1) output=0; else output=128-dnum; }

25

电子工程设计Ⅱ实验报告 120231班14组

C2=output;//Output C2

}while(dnum!=0); goto aa; } } }

unsigned char keyboard(unsigned char *dp)

{

unsigned col,row,r_state,temp,c,i=1;

int key; do {

key=0x0004;

for(row=0;row<4;row++,key++)

{

c=XBYTE[key]; if(r_state=~c&0x1f) {

for(col=0,temp=0x01;col<4;++col,temp=temp<<1)

if((r_state&temp)!=0) {

i++;

if(keymatrix[row][col]=='A') return 0;

26

dp[3+i%2]=keymatrix[row][col];

display(3+i%2,keymatrix[row][col]);

delay();delay();delay();delay(); delay();delay();delay();delay(); } } } }while(1); }

char

unsigned char key_scan(void) {

unsigned

char

l_val,r_val,r_state,temp,conter,x,c;

unsigned char re_key=0; unsigned int tab=0;

int key;

Init_Device(); while(1) {

key=0x0008;

for(x=1;x<5;x++,key=key+2)

{

c=XBYTE[key]; if(r_state=~c&0x1f) {

电子工程设计Ⅱ实验报告 120231班14组

{

unsigned char ret; switch(a) {

case 11: ret=0;break;

case 12: ret=1;break; case 13: ret=2;break; case 14: ret=3;break; case 21: ret=4;break; case 22: ret=5;break;

for(conter=1,temp=0x01;conter<6;+

+conter,temp=temp<<1)

if((r_state&temp)!=0)

{

r_val=conter;

l_val=x;

re_key=10*l_val+r_val; tab=1;

break; case 23: ret=6;break;

case 24: ret=7;break; case 31: ret=8;break; case 32: ret=9;break; default: break;

} } if(tab==1)

{

} return ret; }

void delay(void)

{ unsigned long int i; for(i=0;i<0x8000;++i) ; } void

display(unsigned

char

break; }

}

if(tab==1)

{ break; }

} }

unsigned char convert(unsigned char a)

27

x,unsigned char y)

{

DP1=table1[x];

DP2=table2[y];

return re_key;

}

电子工程设计Ⅱ实验报告 120231班14组

void delay(void) {

unsigned char data i,j;

for(i=0;i

附录三、参考文献

1、《模拟电子技术基础》 童诗白 清华大学出版社 2010年11月 2、《数字电子技术》 江捷 机械工业出版社 2010年10月 3、《电子工程设计训练任务书》 北京工业大学出版社 2012年9月

28


北工大电子工程设计报告(小型温度控制系统)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:视觉传达艺术设计专业毕业实习报告范文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: