空调温度控制器设计文档格式.docx

上传人:b****5 文档编号:19457250 上传时间:2023-01-06 格式:DOCX 页数:21 大小:20.89KB
下载 相关 举报
空调温度控制器设计文档格式.docx_第1页
第1页 / 共21页
空调温度控制器设计文档格式.docx_第2页
第2页 / 共21页
空调温度控制器设计文档格式.docx_第3页
第3页 / 共21页
空调温度控制器设计文档格式.docx_第4页
第4页 / 共21页
空调温度控制器设计文档格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

空调温度控制器设计文档格式.docx

《空调温度控制器设计文档格式.docx》由会员分享,可在线阅读,更多相关《空调温度控制器设计文档格式.docx(21页珍藏版)》请在冰豆网上搜索。

空调温度控制器设计文档格式.docx

输出时钟脉冲

关闭所有显示位

取出数据一位输出

位选通信号位移

8位数据输出

6位全显示完?

初始化温度参数

当前温度和设定温度送

显示缓冲

显示温度

采样当前温度

当前温度与设定温度比较

制冷

不变

加热

读键盘

键盘值是?

向下键

向上键

设定温度减1

设定温度加1

低2度

+/-2度内

高2度

温度控制主程序

四.系统模块详细设计与调试

系统模块的设计

1.A/D转换子程序

BEING:

MOVDPTR,#8000H;

AD转换子程序

MOVDPTR,#8000H;

启动A/D转换

MOVX@DPTR,A

MOVR6,#14H

DELAY2:

NOP

NOP

DJNZR6,DELAY2

MOVXA,@DPTR

MOV47H,A;

温度AD转换结果暂存47H单元

ACALLCHANGE;

十六进制转十进制子程序

LCALLDISPLAYLED

RET

CHANGE:

MOVR1,#00H

MOVR2,#00H

CLRC

CHAN:

SUBBA,#64H

JCCHAN1

INCR1

AJMPCHAN

CHAN1:

ADDA,#64H

CHAN2:

SUBBA,#0AH

JCCHAN3

INCR2

AJMPCHAN2

CHAN3:

ADDA,#0BH

MOV64H,A;

转换结果个位暂存2AH单元

MOV63H,R2;

十位存2BH单元

MOV62H,R1;

百位存2CH单元

2.LED转换子程序

DISPLAYLED:

MOVR0,#BUF;

r0指向显示缓冲首地址

MOVR1,#5;

要循环2次,有2个LED

MOVR2,#00100000B;

从第一位开始

LOOP:

MOVDPTR,#OUTBIT

MOVA,#0

MOVX@DPTR,A;

关所有的位的显示

MOVA,@R0

MOVDPTR,#LEDMAP;

查表

MOVCA,@A+DPTR

MOVDPTR,#OUTSET

输出r0指向的单元的数

MOVDPTR,#OUTBIT

MOVA,R2

开显示,将这个数显示出来(r2决定在哪一位显示)

MOVR6,#01;

CALLDELAY;

RRA

MOVR2,A;

准备显示下一位数

INCR0;

r0指向下个单元

DJNZR1,LOOP;

循环六次

MOVA,#0

RET

3.按键子程序

ANJIAN:

CALLTESTKEY;

检测键盘是否有按键按下

JZANJIAN

MOVR6,#10;

延时去抖动

CALLDELAY

再次检测键盘是否有按键按下

MOVX@DPTR,A

MOVR1,#00100000B

MOVR2,#6

KLOOP:

MOVDPTR,#OUTBIT;

扫描,得到按键的行和列

MOVA,R1

CPLA;

(取反)用零去扫描各列

CPLA

RRA;

下一列

MOVR1,A;

R1暂存列值

MOVDPTR,#IN

MOVXA,@DPTR;

读行状态

ANLA,#0FH

JNZGOON1

DJNZR2,KLOOP;

下一列扫描(一轮6次)

MOVR2,#06H

SJMPKLOOP;

下一轮扫描

GOON1:

;

按照行列计算键值

行号放在R1内

MOVA,R2;

R2中放的是列号

DECA;

RLA;

R2=(列号-1)*4

MOVR1,#4

LOOPC:

RRCA

JCEXIT

INCR2

DJNZR1,LOOPC;

行值(0100)右移,并统计移的位数,移的位数就是行值

EXIT:

查表得到键值

MOVDPTR,#KEYTABLE

MOVCA,@A+DPTR

MOVR2,A

WAITRELEASE:

等待按键释放,将键值存在A寄存器中

CLRA

测试按键是否放开

JNZWAITRELEASE;

是的

调试

(1)调试的过程

A.在实验系统中输入程序,并对其进行编译修正,直到没有错误。

B.打开试验箱,对照自己程序,对其进行接线。

C.与计算机连接并进行执行,观察试验箱上各个器件显示的结果,发现错误并对其修改直到实验结果与实验要求一致

(2)调试中遇到的问题

实验中遇到最大的问题还是键盘输入的问题,加一减一看似简单但在实验过程中总会出现乱码,最后我把加一减一写了2个子程序,对子程序进行调用,解决了上面出现的问题。

