课程设计-单片机计算器广东工业大学课程设计任务书题目名称单片机计算器(上机)/ 单片机应用系统设计(理论设计)学生学院自动化专业班级网络工程姓名XXX学号一、课程设计的内容1.巩固和加深对《单片机原理》课程内容的认识和理解,提高应用水平。
2、完成对单片机应用系统的理论设计。
3.掌握MCS-51汇编语言程序的编制方法。
4.熟悉键盘控制和七段数码管的使用。
具体设计包括系统设计和上机编程两个部分。
二、课程设计的要求与数据一.(一)上机编程上机编程要求和内容已附页给出。
二.(二)系统设计内容要求:系统中具备输入设备(如键盘,键数不限)、输出设备(如LED数码显示管)。
具体内容可自己设计、网上搜索应用例、参考书中例。
非自己设计的应用系统应理解消化,可修改(如增加或减少某些功能部件)。
在系统设计中说明其出处以及自己做的修改部分。
三、课程设计应完成的工作三.(一)上机编程完成符合规定要求的程序并上机调试成功。
(二)系统设计内容1.设计一个单片机应用系统的硬件电路。
2. 选择所需元件,并对每个元件的管脚做简单说明。
3.用35×50cm方格纸作图,画出详细的系统连接图。
撰写课程设计报告四、课程设计进程安排五、应收集的资料及主要参考文献[1] 李广弟、朱月秀、王秀山.单片机基础.(M).北京航空航天大学出版社.2001[2] 何立民,单片机高级教程.(M).北京航空航天大学出版社, 2000[3] 许兴存、曾琪琳微型计算机接口技术(M).北京电子工业出版社,2003[4] 朱宇光,单片机应用新技术教程(M).北京电子工业出版社,2000发出任务书日期:2010年 9 月 10 日指导教师签名:计划完成日期: 2010 年 9 月 25 日基层教学单位责任人签章:主管院长签章:摘要随着经济的发展,带动汽车行业快速发展,出租车日益普遍,了解在出租车上应用的计费系统,对我们日常生活也有帮助。
而使用单片机实现该系统,是深化单片机应用的良好途径。
本系统设计由单片机AT89S51为核心控制器和一些外围模块组成,使得其操作简单,显示明了,功能丰富。
使用8段数码管做为显示器,可以显示单价、总金额和路程,可以随时作切换,使系统信息一目了然;本系统除了里程统计和费用计算以外,还具有时钟功能。
本方案充分发挥稳定、冗余的特点,,配合AT24c02掉电存储芯片,保障信息的安全,使整个出租车计价系统更稳定。
目录摘要 (1)目录 (4)单片机计算器设计 (6)一.编程要求和硬件电路6二.流程图8三.程序10单片机应用系统设计——出租车计价器 (24)一.系统功能介绍24二.系统设计说明251.系统基本设计框图 (25)2.芯片的功能及说明 (25)三.连接图4四.软件设计43.主程序的流程图 (4)4.计价流程图 (7)5.单价时间调整流程图 (8)五.设计心得及建议8主要参考文献 (9)单片机计算器设计四.编程要求和硬件电路五.流程图六.程序1.编写程序在四位LED上显示15FC.ORG 0000HLJMP MAINORG 1000HMAIN: MOV 53H,#01HMOV52H,#05HMOV51H,#0FHMOV50H,#0CHDIS:MOV A,#03HMOV DPTR,#7F00HMOVX@DPTR,ASTART:MOV R0,#50HMOVR3,#0F7HMOV A,R3AGAIN: MOV DPTR,#7F02HMOVX@DPTR,AMOVA,@R0MOV DPRT,#DDEGMOVC A,@A+DPTRMOV DPTR,#7F01HMOVX@DPTR,AACALLDL1MSINC R0MOV A,R3JNB ACC.0, STARTRR AMOV R3,AAJMP AGAINDDEG:DB 0FCH,60H,0DAH,0F2 H,66H,0B6H,0BEH,0E 0H,0FEH,0F6H,0EEH, 3EH,9CH,7AH,9EH,8 EHDL1MS: MOV R7,#01HDL0:MOV R6,#0FFH DL1:DJNZ R6,DL1 DJNZ R7,DL0RETEND2.将8个键按实验室要求定义键值,按任意键在显示器上显示对应键值,要求显示值能左移。
当k0=0时,第一排键为98AF,第二排键为EB32.;当k0=1时,第一排键为17CD,第二排键为5604.ORG 0000HLJMP MAINORG 1000HMAIN: MOV 53H,#00HMOV 52H,#00HMOV 51H,#00HMOV50H,#50H KEYSUB:MOV A,#03HMOV DPTR,#7F00HMOVX@DPTR,ABEGIN: ACALL DISACALL CLEARACALL CCSCANJNZINK1AJMP BEGININK1: ACALL DISACALL DL1MSACALL DL1MSACALL CLEARACALL CCSCANJNZINK2AJMP BEGININK2: MOV R2,#0F7HMOVR4,#00HCOLUM: MOV DPTR,#7F02HMOV A,R2MOVX@DPTR,AINC DPTRMOVX A,@DPTRJB ACC.5LONEMOVA,#00HAJMP KCODELONE: JB ACC.4,NEXTMOVA,#04HKCODE: ADD A,R4ACALL LP1ACALL PUTBUFPUSH ACCKON: ACALL DISACALL CLEARACALL CCSCANJNZKONPOPACCNEXT: INC R4MOV A,R2JNB ACC.3,KERRRL AMOV R2, AAJMP COLUMKERR: AJMP BEGINCCSCAN: MOV DPTR,#7F02HMOVA,#00HMOVX@DPTR,AINC DPTRMOVX A,@DPTRCPL AANLA,#30HRET CLEAR: MOV DPTR,#7F01HMOVA,#00HMOVX@DPTR,ARETDIS: PUSH ACCPUSH 00HPUSH 03HMOV A,#03HMOV DPTR,#7F00HMOV R0,#50HMOVR3,#0F7HMOV A,R3 AGAIN: MOV DPTR,#7F02HMOVX@DPTR,AMOVDPTR,#7F03HMOV A,@DPTRJNBACC.0,STEP1MOVDPTR ,#ADDRAJMP STEP2 STEP1: MOV A,@RMOV DPRT,#DDEGAJMP STEP3 STEP2: MOVA,@RSTEP3: MOVC A,@A+DPTRMOV DPTR,#7F01HMOVX@DPTR,AACALLDL1MSINC R0MOV A,R3JNB ACC.0,OUTRR AMOV R3,AAJMP AGAINOUT: POP 03HPOP 00HPOP ACCRET DDEG: DB 9EH,3EH,0F2H,0DAH0F6H,0FEH,0EEH,8E HADDR: DB 0B6H,0BEH,0FCH,66 H,60H,0E0H,9CH,7AHDL1MS: MOV R7,#01HDL0: MOV R6,#0FFHDL1 DJNZ R6,DL1DJNZR7,DL0RETPUTBUF: PUSH 00HMOV R7,A MOV A,52H MOV 53H,A MOV A,51H MOV 52H,A MOV A,50H MOV 51H,A MOV A,R7 MOV 50H,A POP 00H RETEND3.a).定义键盘按键,5个数字键E4689 ,3个功能键:乘号x,减号-,等号=;b).可进行三位10进制减法运算;c).可进行两位16进制乘法运算ORG 0000HLJMP MAINORG 0100H DDEG:DB3FH,06H,5BH,4FH,66 H,DB6DH,7DH,07H,7FH,6FH, DB77H,7CH,39H,5EH,79 H,71HORG 1000H MAIN:MOV 52H,#00H MOV 53H,#00H MOV 51H,#00HMOV 50H,#00H MOV 37H,#00H MOV 38H,#04H MOV 39H,#01H MOV 40H,#00H MOV 41H,#00H MOV 42H,#00H MOV 43H,#00H MOV 44H,#00H MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV R5,#50H KEYSUB: MOV A,#03HMOVDPTR,#7F00H MOVX @DPTR,A BEGIN: ACALL DIS ACALL CLEAR ACALL CCSCAN JNZ INK1AJMP BEGIN INK1:ACALL DIS ACALL DL1MS ACALL DL1MS ACALL CLEAR ACALL CCSCAN JNZ INK2AJMP BEGININK2:MOV R2,#0FEH MOV R4,#00HCOLUM:MOVDPTR,#7F02H MOV A,R2 MOVX @DPTR,A MOVDPTR,#7F03H MOVX A,@DPTRJB ACC.5,LONE MOV A,#00H AJMP KCODE LONE:JB ACC.4,NEXT MOV A,#04H KCODE: ADD A,R4 ////////////////////////// CJNEA,#00H,NOT00 MOV A,#09H AJMP NEXT0 NOT00: CJNE A,#01H,NOT01 MOV A,#11H AJMP NEXT0 NOT01: CJNE A,#02H,NOT02 MOV A,#10H AJMP NEXT0 NOT02: CJNE A,#03H,NOT03MOV A,#12H AJMP NEXT0 NOT03: CJNE A,#04H,NOT04 MOV A,#08H AJMP NEXT0 NOT04: CJNE A,#05H,NOT05 MOV A,#06H AJMP NEXT0 NOT05: CJNE A,#06H,NOT06 MOV A,#04H AJMP NEXT0 NOT06:CJNEA,#07H,NOT07 MOV A,#0EH NEXT0: NOP NOT07:ACALL PUTBUF PUSH ACCKON:ACALL DIS ACALL CLEAR ACALL CCSCAN JNZ KONPOP ACC NEXT:INC R4MOV A,R2JNB ACC.3,KERR RL AMOV R2,A AJMP COLUM KERR:AJMP BEGIN CCSCAN:MOVDPTR,#7F02H MOV A,#00H MOVX @DPTR,A MOVDPTR,#7F03HMOVX A,@DPTR CPL AANL A,#30HRETCLEAR:MOVDPTR,#7F01H MOV A,#00H MOVX @DPTR,A RETDIS:PUSH ACC PUSH 00H PUSH 03HMOV A,#0DH MOVDPTR,#7F00H MOVX @DPTR,A MOV R0,#50H MOV R3,#0F7H MOV A,R3 AGAIN:MOVDPTR,#7F02H MOVX @DPTR,A MOV A,@R0 MOVDPTR,#DDEG MOVCA,@A+DPTRMOVDPTR,#7F01H MOVX @DPTR,A ACALL DL1MS INC R0MOV A,R3JNB ACC.5,OUT RR AMOV R3,A AJMP AGAIN OUT:POP 03HPOP 00HPOP ACCRETDL1MS: MOVR7,#01HDL0: MOVR6,#0FFHDL1: DJNZ R6,DL1 DJNZ R7,DL0RET PUTBUF:PUSH 00HPUSH ACCMOV A,R5MOV R0,APOP ACCPUSH ACCXRL A,#12HJZ NOTNUMBER POP ACCPUSH ACCXRL A,#10HJZ NOTNUMBER POP ACCPUSH ACCXRL A,#11HJZ NOTNUMBER POP ACCACALL CHANGE MOV @R0,APOP 00HRET NOTNUMBER:NOP KONA:ACALL DIS ACALL CCSCAN JNZ KONAPOP ACCPOP 00HCJNEA,#12H,MULSUBNU MACALL CAL MULSUBNUM:CJNE A,#10H,SUBNUM ACALL MULCALL SUBNUM: CJNE A,#11H,DONE ACALL SUBCALL DONE: RET CHANGE:MOV 53H,52H MOV 52H,51H MOV 51H,50H RETCAL:PUSH 00H PUSH ACC MOV A,39H JZ RESET1 MOV 47H,50H MOV 46H,51H MOV 45H,52H MOV 44H,53H ACALL CLEARSCRMOV A,37H JNZ ISSUB//乘法MOV A,42H MOV 0F0H,#10H MUL ABADDC A,43H PUSH ACC MOV A,46H MOV 0F0H,#10H MUL ABADDC A,47H MOV 0F0H,A POP ACCMUL ABPUSH ACCANL A,#0FH MOV 43H,A POP ACC PUSH ACCANL A,#0F0HRR ARR ARR ARR AMOV 42H,A POP ACCPUSH ACCMOV 48H,B MOV R0,#48H MOV A,@R0 ANL A,#0FH MOV 41H,A POP ACCMOV A,BANL A,#0F0HRR ARR ARR ARR AMOV 40H,A AJMP CALDONE RESET1:AJMPRESET//减法ISSUB:MOV R2,#04H MOV R0,#43H MOV R1,#47H NEXT4:MOV A,@R0 SUBB A,@R1ANL A,#0FH CJNEA,#0AH,NEXTC AJMP NEXT3 NEXTC:JNC NEXT3 CLR CAJMP NEXTD NEXT3: SUBB A,#06HSETB C NEXTD: MOV @R0,ADEC R0DEC R1DJNZ R2,NEXT4 AJMP CALDONE CALDONE:MOV 39H,#00HMOV 50H,43H MOV 51H,42H MOV 52H,41H MOV 53H,40H AJMP CALEND RESET: ACALL CLEARSCRMOV 39H,#01H CALEND:POP ACCPOP 00HRET MULCALL:MOV 43H,50HMOV 42H,51H MOV 41H,52HMOV 40H,53H ACALL CLEARSCR MOV 37H,#00H RET SUBCALL:MOV 43H,50HMOV 42H,51H MOV 41H,52H MOV 40H,53H ACALL CLEARSCR MOV 37H,#01H RET CLEARSCR:MOV 50H,#00HMOV 51H,#00H MOV 52H,#00H MOV 53H,#00H RETEND单片机应用系统设计——出租车计价器一.系统功能介绍1.可以实现在不同条件下,收费标准不同:白天/晚上/途中等待超过10min收费。