1、输出时钟脉冲 关闭所有显示位取出数据一位输出位选通信号位移8位数据输出6位全显示完?初始化温度参数当前温度和设定温度送 显示缓冲显示温度采样当前温度当前温度与设定温度比较制冷不变加热读键盘键盘值是?向下键向上键设定温度减1设定温度加1低2度+/-2度内高2度温度控制主程序 四系统模块详细设计与调试系统模块的设计1.A/D转换子程序BEING: MOV DPTR , #8000H ; AD转换子程序 MOV DPTR , #8000H;启动A/D转换 MOVX DPTR , A MOV R6 , #14HDELAY2: NOP NOP DJNZ R6,DELAY2 MOVX A,DPTR MOV
2、 47H,A ; 温度AD转换结果暂存47H单元 ACALL CHANGE ; 十六进制转十进制子程序 LCALL DISPLAYLED RETCHANGE: MOV R1 , #00H MOV R2,#00H CLR CCHAN: SUBB A,#64H JC CHAN1 INC R1 AJMP CHANCHAN1: ADD A,#64HCHAN2: SUBB A,#0AH JC CHAN3 INC R2 AJMP CHAN2CHAN3: ADD A, #0BH MOV 64H,A ;转换结果个位暂存2AH单元 MOV 63H,R2 ;十位存2BH单元 MOV 62H,R1 ;百位存2CH单
3、元2.LED转换子程序 DISPLAYLED :MOV R0,#BUF ;r0指向显示缓冲首地址 MOV R1,#5 ;要循环2次,有2个LED MOV R2,#00100000B ;从第一位开始LOOP: MOV DPTR,#OUTBIT MOV A,#0 MOVX DPTR,A ;关所有的位的显示 MOV A,R0 MOV DPTR,#LEDMAP ;查表 MOVC A,A+DPTR MOV DPTR,#OUTSET输出r0指向的单元的数 MOV DPTR,#OUTBIT MOV A,R2开显示,将这个数显示出来(r2决定在哪一位显示) MOV R6,#01 ; CALL DELAY ;
4、RR A MOV R2,A ;准备显示下一位数 INC R0 ;r0指向下个单元 DJNZ R1,LOOP ;循环六次 MOV A,#0 RET3按键子程序 ANJIAN: CALL TESTKEY ;检测键盘是否有按键按下 JZ ANJIAN MOV R6,#10 ;延时去抖动 CALL DELAY再次检测键盘是否有按键按下 MOVX DPTR,A MOV R1,#00100000B MOV R2,#6KLOOP: MOV DPTR,#OUTBIT ;扫描,得到按键的行和列 MOV A,R1 CPL A ;(取反)用零去扫描各列 CPL A RR A ;下一列 MOV R1,A ;R1暂存列
5、值 MOV DPTR,#IN MOVX A,DPTR ;读行状态 ANL A,#0FH JNZ GOON1 DJNZ R2,KLOOP ;下一列扫描(一轮6次) MOV R2,#06H SJMP KLOOP ;下一轮扫描GOON1: ;按照行列计算键值行号放在R1内 MOV A,R2 ;R2中放的是列号 DEC A ; RL A ;R2=(列号-1)*4 MOV R1,#4LOOPC: RRC A JC EXIT INC R2 DJNZ R1,LOOPC ;行值(0100)右移,并统计移的位数,移的位数就是行值EXIT:查表得到键值 MOV DPTR,#KEYTABLE MOVC A,A+DP
6、TR MOV R2,AWAITRELEASE:等待按键释放,将键值存在A寄存器中 CLR A测试按键是否放开 JNZ WAITRELEASE ;是的调试(1)调试的过程A在实验系统中输入程序,并对其进行编译修正,直到没有错误。B打开试验箱,对照自己程序,对其进行接线。C与计算机连接并进行执行,观察试验箱上各个器件显示的结果,发现错误并对其修改直到实验结果与实验要求一致(2)调试中遇到的问题实验中遇到最大的问题还是键盘输入的问题,加一减一看似简单但在实验过程中总会出现乱码,最后我把加一减一写了2个子程序,对子程序进行调用,解决了上面出现的问题。=将缓冲区的数加1的子程序=JIAYI: MOV A
7、,#10 MOV B,BUF MUL AB ADD A,BUF+1 MOV R7,A INC A MOV B,#10 DIV AB MOV BUF,A MOV BUF+1,B;=将缓冲区的数减1的子程序=JIANYI: DEC A五设计总结这次课程设计是一次综合性质的实验,对我以前学的A/D转换、键盘输出等等的一综合运用,所以这次实验不但是巩固了我们以前所学的知识,也给我们带来的新的感悟。程序虽然做出来了。但程序肯定不只一种,方法可以改变,我想我这次课程设计还没结束,我应该学学别人的程序,学会用8255完成,学会用点阵来代替二极管来显示冷和热。有人总是问,我们在大学学了什么,我想我们学的就是我
8、们身边的点点滴滴。六参考文献微型计算机原理与接口技术(第三版)冯博琴 吴宁主编 清华大学出版社,2011年单片机原理及应用实验指导书,屈波等编,2008年单片机原理及应用,赵德安等编,机械工业出版社,2004年单片机基础,李广弟等,北京航空航天大学出版社,2004年七附件材料1.硬件接线图接线连接孔1连接孔21AD-CSCS02IN0电位器输出3P1.0L04P1.1L15KEY/LED-CSCS13.实物图4.程序清单 T20MS EQU 65536-10000C20MS EQU 30HIN EQU 09001H ;键盘读入口OUTBIT EQU 09002H ;位控制口OUTSET EQU
9、 09004H ;段控制口BUF EQU 60H ;显示缓冲区 ORG 0000H LJMP START=键码的定义=KEYTABLE: DB 17H,16H,15H,14H DB 13H,12H,11H,10H DB 0DH,0CH,0BH,0AH DB 0EH,03H,06H,09H DB 0FH,02H,05H,08H DB 00H,01H,04H,07H=八段管显示码=LEDMAP: DB 3FH,06H,5BH,4FH DB 66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH DB 39H,5EH,79H,71H=A/D转换子程序= DJNZ R6,DELAY2 M
10、OV R2,#00H CLR C JC CHAN1 INC R1 SUBB A,#0AH JC CHAN3 INC R2=延时子程序=Delay1: 延时子程序 MOV R7, #0FFHAA: DJNZ R7,AA ret INC A DIV AB DEC A=延时子程序=DELAY: MOV R7,#0DELAYLOOP: DJNZ R7,DelayLoop DJNZ R6,DelayLoop=检测按键是否按下的子程序=TESTKEY: MOVX A,DPTR=按键子程序=ANJIAN: MOV DPTR,#in=LED显示子程序=DISPLAYLED: MOV A,R0 MOV DPTR
11、,#OUTSET=main=START:测试按键 JZ START CALL ANJIAN ;取键值 CJNE A,#0AH,START SETB P1.0 ;键值=A,开指示灯 MOV BUF,#0 ; MOV BUF+1,#0 ;显示缓冲区清零 MOV BUF+2,#0 MOV BUF+3,#0 MOV BUF+4,#0NEXT1: CALL DISPLAYLED ;显示 JZ NEXT1 CJNE A,#0AH,NEXT11 LJMP START ;开关NEXT11: MOV BUF,A ;十位数存于60H单元NEXT2: JZ NEXT2 CJNE A,#0AH,NEXT12NEXT1
12、2: MOV BUF+1,A ;十位数存于61H单元NEXT9: CALL DISPLAYLED CALL TESTKEY JZ NEXT9 CALL ANJIAN CALL JIAYI CALL JIANYI CJNE A,#0AH,NEXT10NEXT10: CJNE A,#0BH,NEXT3 CALL JIAYI NEXT3: CJNE A,#0CH,NEXT5NEXT5: MOV P1 , #00H ACALL BEING ;调用转换显示子程序 MOV A , 47H SUBB A,R7 JZ NEXT6 LJMP SSNEXT6:EXIT1: JMP NEXT5SS: JC HIGH
13、1降温子程序 CALL DELAY1 JMP EXIT1HIGH1: SETB P1.1 ; 升温子程序 JMP NEXT9 NEXT4: LJMP NEXT91.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