==============将缓冲区的数加1的子程序===================

JIAYI:

MOVA,#10

MOVB,BUF

MULAB

ADDA,BUF+1

MOVR7,A

INCA

MOVB,#10

DIVAB

MOVBUF,A

MOVBUF+1,B

;

==============将缓冲区的数减1的子程序===================

JIANYI:

DECA

五.设计总结

这次课程设计是一次综合性质的实验,对我以前学的A/D转换、键盘输出等等的一综合运用,所以这次实验不但是巩固了我们以前所学的知识,也给我们带来的新的感悟。

程序虽然做出来了。

但程序肯定不只一种,方法可以改变,我想我这次课程设计还没结束,我应该学学别人的程序,学会用8255完成,学会用点阵来代替二极管来显示冷和热。

有人总是问,我们在大学学了什么,我想我们学的就是我们身边的点点滴滴。

六.参考文献

《微型计算机原理与接口技术》(第三版)冯博琴吴宁主编清华大学出版社,2011年

《单片机原理及应用实验指导书》,屈波等编,2008年

《单片机原理及应用》,赵德安等编,机械工业出版社,2004年

《单片机基础》,李广弟等,北京航空航天大学出版社,2004年

七.附件材料

1.硬件接线图

接线

连接孔1

连接孔2

1

AD-CS

CS0

2

IN0

电位器输出

3

P1.0

L0

4

P1.1

L1

5

KEY/LED-CS

CS1

 

3.实物图

4.程序清单

T20MSEQU65536-10000

C20MSEQU30H

INEQU09001H;

键盘读入口

OUTBITEQU09002H;

位控制口

OUTSETEQU09004H;

段控制口

BUFEQU60H;

显示缓冲区

ORG0000H

LJMPSTART

=====================键码的定义=========================

KEYTABLE:

DB17H,16H,15H,14H

DB13H,12H,11H,10H

DB0DH,0CH,0BH,0AH

DB0EH,03H,06H,09H

DB0FH,02H,05H,08H

DB00H,01H,04H,07H

=======================八段管显示码=====================

LEDMAP:

DB3FH,06H,5BH,4FH

DB66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH

DB39H,5EH,79H,71H

======================A/D转换子程序=====================

DJNZR6,DELAY2

MOVR2,#00H

CLRC

JCCHAN1

INCR1

SUBBA,#0AH

JCCHAN3

INCR2

==================延时子程序=====================

Delay1:

延时子程序

MOVR7,#0FFH

AA:

DJNZR7,AA

ret

INCA

DIVAB

DECA

===================延时子程序============================

DELAY:

MOVR7,#0

DELAYLOOP:

DJNZR7,DelayLoop

DJNZR6,DelayLoop

=================检测按键是否按下的子程序================

TESTKEY:

MOVXA,@DPTR

====================按键子程序============================

ANJIAN:

MOVDPTR,#in

===================LED显示子程序==========================

DISPLAYLED:

MOVA,@R0

MOVDPTR,#OUTSET

========================main==============================

START:

测试按键

JZSTART

CALLANJIAN;

取键值

CJNEA,#0AH,START

SETBP1.0;

键值=A,开指示灯

MOVBUF,#0;

MOVBUF+1,#0;

显示缓冲区清零

MOVBUF+2,#0

MOVBUF+3,#0

MOVBUF+4,#0

NEXT1:

CALLDISPLAYLED;

显示

JZNEXT1

CJNEA,#0AH,NEXT11

LJMPSTART;

开关

NEXT11:

MOVBUF,A;

十位数存于60H单元

NEXT2:

JZNEXT2

CJNEA,#0AH,NEXT12

NEXT12:

MOVBUF+1,A;

十位数存于61H单元

NEXT9:

CALLDISPLAYLED

CALLTESTKEY

JZNEXT9

CALLANJIAN

CALLJIAYI

CALLJIANYI

CJNEA,#0AH,NEXT10

NEXT10:

CJNEA,#0BH,NEXT3

CALLJIAYI

NEXT3:

CJNEA,#0CH,NEXT5

NEXT5:

MOVP1,#00H

ACALLBEING;

调用转换显示子程序

MOVA,47H

SUBBA,R7

JZNEXT6

LJMPSS

NEXT6:

EXIT1:

JMPNEXT5

SS:

JCHIGH1

降温子程序

CALLDELAY1

JMPEXIT1

HIGH1:

SETBP1.1;

升温子程序

JMPNEXT9

NEXT4:

LJMPNEXT9

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18.

19.

20.

21.

22.

23.

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

38.

39.

40.

41.

42.

43.

44.

45.

46.

47.

48.

49.

50.

51.

52.

53.

54.

55.

56.

57.

58.

59.

60.

61.

62.

63.

64.

65.

66.

67.

68.

69.

70.

71.

72.

73.

74.

75.

76.

77.

78.

79.

80.

81.

82.

83.

84.

85.

86.

87.

88.

89.

90.

91.

92.

93.

94.

95.

96.

97.

98.

99.

100.

101.

102.

103.

104.

105.

106.

107.

108.

109.

110.

111.

112.

113.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1