单片机课程设计资料袋_单片机课程设计资料
单片机课程设计资料袋由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机课程设计资料”。
课程设计说明书
课程名称:
单片机课程设计
设计题目: 255计数,50000计数,出租车计费 专
业: 电气工程及其自动化 班级:电气080
2学生姓名: 易鸣 学
号: 0812180203 指导教师: 石伟
湖南工业大学科技学院教务部 制
2011年 5月 24日设计思路、程序与仿真图
50000计数
1.1设计思路
0-50000计数:由于DIV AB指令中A B均为8为位寄存器,因此255二进制转十进制计数的方法不能用于0-50000的循环计数。可根据TH0或TH1中每一个二进制‘1’代表十进制的256,再和TL0或TL1按前一步二转十的方法转换得到百.十.个相加,即可完成16位二进制转十进制。
仿真图:
万位千位百位十位个位U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617U3:F***04818XTAL2U3:E109RSTU3:D12293031PSENALEEAU3:C57404612345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51U2123ABCY0Y1Y2Y3Y4Y5Y6Y7***0973U3:B4740417404U3:A2645E1E2E374HC138 程序:
ORG 0000H
SJMP MAIN
ORG 0040H MAIN:
MOV TMOD,#50H
;定时器T1初始化
MOV TL1,#0FFH
;存储空间初始化
MOV 70H,#00H
;保存个位
MOV 71H,#00H
;保存十位
MOV 72H,#00H
;保存百位
MOV 73H,#00H
;保存千位
MOV 74H,#00H
;保存万位
LOOP: SETB TR1
;启动T1
ACALL OUT
;调用显示子程序
MOV A,TL1
CJNE A,#00H,LOOP
ACALL BCD
;调用BCD码调整子程序
SJMP LOOP
RET
BCD:
MOV TL1,#0FFH
INC 70H
MOV A,70H
CJNE A,#0AH,EXIT
MOV 70H,#00H
INC 71H
MOV A,71H
CJNE A,#0AH,EXIT
MOV 71H,#00H
INC 72H
MOV A,72H
CJNE A,#0AH,EXIT
MOV 72H,#00H
INC 73H
MOV A,73H
CJNE A,#0AH,EXIT
MOV 73H,#00H
INC 74H
MOV A,74H
CJNE A,#05H,EXIT
MOV 74H,#00H
;BCD码调整子程序
;只能计数到49999,遇到50000会归零
EXIT:RET
OUT:
;显示子程序
MOV R1,#70H
MOV R5,#00H
MOV DPTR,#TAB LOOP1:
MOV A,R5
MOV P2,A
MOV A,@R1
MOVC A,@A+DPTR
MOV P0,A
ACALL DELAY
INC R1
INC R5
CJNE R5,#05H,LOOP1
RET
DELAY:
;延时子程序
MOV R7,#31
;1+(1+2*100+2)*31+1+2*11+1+2=6320
L1: MOV R6,#100
W1: DJNZ R6,W1
DJNZ R7,L1
MOV R4,#11
J1: DJNZ R4,J1
NOP
RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;驱动LED显示表
出租车计费
1.2设计思路
出租车计费:在上步的基础上,每1个脉冲当作1公里(也可自己设置几个脉冲1公里),5个脉冲,数码管显示05.0005,前3位余额,后3位为里程,超过5个脉冲,里程加1,金额加0.8。难点主要在于计费金额的显示,可将初值置为50,其中十位调用带点的字型码,即显示05.0,超过5个脉冲,里程加1,金额加8,由于十位是带有小数点,即可实现金额加0.8元。
仿真图:
十元元角百位十位个位U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD******28101112***8XTAL2U3:A129RSTU3:B***34293031PSENALEEAU3:C612345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51U3:D12U2123ABCY0Y1Y2Y3Y4Y5Y6Y7***09711U3:E***U3:F8645E1E2E374HC138 程序: ORG 0000H LJMP MIAN ORG 0030H MIAN:
GW equ 60h;个位数据缓冲 SW equ 61h;十位数据缓冲 BW equ 62h;百位数据缓冲
J equ 63h;角数据缓冲 Y equ 64h;元数据缓冲 SY equ 65H;十元数据缓冲Mov GW,#0;初始化全为0 Mov SW,#0 Mov BW,#0 MOV J,#0 MOV Y ,#5 MOV SY,#0 MOV R1 ,#00H MOV R2 ,#00H MOV R0 ,#00H MOV R5 ,#00H MOV R6 ,#00H MOV TMOD ,#51H Mov TH1,#0 Mov TL1,#0
SETB C Setb TR1
;计数开始
START:
JNC LOOP
MOV A,GW
MOV DPTR ,#TAB
MOVC A ,@A+DPTR
MOV P0 ,A
MOV P2 ,#00H;//打开第一位数码管的显示电源
ACALL D1MS
MOV P2 ,#0FFH
MOV A,SW
MOV DPTR ,#TAB
MOVC A ,@A+DPTR
MOV P0 ,A
MOV P2 ,#01H;//打开第二位数码管的显示电源
ACALL D1MS
MOV P2 ,#0FFH
MOV A,BW
MOV DPTR ,#TAB
MOVC A ,@A+DPTR
MOV P0 ,A
MOV P2 ,#02H;//打开第三位数码管的显示电源
ACALL D1MS
MOV P2 ,#0FFH
MOV A,J
MOV DPTR ,#TAB
MOVC A ,@A+DPTR
MOV P0 ,A
MOV P2 ,#03H;//打开第四位数码管的显示电源
ACALL D1MS
MOV P2 ,#0FFH
MOV A,Y
MOV DPTR ,#TAB1
MOVC A ,@A+DPTR
MOV P0 ,A
MOV P2 ,#04H;//打开第五位数码管的显示电源
ACALL D1MS
MOV P2 ,#0FFH
MOV A,SY
MOV DPTR ,#TAB
MOVC A ,@A+DPTR
MOV P0 ,A
MOV P2 ,#05H;//打开第六位数码管的显示电源
ACALL D1MS
MOV P2 ,#0FFH
MOV A,TL1
MOV B ,#64H
DIV AB
MOV BW ,A
XCH A ,B
MOV B ,#0AH
DIV AB
MOV SW,A
MOV GW , B
MOV R0 ,TL1 CJNE R0 ,#05H , START LOOP: MOV A ,R0 SUBB A,#04H MOV B ,#08H MUL AB ADD A ,#50 MOV R5 ,A MOV A, B ADDC A ,#0 MOV R6 ,A
MOV R7,#08H H0:CLR C MOV A,R5 RLC A MOV R5,A MOV A,R6 RLC A MOV 07H,C CLR C SUBB A,#64H
JB 07H,H1 JNC H1 ADD A,#64H SJMP H2 H1:INC R5 H2:MOV R6 ,A
DJNZ R7 ,H0 MOV SY,R5 MOV A ,R6
MOV B ,#0AH
DIV AB
MOV Y ,A
MOV J,B
SETB C AJMP START D1MS:
MOV TMOD ,#51H
MOV
TL0 , #58H
MOV
TH0 , #0FFH
SETB TR0 WAIT1:
JNB
TF0 , WAIT1
CLR
TF0
CLR
TR0
RET
TAB :DB 0C0H ,0F9H ,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H
TAB1:DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,18H
课程设计心得
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
本次课程设计我的课题是做基与单片机的出租车计费系统和温度报警系统。当我拿到课题时候,我真的很激动,因为我知道,这不仅仅是一次课程设计,而且它将见证我大学单片机学习的成果。所以从一开始我就对该设计显得十分重视。我深信好好做课程设计,能给我带来巨大的收获。
通过努力,最终把这次课程设计的任务完成了。通过这次设计,得到了很多收获和体会。提高了自己的动手能力。第一,巩固和加深了对电子线路基本知识的理解,提高了编写程序的能力。第二,增强了根据课程需要选学参考资料,查阅手册,图表和文献资料的自学能力。通过独立思考,深入研究有关问题,学会自己分析解决问题的方法。第三,初步掌握了简单实用电路的分析方法和工程设计方法。第四,在这次课程设计过程中,光有理论知识是不够的,还必须懂一些实践中的知识。所以在课程设计的实践中,我们应将实验课与课堂教学结合起来,锻炼自己的理论联系实际的能力和实际动手能力。第五,掌握了比较常用的仪器的使用方法,科学态度。
回顾起此次单片机课程设计,我仍感慨颇多,的确,从理论到实践,在二个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
在设计中我遇到了很多编程问题,最后在石伟老师的辛勤指导下,终于游逆而解。同时,在石伟老师那里我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!