单片机课程设计及报告.docx
- 文档编号:23317479
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:28
- 大小:295.38KB
单片机课程设计及报告.docx
《单片机课程设计及报告.docx》由会员分享,可在线阅读,更多相关《单片机课程设计及报告.docx(28页珍藏版)》请在冰豆网上搜索。
单片机课程设计及报告
课程设计
资料袋
题目出租车计费系统的设计
成绩起止日期2012年12月31日~2013年1月4日
目录清单
序号
材料名称
资料数量
备注
1
课程设计任务书
2
课程设计说明书
3
课程设计图纸
25
张
4
5
6
课程名称:
单片机应用系统
设计题目:
出租车计费系统的设计
完成期限:
自2012年12月31日至2013年1月11日共2周
内
容
及
任
务
1.1外部脉冲自动计数,自动显示:
(1)设计255计数器:
0-255计数,计满后自动清0,重新计数(在数码管中显示)。
(2)设计50000计数器:
0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
1.2设计一个出租车计费系统:
起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后4位数码管显示价钱(角,元,十元,百元)
注:
要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机板上进行硬件调试。
进
度
安
排
起止日期
工作内容
2012.12.31
讲述设计内容及基本原理
2013.1.1-2013.1.8
进行系统的设计
2013.1.10-2013.1.11
进行系统的调试
主
要
参
考
资
料
[1]刘苗生、潘宗预.单片机测控系统设计.中国物质出版社,2006年
[2]周润景,张丽娜.基于PROTEUS的电路及单片机系统设计与仿真[M].北京航天航空大学出版社,2006
指导教师(签字):
年月日
系(教研室)主任(签字):
年月日
(单片机应用系统)
设计说明书
(题目)
出租车计费系统的设计
起止日期:
2012年12月31日至2013年1月11日
学生姓名
班级
学号
成绩
指导教师(签字)
2013年1月11日
一、设计任务:
1.1外部脉冲自动计数,自动显示。
1.1.1设计一个255计数器:
0-255计数,计满后自动清0,重新计数(在数码管中显示)。
1.1.2设计一个50000计数器:
0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
1.2设计一个出租车计费系统:
起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)
注:
要求首先采用PROTEUS完成单片机最小系统的硬件电路设计及仿真;程序仿真测试通过后,再下载到单片机实训板上执行。
二、单片机最小系统硬件资源介绍:
※89S51单片机;
※6位共阳极数码管;
※段码驱动器74HC573,位选译码器74HC138;
※4路独立式按键;
※外部晶振电路;
※ISP下载接口(Insystemprogram,在系统编程);
※DC+5V电源试配器(选配);
※ISP下载线(选配)。
三、课程设计报告要求:
1、统一要求用A4纸打印;
2、须包含以下内容:
(1)设计任务
(2)设计原理及思路
(3)各个设计任务的PROTEUS硬件电路图
(4)各个设计任务的调试程序;要有注释
(5)心得体会;800字左右
五、设计思路
1、设计一个255计数器:
0-255计数,计满后自动清0,重新计数(在数码管中显示)。
2、设计一个50000计数器:
0-50000计数,计满后自动清0,重新计数(在数码管中显示)。
3、设计一个出租车计费系统:
起步价为5元(2km以内),2km后,0.8元/0.5km;要求每500m刷新计费一次,在8位数码管中,前3位显示数码管显示里程数,后3位数码管显示价钱(角,元,十元,百元)
设计思路与原理
六、设计内容:
6.10—255数码管计数
1.程序清单
ORG0000H
LJMPMAIN
ORG001BH;计数器T1入口地址
LJMPT1INT
ORG0030H
MAIN:
MOVSP,#60H
MOVTMOD,#0D0H;对P3.5下降沿计数
MOVTH1,#0FFH;从FF00开始计数到FFFF时进中断共255
MOVTL1,#000H
SETBTR1
SETBET1
SETBEA
HERE:
MOVA,TL1;A保存脉冲次数
MOVB,#64H
DIVAB
MOV20H,A;百位
MOVA,B
MOVB,#0AH
DIVAB
MOV21H,A;十位
MOV22H,B;个位
LCALLDISP;显示
SJMPHERE;循环
T1INT:
MOVTH1,#0FFH;赋初值
MOVTL1,#000H
RETI
;;;;;;;;;;;;;;;;;显示子程序;;;;;;;;;;;;;;
DISP:
MOVR0,#20H;指针指向显示缓冲区
MOVR7,#3;设循环显示的次数显示3位数据
CLRC
MOVR6,#001H;从p2.0开始显示即先显示第一位
LL:
MOVA,R6
MOVP2,A;控制显示位
MOVDPTR,#TAB;数据指针指向显示编码表达首地址
MOVA,@R0
MOVCA,@A+DPTR;取显示编码
MOVP0,A;送P0口显示
LCALLYS1MS;延时显示时间
MOVA,R6
RLCA;修改显示位
MOVR6,A
INCR0;指向下一个要显示的数据
LCALLYS1MS;延时显示时间
DJNZR7,LL;3位数据没显示完则转LL继续显示
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H;显示编码
DB92H,82H,0F8H,80H,90H
YS1MS:
MOVR5,#10;延时1ms子程序
YSLL:
MOVR4,#50
YYLL:
DJNZR4,YYLL
DJNZR5,YSLL
RET
DELAY:
MOVR3,#10
LOOP2:
LCALLYS1MS
DJNZR3,LOOP2
RET
2.PROTUES仿真图
6.2、0—50000数码管计数
1.程序清单:
ORG0000H
LJMPMAIN
ORG001BH
LJMPT1INT
MAIN:
MOVSP,#60H
MOVTMOD,#0E0H;对P3.5下降沿计数工作方式2
MOVTH1,#9CH;从9C开始计数100次
MOVTL1,#9CH
SETBTR1
SETBET1
SETBEA
MOV30H,#0;将千百位置零
MOV31H,#0;将万位置零
HERE:
MOVA,TL1
SUBBA,#9CH
MOVB,#0AH
DIVAB
MOV24H,B;个位
MOV23H,A;十位
MOVA,30H
MOVB,#0AH
DIVAB
MOV22H,B;百位
MOV21H,A;千位
MOVR2,30H
CJNER2,#100,LOOP4;如果百千位为100清零千百位万位进一否者LOOP4
MOV30H,#000H
MOVA,31H
INCA
MOV31H,A
LOOP4:
MOVR1,31H
CJNER1,#5,LOOP5;如果万位超过5清零万位
MOV31H,#000H
LOOP5:
MOV20H,31H
LCALLDISP
SJMPHERE
T1INT:
MOVA,30H
INCA;百位进一
MOV30H,A
RETI
;;;;;;;;;;;;;;;;;显示子程序;;;;;;;;;;;;;;
DISP:
MOVR0,#20H;指针指向显示缓冲区
MOVR7,#5;设循环显示的次数显示5位数据
CLRC
MOVR6,#001H;从p2.0开始显示即先显示第一位
MOVA,R6
LL:
MOVA,R6
MOVP2,A;控制显示位
MOVDPTR,#TAB;数据指针指向显示编码表达首地址
MOVA,@R0
MOVCA,@A+DPTR;取显示编码
MOVP0,A;送P0口显示
LCALLYS1MS;延时显示时间
MOVA,R6
RLCA;修改显示位
MOVR6,A
INCR0;指向下一个要显示的数据
LCALLYS1MS;延时显示时间
DJNZR7,LL;3位数据没显示完则转LL继续显示
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H;显示编码
DB92H,82H,0F8H,80H,90H
YS1MS:
MOVR5,#10;延时1ms子程序
YSLL:
MOVR4,#50
YYLL:
DJNZR4,YYLL
DJNZR5,YSLL
RET
DELAY:
MOVR3,#10
LOOP2:
LCALLYS1MS
DJNZR3,LOOP2
RET
2.PROTUES仿真图
6.3出租车计费系统
1.程序清单
ORG0000H
LJMPMAIN
ORG0003H;INT0
LJMPINT0
ORG001BH;T1
LJMPT1INT
MAIN:
MOVSP,#60H
MOVTMOD,#0D0H;对P3.5下降沿计数工作方式1
MOVTH1,#0FEH;从FE0C开始计数500次计为500米
MOVTL1,#0CH
SETBTR1
SETBET1
SETBEA
MOV30H,#0;里程个位和小数位
MOV31H,#50;金额个位和小数位
MOV32H,#0;里程十位和百位
MOV33H,#0;金额十位和百位
MOVR1,#5
SETBIT0
SETBEX0
SETBEA
MOVR2,#1;标志位
HERE1:
CJNER2,#1,LOOP10;标志位为1时清零
CLRTR1
MOV30H,#0
MOV31H,#0
MOV32H,#0
MOV33H,#0
LJMPHERE
LOOP10:
CJNER2,#2,LOOP11;标志位为2时计费
SETBTR1
LJMPHERE
LOOP11:
CJNER2,#3,LOOP12;标志位为3时暂停
CLRTR1
LJMPHERE
LOOP12:
SJMPHERE1
HERE:
MOVA,30H
CJNEA,#100,LOOP5;30H等于100清零30H32H进一
MOV30H,#0
MOVA,32H
INCA
MOV32H,A
LOOP5:
MOVA,30H
MOVB,#0AH
DIVAB
MOV23H,B;显示里程个位和小数位
MOV22H,A
MOVA,32H
MOVB,#0AH
DIVAB
MOV21H,B;显示里程十位百位
MOV20H,A
;以上里程显示以下金额显示
LOOP7:
MOVA,31H
CJNEA,#106,LOOP8;如果31H为106将31H赋值633H进一
MOV31H,#6
MOVA,33H
INCA
MOV33H,A
SJMPLOOP9
LOOP8:
CJNEA,#102,LOOP9;如果31H为102将31H赋值233H进一
MOV31H,#2
MOVA,33H
INCA
MOV33H,A
CJNEA,#100,LOOP9;如果金额超过999.9重新开始
MOV30H,#0
MOV31H,#50
MOV32H,#0
MOV33H,#0
SJMPHERE
LOOP9:
MOVA,31H
MOVB,#0AH
DIVAB
MOV27H,B;显示金额个位小数位
MOV26H,A
MOVA,33H
MOVB,#0AH
DIVAB
MOV25H,B
MOV24H,A;显示金额十位百位
LCALLDISP
LJMPHERE1
T1INT:
MOVTH1,#0FEH
MOVTL1,#0CH
MOVA,30H;里程加5
ADDA,#5
MOV30H,A
DJNZR1,LOOP1
MOVA,31H
ADDA,#8;金额加8
MOV31H,A
INCR1
LOOP1:
RETI
INT0:
INCR2
CJNER2,#2,HE1;计数前要将31值还原
MOV31H,#50
HE1:
CJNER2,#4,CZD;当标志位超过4时将标志位还原
MOVR2,#1
MOVR1,#5;计费等待还原
CZD:
RETI
;;;;;;;;;;;;;;;;;显示子程序;;;;;;;;;;;;;;
DISP:
MOVR0,#20H;指针指向显示缓冲区
MOVR7,#8;设循环显示的次数显示8位数据
MOVR6,#001H;从p2.0开始显示即先显示第一位
LL:
MOVA,R6
MOVP2,A;控制显示位
CJNER6,#04H,LOOP2;位选04时显示数字带小数点
MOVDPTR,#TAB1
SJMPLOOP4
LOOP2:
CJNER6,#40H,LOOP3;位选40时显示数字带小数点
MOVDPTR,#TAB1
SJMPLOOP4
LOOP3:
MOVDPTR,#TAB;数据指针指向显示编码表达首地址
LOOP4:
MOVA,@R0
MOVCA,@A+DPTR;取显示编码
MOVP0,A;送P0口显示
LCALLYS1MS;延时显示时间
MOVA,R6
RLA;修改显示位
MOVR6,A
INCR0;指向下一个要显示的数据
LCALLYS1MS;延时显示时间
DJNZR7,LL;8位数据没显示完则转LL继续显示
RET
TAB1:
DB40H,79H,24H,30H,19H;显示编码
DB12H,02H,78H,00H,10H
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H;显示编码
DB92H,82H,0F8H,80H,90H
YS1MS:
MOVR5,#10;延时1ms子程序
YSLL:
MOVR4,#50
YYLL:
DJNZR4,YYLL
DJNZR5,YSLL
RET
2.PROTUES仿真图
6.4简易计算器
1.程序清单
ORG0000H
SJMPSTART
ORG0003H
SJMPINT0
START:
SETBEX0
SETBIT0
SETBEA
MOV60H,#020H;60H为赋值判断标志
MOV61H,#030H;61H为显示判断标志
MOVR2,#1
MAIN:
MOVP1,#0F0H;为进中断做准备
MOVA,61H
CJNEA,#030H,XS51H;如果61H为0显示操作数1为1显示操作数2
MOVA,50H
XS51H:
CJNEA,#031H,XSJG
MOVA,51H
XSJG:
CJNEA,#032H,L3
MOVA,52H
L3:
LCALLZH
MOVA,65H
CJNEA,#0DBH,NEXT1;加
MOVA,50H
MOVB,51H
ADDA,B
MOV52H,A
NEXT1:
CJNEA,#0EBH,NEXT2;减
MOVA,50H
MOVB,51H
SUBBA,B
MOV52H,A
NEXT2:
CJNEA,#77H,NEXT3;乘
MOVA,50H
MOVB,51H
MULAB
MOV52H,A
NEXT3:
CJNEA,#0B7H,NEXT4;除
MOVA,50H
MOVB,51H
DIVAB
MOV52H,A
NEXT4:
CJNEA,#0D7H,L6;等于
MOV61H,#032H
L6:
LCALLDISP
SJMPMAIN
ZH:
MOVB,#64H;将十六进制数转换成十进制数用来显示
DIVAB
MOV25H,A;百位
MOVA,B
MOVB,#0AH
DIVAB
MOV26H,A;十位
MOV27H,B;个位
RET
INT0:
LCALLDELAY;防抖
MOVA,P1
CJNEA,#0F0H,L1
RETI
L1:
MOVP1,#0F0H;读特征码高四位
MOVA,P1
MOVB,A
MOVP1,#0FH;读特征码低四位
MOVA,P1
ORLA,B;组合成特征码
CJNEA,#0DBH,NEXT5;加
MOV65H,A;加法程序标志位
MOV60H,#021H;再次按数字键时给到操作数2
MOV51H,#0
RETI
NEXT5:
CJNEA,#0EBH,NEXT6;减
MOV65H,A
MOV60H,#021H
MOV51H,#0
RETI
NEXT6:
CJNEA,#77H,NEXT7;乘
MOV65H,A
MOV60H,#021H
MOV51H,#0
RETI
NEXT7:
CJNEA,#0B7H,NEXT8;除
MOV65H,A
MOV60H,#021H
MOV51H,#0
RETI
NEXT8:
CJNEA,#0D7H,NEXT9;等于
MOV61H,#032H;显示结果
MOV60H,#020H
MOVR2,#1
RETI
NEXT9:
CJNEA,#0E7H,NEXT10;清零
MOV60H,#020H;赋值标志位清零
MOV61H,#030H;显示标志位清零
MOV50H,#0;操作数1清零
MOV51H,#0;操作数2清零
MOV65H,#0;子程序标志位清零
MOVR2,#0
MOV52H,#0
RETI
NEXT10:
MOVB,A
MOVDPTR,#TAB1
MOVR1,#0FFH;以下是比较特征码读出键值
CJZ:
INCR1
MOVA,R1
MOVCA,@A+DPTR
CJNEA,B,CJZ
MOVB,R1
MOVA,60H;当60H为0时给操作数1赋值为1时给操作数2赋值
CJNEA,#020H,L4
MOVA,R2
CJNEA,#1,L10
DECA
MOVR2,A
MOV50H,#0
L10:
MOV55H,B
MOVA,50H
MOVB,#0AH
MULAB
ADDA,55H
MOV50H,A
MOV61H,#030H
L4:
CJNEA,#021H,L5
MOV56H,B
MOVA,51H
MOVB,#0AH
MULAB
ADDA,56H
MOV51H,A
MOV61H,#031H
L5:
RETI
TAB1:
DB7EH,0BEH,0DEH,0EEH;0123
DB7DH,0BDH,0DDH,0EDH;4567
DB7BH,0BBH,0DBH,0EBH;89+-
DB77H,0B7H,0D7H,0E7H;*/clr
;;;;;;;;;;;;;;;;显示子程序;;;;;;;;;;;;;;
DISP:
MOVR0,#20H;指针指向显示缓冲区
MOVR7,#8;设循环显示的次数显示8位数据
MOVR6,#001H;从p2.0开始显示即先显示第一位
MOVA,R6
LL:
MOVA,R6
MOVP2,A;控制显示位
MOVDPTR,#TAB;数据指针指向显示编码表达首地址
MOVA,@R0
MOVCA,@A+DPTR;取显示编码
MOVP0,A;送P0口显示
LCALLYS1MS;延时显示时间
MOVA,R6
RLA;修改显示位
MOVR6,A
INCR0;指向下一个要显示的数据
LCALLYS1MS;延时显示时间
DJNZR7,LL;8位数据没显示完则转LL继续显示
RET
TAB:
DB0C0H,0F9H,0A4H,0B0H,99H;显示编码
DB92H,82H,0F8H,80H,90H
YS1MS:
MOVR5,#10;延时1ms子程序
YSLL:
MOVR4,#50
YYLL:
DJNZR4,YYLL
DJNZR5,YSLL
RET
DELAY:
MOVR3,#10
LOOP2:
LCALLYS1MS
DJNZR3,LOOP2
RET
2.protues仿真图
可以加减乘除不过操作数和结果都只能在255之内下一次计算可以不必清零直接进行
加法63+58=121
七、设计心得
通过这次单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好的应用到了实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告