版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、苏 州 市 职 业 大 学课程设计 课程名称 单片机原理与应用课程设计 2011年12月 12日至 2011 年12月16日共 1 周院 系 电子信息工程系 班 级 10电子(5)班 姓 名 王洪伟 系主任 张红兵 教研室主任 陆春妹 指导教师 古玉年 一、 设计任务 通过实验电路,设计一个空调温度控制器程序,其中以热敏电阻来检测温度,而继电器控制压缩机,使其能制冷与加热。 二、 设计要求1、 显示温度范围16-32 ,用两位数码管进行显示。2、 温度设定位16-32 ,设定温度时,温度显示值闪烁(1HZ)。3、 用2个按键,一个上升键,一个下降健。4、 设定温度值每半分钟如果发生变化,则记忆
2、在存储器24C02中。三、 实验电路根据设计要求,电路要用到以下几大模块:1、 A/D转换模块: 因为单片机不能直接检温度信号,所以我们要通过A/D转换电路,把不可测的温度信号转换为电信号,使单片机能测量其信号! 图(1) A/D转换电路2、记忆模块: AT24C02是一个2K位串行CMOS E2PROM, 内部含有256个8位字节,CATALYST公司的先进CMOS技术实质上减少了器件的功耗。AT24C02有一个16字节页写缓冲器。该器件通过IIC总线接口进行操作,有一个专门的写保护功能。而该芯片在此设计电路中起记忆作用。 图(2)AT24C02电路 3、显示模块: 本设计电路的显示部分有两
3、片8D锁存器573和4个数码管构成,一片用于控制LED数码管的字段,另一片用于控制数码管的字位。我们用前两位数码管显示设定的温度,后两位用于显示测量的温度,而且是动态显示。 图(3) 数码管显示电路4、继电器模块:继电器是一种电控制器件。它具有控制系统(又称输入回路)和被控制系统(又称输出回路)之间的互动关系。通常应用于自动化的控制电路中,它实际上是用小电流去控制大电流运作的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。所以,我们用继电器模拟控制压缩机,当温度变化时,通过比较程序来控制继电器动作,以达到控制压缩机制冷或加热。 图(4) 继电器控制电路5、按键模块:我们此次
4、用了两个按键,一个上升按键,一个下降按键,通过动态按键扫描程序,我们来完成此功能。 图(5) 按键电路四、 程序流程图五、 程序RELAY EQU P1.3 SCL EQU P1.5SDA EQU P1.6DOUT EQU P1.1CIO EQU P1.0CS EQU P1.2SEL0 EQU P3.5SEL1 EQU P3.7DISP1 EQU 30HDISP2 EQU 31HDISP3 EQU 32HDISP4 EQU 33HCOUNT EQU 34HTEMP EQU 35HTEMP_SET EQU 37HSCAN EQU 20HSCAN1 EQU 20H.0SCAN2 EQU 20H.1
5、SCAN3 EQU 20H.2SCAN4 EQU 20H.3SCAN5 EQU 20H.4SCAN6 EQU 20H.5SCAN7 EQU 20H.6TMP EQU 36HKEY_LAST EQU 38H ORG 0000H LJMP MAIN ORG 001BH AJMP DISPLAYMAIN: MOV TMOD,#10H MOV TH1,#0ECH MOV TL1,#78H SETB ET1 SETB PT1 SETB EA SETB TR1 MOV COUNT,#0 CLR SEL0 CLR SEL1 MOV DISP1,#2 MOV DISP2,#0 MOV DISP3,#0 MOV
6、 DISP4,#6 MOV R0,#00H LCALL RD_DATA CJNE A,#99,AJAJ: JC NO_OVER99 MOV R0,#00H MOV R1,#20 LCALL WR_DATA LCALL RD_DATA NO_OVER99:MOV TEMP_SET,A MOV TMP,A MOV B,#10 DIV AB MOV DISP2,B MOV DISP1,AWAIT: MOV A,TEMP_SET SUBB A,TEMP JC OVER0 CLR RELAY AJMP PROOVER0: SETB RELAYPRO: LCALL KEY_SCAN JZ PRO1_END
7、 CJNE A,#1,NO_1KEY MOV A,TEMP_SET CJNE A,#99,AJ1AJ1: JNC PRO_END INC TEMP_SET AJMP PRO_ENDNO_1KEY: CJNE A,#2,PRO_END MOV A,TEMP_SET JZ PRO_END DEC TEMP_SET AJMP PRO_ENDPRO_END: MOV A,TEMP_SET MOV B,#10 DIV AB MOV DISP2,B MOV DISP1,A PRO1_END: AJMP DS_PROMYDS: AJMP WAITDS_PRO: MOV A,TMP CJNE A,TEMP_S
8、ET,NO_XD AJMP NO_PROSETNO_XD: MOV TMP,TEMP_SET MOV R0,#0 MOV R1,TEMP_SET LCALL WR_DATANO_PROSET: LCALL TRANS MOV B,#10 DIV AB MOV DISP3,A MOV DISP4,B AJMP WAITDISOUT1: MOV DPTR,#TAB MOVC A,A+DPTR MOV P0,A SETB SEL1 NOP CLR SEL1 RETDISOUT0: MOV A,SCAN MOV P0,A SETB SEL0 NOP CLR SEL0 RETDISPLAY: MOV T
9、H1,#0ECH MOV TL1,#78H PUSH ACC PUSH PSW CJNE A,#100,NO_500MSNO_500MS: INC COUNT MOV A,COUNT CJNE A,#1,NO_DIS1 CLR SCAN1 SETB SCAN2 SETB SCAN3 SETB SCAN4 LCALL DISOUT0 MOV A,DISP1 LCALL DISOUT1 AJMP T1_ENDNO_DIS1: CJNE A,#2,NO_DIS2 SETB SCAN1 CLR SCAN2 SETB SCAN3 SETB SCAN4 LCALL DISOUT0 MOV A,DISP2
10、LCALL DISOUT1 AJMP T1_ENDNO_DIS2: CJNE A,#3,NO_DIS3 SETB SCAN1 CLR SCAN3 SETB SCAN2 SETB SCAN4 LCALL DISOUT0 MOV A,DISP3 LCALL DISOUT1 AJMP T1_ENDNO_DIS3: MOV COUNT,#0 SETB SCAN1 SETB SCAN2 SETB SCAN3 CLR SCAN4 LCALL DISOUT0 MOV A,DISP4 LCALL DISOUT1T1_END: POP PSW POP ACC RETITRANS: LCALL ADCA MOV
11、B,A MOV TEMP,#0 MOV A,#0LOOP0: MOV DPTR,#TAB1 MOVC A,A+DPTR SUBB A,B JNC GET_TEMP INC TEMP MOV A,TEMP AJMP LOOP0GET_TEMP: MOV A,TEMP RET ADCA: MOV R3,#0FH SETB CS NOP CLR CS CLR CIO NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP LCALL READA SETB CS NOP RETREADA: MOV R4,#08HREDA1: MOV C,DOUT RLC A NOP N
12、OP SETB CIO NOP NOP NOP NOP NOP NOP NOP NOP CLR CIO NOP NOP NOP NOP NOP NOP NOP DJNZ R4,REDA1 NOP NOP NOP NOP SETB CS RETKEY_SCAN: CLR SCAN5 SETB SCAN6 SETB SCAN7 LCALL DISOUT0 MOV A,P2 ANL A,#B CJNE A,#0FH,MAY_KEY AJMP NO_KEYMAY_KEY: LCALL DELAY10ms MOV A,P2 ANL A,#0FH CJNE A,#0FH,YES_KEY AJMP NO_K
13、EYYES_KEY: CJNE A,#0EH,NO_KEY1 MOV A,#1 AJMP KEY_COMNO_KEY1: CJNE A,#0DH,NO_KEY2 MOV A,#2 AJMP KEY_COMNO_KEY2: CJNE A,#0BH,NO_KEY3 MOV A,#3 AJMP KEY_COMNO_KEY3: MOV A,#4 AJMP KEY_COMNO_KEY: MOV A,#0 MOV KEY_LAST,#0 AJMP KEY_ENDKEY_COM: CJNE A,KEY_LAST,KEY_FIRST MOV A,#0 AJMP KEY_ENDKEY_FIRST: MOV KE
14、Y_LAST,A AJMP KEY_END KEY_END: RETDELAY10ms:MOV R6,#250 DEL:MOV R7,#10 DJNZ R7,$ DJNZ R6,DEL RET WR_DATA: LCALL BSTART MOV A,#0A0H LCALL WBYTE MOV A,R0 LCALL WBYTE MOV A,R1 LCALL WBYTE LCALL BSTOP RETRD_DATA: LCALL BSTART MOV A,#0A0H LCALL WBYTE MOV A,R0 LCALL WBYTE LCALL DELAY LCALL BSTART MOV A,#0
15、A1H LCALL WBYTE LCALL RBYTE LCALL BSTOP RETDELAY: NOP NOP NOP NOP RETBSTART: CLR SCL LCALL DELAY SETB SDA LCALL DELAY SETB SCL LCALL DELAY CLR SDA LCALL DELAY CLR SCL RETBSTOP: CLR SCL LCALL DELAY CLR SDA LCALL DELAY SETB SCL LCALL DELAY SETB SDA LCALL DELAY CLR SCL LCALL DELAY RETWBYTE: MOV R3,#8WB
16、Y0: CLR SCL RLC A MOV SDA,C SETB SCL DJNZ R3,WBY0 CLR SCL LCALL DELAY SETB SCL LCALL DELAY CLR SCL LCALL DELAY RETRBYTE: LCALL DELAY MOV R3,#8RBY0: CLR SCL LCALL DELAY SETB SCL LCALL DELAY MOV C,SDA RLC A DJNZ R3,RBY0 CLR SCL LCALL DELAY SETB SDA LCALL DELAY SETB SCL LCALL DELAY RETTAB: DB 0C0H,0F9H
17、,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H,0FFH TAB1: DB 32,34,35,36,38,39,41,43,44,46 DB 48,49,51,53,55,57,59,61,63,65 DB 67,69,71,73,75,77,80,82,84,86 DB 87,89,90,92,93,94,96,97,99,100 END六、 设计心得 通过这次单片机课程设计,我对汇编程序又有了新的了解。以前编程,都是编写一些独立的程序,而此次编程,是我们前几次编写程序的组合体,但如何组合?这就是我在编程时遇到的第一个难题,因为我们前几次的程序都是一些独立个体,而且功能都有一定的局限性,所以我们要在程序中做不同的改进,以满足此次设计要求。但是,我们在编程时会遇
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第十人民医院临床用血审核制度
- 中国基金会行业志愿者管理与激励制度研究报告
- 公司高层年底奖惩制度
- 企业可以制定奖惩制度
- 小学生生活习惯奖惩制度
- 严格落实公务员奖惩制度
- 急救工作考核奖惩制度
- 出口企业奖惩制度范本
- 加油站仪容仪奖惩制度
- 医疗drg考核奖惩制度
- 2025年中国地质调查局招聘笔试参考题库含答案解析
- SPSS应用(山东联盟)知到章节答案智慧树2023年临沂大学
- 大学马列主义经典著作选读教案
- 化工设备使用与维护
- 新概念英语第四册
- 部编版小学语文四年级下册教案(表格式)
- GB/T 16938-2008紧固件螺栓、螺钉、螺柱和螺母通用技术条件
- GB/T 15812.1-2005非血管内导管第1部分:一般性能试验方法
- 第5章护际关系伦理第6章课件讲义
- 城市供热工程系统规划-课件
- 新人教版三年级下册语文全册课件(新教材)
评论
0/150
提交评论