沈 阳 工 程 学 院
课 程 设 计
设计
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目: 电子秒表程序设计
系 别 自动控制工程系 班级 学生姓名 学号
指导教师 职称 教授 起止日期:2013年 1 月 7日起—2013 年 1 月 18日止
电子秒表程序设计
沈阳工程学院
课程设计任务书
课程设计题目: 电子秒表程序设计
系 别 自动控制工程系 班级
学生姓名 学号
指导教师 吕勇军 职称 教授 课程设计进行地点: F座422 任 务 下 达 时 间: 13年 1月7日
起止日期: 13年1月7日起——至13年1月18日止
教研室主任 年 月 日批准
II
电子秒表程序设计
1.设计主要内容及要求;
编写电子秒表程序。
要求:1)具有秒表基本功能。
2)显示最小数为0.1秒。
3)能够进行多路计数并分别显示。
2.对设计论文撰写内容、格式、字数的要求;
(1).课程设计论文是体现和总结课程设计成果的载体,一般不应少于3000字。
(2).学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计论文的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。
(3).论文要求打印,打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
(4). 课程设计论文装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。
3.时间进度安排;
顺序 阶段日期 计 划 完 成 内 容 备注
1 1月7日 教师讲解题目,学生查阅相关资料
2 1月8日 查阅相关资料、进行
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
论证
3 1月9日 确定多路计数和显示方法
4 1月10、11、编写程序
14日
5 1月15、16日 调试程序
6 1月17日 撰写论文
7 1月18日 论文答辩
III
电子秒表程序设计
沈 阳 工 程 学 院
电子秒表 课程设计成绩评定
系(部):班级: 学生姓名:
指 导 教 师 评 审 意 见
评价 加权具 体 要 求 权重 评 分 内容 分 调研 能独立查阅文献,收集资料;能制定课程设计方案0.1 5 4 3 2 论证 和日程安排。
工作工作态度认真,遵守纪律,出勤情况是否良好,能能力 0.2 5 4 3 2 够独立完成设计工作, 态度
工作按期圆满完成规定的设计任务,工作量饱满,难度0.2 5 4 3 2 量 适宜。
说明
说明书
房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载
立论正确,论述充分,结论严谨合理,文字
书的通顺,技术用语准确,符号统一,编号齐全,图表0.5 5 4 3 2 质量 完备,书写工整规范。
指导教师评审成绩 分 加权分合计 (加权分合计乘以12)
指 导 教 师 签 名: 年 月 日
评 阅 教 师 评 审 意 见
评价 加权具 体 要 求 权重 评 分 内容 分 查阅 查阅文献有一定广泛性;有综合归纳资料的能力 0.2 5 4 3 2 文献
工作工作量饱满,难度适中。 0.5 5 4 3 2 量
说明说明书立论正确,论述充分,结论严谨合理,文字
书的通顺,技术用语准确,符号统一,编号齐全,图表0.3 5 4 3 2 质量 完备,书写工整规范。
评阅教师评审成绩 分 加权分合计 (加权分合计乘以8)
评 阅 教 师 签 名: 年 月 日
课 程 设 计 总 评 成 绩 分
IV
电子秒表程序设计
摘 要
单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
这次电子秒表设计通过对一个基于C8051F020单片机的功能实现电子秒表工作的设计学习。单片机控制秒表是集单片机技术,模拟电子技术,数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。
本次设计内容为以C8051单片机为核心的秒表,利用单片机的定时器/计数器的定时和计数的原理,用集成电路芯片、LED数码管以及按键来设计计时器,将软件硬件有机的结合起来,使他拥有正确的计时、暂停、清零并同时可以用数码管显示,将单片机应用中的数据转换显示,液晶显示原理,单片机的定时中断的理解更加深刻。传统的秒表可以分为机械停表和电子秒表,本次设计的秒表为电子秒表,可以进行数据的存储、读取、显示的功能,电子秒表在我们日常生活中随处可见,它不仅应用在体育计时中,而且还与工业计时有着重要的联系。
关键词 C8051F020单片机,电子秒表,LCD液晶显示,
V
电子秒表程序设计
目 录
1设计任务描述 .................................................. - 1 -
2设计思路 ...................................................... - 2 - 3思路框图 ...................................................... - 3 - 4各部分程序设计及参数计算 ...................................... - 4 -
4.1定时器程序设计........................................... - 4 -
4.2数据转换程序设计......................................... - 5 -
4.3液晶部分程序设计......................................... - 6 -
4.4中断显示程序设计......................................... - 9 -
4.5 主程序简介 ............................................. - 13 - 5工作过程分析 ................................................. - 14 - 6元器件清单 ................................................... - 15 - 7主要器件介绍 ................................................. - 16 -
7.1 C8051f020单片机........................................ - 16 -
7.1.1管脚图 ............................................ - 16 -
7.1.2简介 .............................................. - 16 - 总 结.......................................................... - 18 - 致 谢........................................ 错误~未定义书签。- 19 - 参考文献....................................................... - 18 - 源程序清单..................................................... - 19 -
VI
电子秒表程序设计
1设计任务描述
1.设计主要内容及要求;
编写电子秒表程序。
要求:1)具有秒表基本功能。
2)显示最小数为0.1秒。
3)能够进行多路计数并分别显示。
2.对设计论文撰写内容、格式、字数的要求;
(1).课程设计论文是体现和总结课程设计成果的载体,一般不应少于3000字。
(2).学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计论文的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。
(3).论文要求打印,打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
(4). 课程设计论文装订顺序为:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、参考文献。
- 1 -
电子秒表程序设计
2设计思路
本次设计内容为以C8051单片机为核心的秒表,利用单片机的定时器/计数器的定时和计数的原理,用集成电路芯片、LED数码管以及按键来设计计时器。
首先程序运用定时器产生50ms定时功能,50ms循环定时两次即可达到100ms(即0.1s)的精度要求。利用毫秒与秒的进位十进制关系,秒于分钟六十进制的进位关系,从而设计秒表的工作方式。将30H作为0.1秒的存储单元,31H作为秒的存储单元,32H作为分钟的存储单元,逐次进行显示。30H,31H,32H中均存入的是十六进制的数,运用除法运算将十六进制数据转化成相应的ASCII码,分秒的十位别分存在33H和35H中,个位存入34H和36H中,而0.1秒那一位存入37H中。显示过程中数据的采集由外部中断6来进行完成,当按下KEY3时,程序进入外部中断6。中断6执行计数功能,按下KEY3一次,进行一次计数功能,并且将记录的数据存入相应的单元。
此次设计的电子秒表是利用定时器,外部中断6,7来进行实现的。外部按键控制外部中断6和外部中断7的程序。首先按下KEY3开始记录数据,然后第二次按下KEY3时存储第一个数据,依次类推可以存储五组数据,当第一次按下KEY4程序停止计时,第二次按下KEY4读取已经存储的第一个数据,依次类推可以读取之前存储的五组数据。
因为存于30H,31H,32H中的数为十六进制数,液晶显示器无法直接显示其中的数值,因此需将十六进制数转化为液晶显示器识别的ASCII码。即将32H中的十六进制数放在累加器A中。把10放在寄存器B中,执行DIV AB此时A、B中都是BCD数,而LCD只能识别ASCII码,所以要分别将A和B中的数加30H转化成ASCII码33H和34H中,再进行显示。
- 2 -
电子秒表程序设计
3思路框图
主程序
50ms定时器中断
液晶显示
按下KEY3
中断6
存入数据
中断7
按下KEY4
读取数据
- 3 -
电子秒表程序设计
4各部分程序设计及参数计算
4.1定时器程序设计
定时中断程序是一个进位程序,主要负责对1ms的加一。1ms位没有满十就跳出中断程序,返回显示程序。当1ms位满十后就对1ms位清零,向10ms位加一,同时
检测
工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训
10ms位是否满十,没有满十就跳出中断程序,返回显示程序。如果满十就向100ms位加一,依次类推。
/计数器T0工作在方式0下,TH0和TL0组成一个16位的二进制数计定时
数器。单片机开机或复位时,它的值为00H,当T0启动后,从第一个输入脉冲开始计时,每来一个脉冲计数加一,在计数一个脉冲时TH0和TL0组成的16位计数器将会从16个1变成16个0,并产生溢出,溢出位将被送到TF0标志位,通过溢出标志产生溢出中断请求。显然,T0定时器在方式0下引起一次中断所
16 允许计数的最多脉冲个数为2个。
现在本设计要求1ms实现一次中断,选择定时器T0工作在方式0。所以需要根据以上条件计算出T0的初值。
电子秒表中定时器采用方式一,定时周期为50ms。计算
公式
小学单位换算公式大全免费下载公式下载行测公式大全下载excel公式下载逻辑回归公式下载
如下:
设T0的初值为X,则:
166 -3 T=2—(12*10*50*10)/12=15536=3CB0
即TH0=03CH(取X的高8位)
TL0=0B0H(取X的低8位)
产生50ms秒时间,通过控制循环次数两次使之达到10毫秒的定时功能,再通过相应条件进行满10和满60计数。
定时器的程序:
T0:
CLR TF0 //T0中断标志位清0;
MOV TL0, #0B0H //赋产生定时时间为50毫秒的初值;
MOV TH0, #03CH
DJNZ R2 LOP1 //循环2次未返回继续,实现100毫秒定时;
MOV R2 #02H
INC 30H // 100毫秒到30H单元中数据加1;
MOV A, 30H
CJNE A, #10 LOP1 //用于实现1秒的计数,1秒未到返回继
MOV 30H,#00H // 续,1秒到30H单元清零,31H单元加1
INC 31H
MOV A, 31H
CJNE A, #60 ,LOP1
MOV 30H, #00H //给秒数,毫秒,分存的地址单元清零
MOV 31H, #00H
MOV 32H, #00H
LOP1:RETI
- 4 -
电子秒表程序设计 4.2数据转换程序设计
在单片机中液晶显示部分只能用ASCII码值进行显示
数据转换程序如下:
液晶显示计数的数值:
: MOV A, 32H
把32H单元中数送到累加器A中;
MOV B, #10
把10送到寄存器B中;
DIV AB
ADD A, #30H
运用除法运算,使得寄存器A,B分别存32H单元中数值的十位和个位,
再分别把他们转换成ASCII码值进行显示,然后把A中数据送给33H单元
MOV 33H, A
MOV A, B
ADD A, #30H
MOV B, A
MOV 34H, B
MOV A, 31H
MOV B, #10
DIV AB
ADD A, #30H
MOV 35H, A
MOV A, B
ADD A, #30H
MOV B, A
MOV 36H, B
MOV A, 30H
MOV B, #0A0H
DIV AB
MOV A, B
ADD A, #30H
MOV B, A
MOV 37H, B
数据转换基本思路:
将30H,31H,32H分别作为毫秒,秒,分的十六位数据存储地址,然后运
用除法将30H,31H,32H中的十六进制数高四位和第四位数据分离,分别存入
累加器A和B中,然后将32H,31H,30H中的数据的高低四位分别显示在33H,
34H,35H,36H,37H中,该组地址中完成了30H,31H,32H,中十六进制数据到
ASCII码值的转换,然后将这些地址中的数据显示在液晶屏幕上。
- 5 -
电子秒表程序设计 4.3液晶部分程序设计
4.3.1—液晶初始化程序:
LCALL DELAY
MOV P7,#38H //功能设置:两行显示,5×7点阵
MOV P6,#01H //写命令
MOV P6,#00H //结束写命令
LCALL DELAY
MOV P7,#0EH //开显示,开光标,字符不闪烁
MOV P6,#01H //写命令
MOV P6,#00H //结束写命令
LCALL DELAY
MOV P7,#06H //I/D=1,AC自动增1;S=0,整体显示不移动
MOV P6,#01H //写命令
MOV P6,#00H //结束写命令
LCALL DELAY
MOV P7,#01H //清除DDRAM,置AC=0
MOV P6,#01H //写命令
MOV P6,#00H //结束写命令
LCALL DELAY
- 6 -
电子秒表程序设计
4.3.2—液晶显示部分程序:
MOV P7,#01H
MOV P6,#01H
MOV P6,#00H
LCALL DELAY
MOV P7,33H
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,34H
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,#':'
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,35H
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,36H
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,#':'
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,37H
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,#0C0H
MOV P6,#1
MOV P6,#0H
LCALL DELAY
MOV P7,#'T'
MOV P6,#05H
MOV P6,#04H LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
- 7 -
电子秒表程序设计
LCALL DELAY
LCALL DELAY
MOV A,99H
CJNE A,#00H,LOOOP
MOV A,R1
ADD A,#30H
MOV P7,A
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
注释 :利用LCD模块的3条信号线RSR/W和E控制LCD的读写操作,RS为寄存器选择位,RS=1,选择数据寄存器;RS=0,选择指令寄存器;E为使能信号,
/写信号,R/W反=1,为读;R/W反=0,为写;D0-D7是下降沿触发;R/W反为读
8位数据总路线;将P6.0线与E端相连,P6.1线与R/W端相连,P6.2线与RS
端相连可利用I/O线P6.2,P6.1和P6.0代替RS,R/W反和E实现读/写操作。
此部分液晶显示程序是为了显示分:秒:毫秒。
- 8 -
电子秒表程序设计 4.4中断显示程序设计
利用外部中断6和外部中断7实现了数据的采集和数据的显示工作,当执
行按下KEY3时候,进入外部中断6,程序记录一个数值,并将该数值存入相应
的地址,外部中断6的执行次数由寄存器R1来显示,每执行一次中断6,R1的
值加1,将此次记录的数据送入相应的单元进行存储。
其程序设计如下:
4.4(1—INT6程序设计
INT6:
SETB TR0
MOV 99H,#00H
MOV A,R6
CJNE A,#00H,LOP2
INC A
MOV R6,A
MOV R1,#00H
LJMP LOP7
LOP2: MOV A,R6
CJNE A,#01H,LOP3
INC A
MOV R6,A
MOV 43H,30H
MOV 44H,31H
MOV 45H,32H
LJMP LOP7
LOP3: MOV A,R6
CJNE A,#02H,LOP4
INC A
MOV R6,A
MOV 48H,30H
MOV 49H,31H
MOV 50H,32H
LJMP LOP7
LOP4: MOV A,R6
CJNE A,#03H,LOP5
INC A
MOV R6,A
MOV 53H,30H
MOV 54H,31H
MOV 55H,32H
LJMP LOP7
LOP5: MOV A,R6
CJNE A,#04H,LOP6
INC A
- 9 -
电子秒表程序设计
MOV R6,A
MOV 58H,30H
MOV 59H,31H
MOV 60H,32H
LJMP LOP7
LOP6: MOV A,R6
CJNE A,#05H,LOP7
MOV 63H,30H
MOV 64H,31H
MOV 65H,32H
INC A
MOV R6,A
LJMP LOP12
CLR TR0
LOP7:
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
MOV P3IF,#00H
RETI
程序注释:
该段程序中利用外部中断6实现程序的记录数据功能,首先利用寄存器R6
的数值来选择它记录数据的存储单元,如果是第一次按下KEY3键则执行秒表开
始工作状态,从零开始计数。当第二次按下KEY3时候,将R7中数值加1,记
录当前数值,并将数值存入43H,44H,45H单元中。根据上述记录方式,没三
个单元记录一组数据,根据辨析程序,最多可以记录六组数据,将其存入43H~51H
中,并且调用液晶显示程序将其显示,调用显示部分由中断7来完成。
- 10 -
电子秒表程序设计
4.4(2—INT7程序设计
INT7:
CLR TR0
MOV 99H,#01
MOV A,R1
CJNE A,#00H,LOP8 INC A
MOV R1,A
MOV R6,#00
LJMP LOP14
LOP8: MOV A,R1
CJNE A,#01H,LOP9
INC A
MOV R1,A
MOV 30H,43H
MOV 31H,44H
MOV 32H,45H
LJMP LOP14 LOP9: MOV A,R1
CJNE A,#02H,LOP10
INC A
MOV R1,A
MOV 30H,48H
MOV 31H,49H
MOV 32H,50H
LJMP LOP14 LOP10: MOV A,R1
CJNE A,#03H,LOP11
INC A
MOV R1,A
MOV 30H,53H
MOV 31H,54H
MOV 32H,55H
LJMP LOP14 LOP11: MOV A,R1
CJNE A,#04H,LOP12
INC A
MOV R1,A
MOV 30H,58H
MOV 31H,59H
MOV 32H,60H
LJMP LOP14 LOP12: MOV A,R1
- 11 -
电子秒表程序设计
CJNE A,#05H,LOP13
INC A
MOV R1,A
MOV 30H,63H
MOV 31H,64H
MOV 32H,65H
LJMP LOP14 LOP13:MOV A,R1
CJNE A,#06H,LOP14
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV R6,#00H
MOV R2,#02H
MOV R1,#00H LOP14:LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
MOV P3IF,#00H
RETI
DELAY:MOV R5,#01H DELAY1:MOV R4,#25H DELAY0:MOV R3,#00H
DJNZ R3,$
DJNZ R4,DELAY0
DJNZ R5,DELAY1
RET
DELAY11:MOV R7,#255 DLY0:MOV R0,#255
DLY1: DJNZ R0,DLY1
DJNZ R7,DLY0 RET
程序注释:
本段程序实现了读取功能,按下KEY4时进行数据查询,第一次按下时,记
录秒表当前数值,第二次按下显示第一个数值,以此类推即可显示多组记录数据。
- 12 -
电子秒表程序设计
4.5 主程序简介
主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统(上电)复位后,进入主程序,首先对系统进行初始化,包括
”、赋定时器初值。在设置各入口地址、中断的开启、对各个数据缓存区清“0
主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。当外部中断有请求则去执行外部中断服务程序。并在执行完后返回主程序。
MAIN: MOV WDTCN,#0DEH
MOV WDTCN,#0ADH 关看门狗程序
MOV OSCXCN,#67H 选择外部振荡器,位6-4为110,则选择外部
晶体的振荡方式
LOP: MOV A,OSCXCN
JNB ACC.7,LOP 由于选择外部晶体的振荡启动需要几毫秒的时
间,所以等待外部振荡器位7为逻辑1
MOV OSCICN,#08H
MOV CKCON,#00H 选择分频
MOV TMOD,#01H 定时器选择工作方式为方式1
MOV TL0,#0B0H
MOV TH0,#3CH 定时器赋50ms初值
MOV P3IF,#00H 中断标志位
MOV EIE2,#30H 外部中断6,7使能
MOV P1MDOUT,#0FFH 选择P1口为推挽输出
MOV P74OUT,#0F0H 端口4-7输出方式为推挽
MOV XBR2,#40H 交叉开关使能
- 13 -
电子秒表程序设计
5工作过程分析
此次设计的电子秒表,实现了电子秒表的电子秒表的基本功能:存储数据、提取数据、清零功能,以及实现了多路计数功能。
首先,对各个应用到的端口和数据进行初始化;然后选择定时器的工作方式(本实验中选择的是16位的定时器);之后是计算定时器初值,选择定时周期;计算公式如下:T=216—(12*106 *50*10-3 )/12=15536=3CB0。所以TL0赋值为0B0H,TH0赋值为03CH。产生50ms时间,通过控制循环次数两次使之达到100毫秒的定时功能,再通过相应条件进行满10和满60计数。
外部按键控制外部中断6和外部中断7的程序。首先按下KEY3开始记录数据,然后第二次按下KEY3时存储第一个数据,依次类推可以存储五组数据,当第一次按下KEY4程序停止计时,第二次按下KEY4读取已经存储的第一个数据,依次类推可以读取之前存储的五组数据。
此次设计液晶起到了至关重要的作用,液晶的初始化,然后将中断七地址中的数据用以液晶显示。达到实验要求和目的。
- 14 -
电子秒表程序设计
6元器件清单
名称 符号 数量
电源插座 GN-107 1
电脑 方正电脑 1
单片机 C8051F020 1
显示器 LCD1602 1 电键 K 4 插针 ---- 若干 电阻 R 若干 电容 C 若干
表6.1元件清单
- 15 -
电子秒表程序设计
DAC0100DAC17主要器件介绍 99P4.098P4.197P4.2ALE/P4.596P4.3/RD/P4.6957.1 C8051f020单片机 P4.4/WR/P4.794939291A8/P5.07.1.1管脚图 VDD90DGNDA9/P5.1A10/P5.289A11/P5.388A?A12/P5.487A13/P5.586A8m/A0/P6.0A14/P5.68575A9m/A1/P6.1A15/P5.7A13m/A5/P6.5A10m/A2/P6.284741A14m/A6/P6.683A13m/A3/P6.3TMS732A15m/A7/P6.782TCK72A12/A4/P6.43AD0/D0/P7/081TDI714AD1/D1/P7.180TDO705AD2/D2/P7.279/RST696AD3/D3/P7.378CP1--687AD4/D4/P7.477CP1+678AD5/D5/P7.576CP0-669AD6/D6/P7.6CP0+6510AD7/D7/P7.7AGND6411VDDAV+6312AGNDVREF6213P0.0AGNDC8051F0206114P0.1AV+6015P0.2VREFD5916P0.3VREF05817P0.4VREF15718ALE/P0.5AIN0.05619/RD/P0.6AIN0.15520/WR/P0.7AIN0.25421AD0/D0/P3.0AIN0.35322AD1/D1/P3.1AIN0.45223AD2/D2/P3.2AIN0.55124AIN2.7/A15/P1.7AD3/D3/P3.3AIN0.625AIN2.6/A14/P1.6AIN0.7AIN2.5/A13/P1.5AIN2.4/A12/P1.4XTAL1 AIN2.3/A11/P1.3XTAL226AIN2.2/A10/P1.2MONEN27 28AIN2.1/A9/P1.129AIN2.0/A8/P1.0图7.1 c8051f020引脚图 30313233A15m/A7/P2.77.1.2简介 34A14m/A6/P2.635A13m/A5/P2.536A14m/A4/P2.4VDD37A11m/A3/P2.3DGND38A10m/A2/P2.2 C8051F020 器件是完全集成的混合信号系统级MCU芯片, 具有64 个39A9m/A1/P2.140A8m/A0/P2.0数字I/O 引脚 (C8051F020/2)或32 个数字I/O 引脚(C8051F021/3)。41AD7/D7/P3.742AD6/D6/P3.643下面列出了一些主要特性; AD5/D5/P3.544AD4/D4/P3/445 1.? 高速、流水线结构的8051 兼容的CIP-51 内核(可达25MIPS) 464748 2.? 全速、非侵入式的在系统调试接口(片内) 4950 3.? 真正12 位(C8051F020/1)或10 位(C8051F022/3)、100 ksps 的8 通道ADC,带PGA和模拟多路开关
4.? 真正8 位500 ksps 的ADC,带PGA 和8 通道模拟多路开关
5.? 两个12 位DAC,具有可编程数据更新方式
6.? 64K 字节可在系统编程的FLASH 存储器
7.? 4352(4096+256)字节的片内RAM
8.? 可寻址64K 字节地址空间的外部数据存储器接口
9.? 硬件实现的SPI、SMBus/ I2C 和两个UART 串行接口
10. 5 个通用的16 位定时器
11. 具有5 个捕捉/比较模块的可编程计数器/定时器阵列
- 16 -
电子秒表程序设计
12. 片内看门狗定时器、VDD 监视器和温度传感器
13 具有片内VDD 监视器、看门狗定时器和时钟振荡器的C8051F020 是真正能独立工作的片上系统。
C8051F020单片机所有模拟和数字外设均可由用户固件使能/禁止和配置。FLASH 存储器还具有在系统重新编程能力,可用于非易失性数据存储,并允许现场更新8051 固件。片内JTAG 调试电路允许使用安装在最终应用系统上的产品MCU 进行非侵入式(不占用片内资源)、全速、在系统调试。该调试系统支持观察和修改存储器和寄存器,支持断点、观察点、单步及运行和停机命令。在使用JTAG 调试时,所有的模拟和数字外设都可全功能运行。
- 17 -
电子秒表程序设计
总 结
参考文献
[1] 《51系列单片机设计实例》楼苗然,李光飞编著,北京: 北京航空航天大学出
版社,2003
[2] 张俊谟.SOC单片机实验、实践与应用设计——基于C8051F系列.北京: 北京航
空航天大学出版社,2007
[3] 《8051单片机课程设计实训教材》陈明荧编著,北京:清华大学大学出版社,
2005.7
[4] 肖洪兵.跟我学用单片机.北京:北京航空航天大学出版社,2006 [5] 《SOC单片机实验、实践于应用设计》万光毅 ,孙九安 ,蔡建平等编著 ,
北京:北京航空航天大学出版社,2006.5
- 18 -
电子秒表程序设计
源程序清单 $INCLUDE(C8051F020.INC) ORG 00H
LJMP MAIN
ORG 0BH
LJMP T0
ORG 93H
LJMP INT6
ORG 9BH
LJMP INT7
ORG 100H
MAIN: MOV WDTCN,#0DEH
MOV WDTCN,#0ADH
MOV OSCXCN,#67H LOP: MOV A,OSCXCN
JNB ACC.7,LOP
MOV OSCICN,#08H
MOV CKCON,#00H
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
- 19 -
电子秒表程序设计
MOV P3IF,#00H
MOV EIE2,#30H
MOV XBR0,#00H
MOV P1MDOUT,#0FFH
MOV P74OUT,#0F0H
MOV XBR2,#40H
LCALL DELAY
MOV P7,#38H
MOV P6,#01H
MOV P6,#00H
LCALL DELAY
MOV P7,#0EH
MOV P6,#01H
MOV P6,#00H
LCALL DELAY
MOV P7,#06H
MOV P6,#01H
MOV P6,#00H
LCALL DELAY
MOV P7,#01H
MOV P6,#01H
MOV P6,#00H
LCALL DELAY
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 99H,#00H
MOV R6,#00H
MOV R2,#02H
MOV R1,#00H
SETB ET0
SETB EA
ABC: MOV A,32H
MOV B,#10
DIV AB
ADD A,#30H
MOV 33H,A
MOV A,B
ADD A,#30H
MOV B,A
MOV 34H,B
MOV A,31H
MOV B,#10
DIV AB
- 20 -
电子秒表程序设计
ADD A,#30H
MOV 35H,A
MOV A,B
ADD A,#30H MOV B,A
MOV 36H,B
MOV A,30H
MOV B,#10
DIV AB
MOV A,B
ADD A,#30H
MOV B,A
MOV 37H,B
MOV P7,#01H
MOV P6,#01H
MOV P6,#00H
LCALL DELAY
MOV P7,33H
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,34H
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,#':'
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,35H
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,36H
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,#':'
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
MOV P7,37H
MOV P6,#05H
MOV P6,#04H
- 21 -
电子秒表程序设计
LCALL DELAY
MOV P7,#0C0H
MOV P6,#1
MOV P6,#0H
LCALL DELAY
MOV P7,#'T'
MOV P6,#05H
MOV P6,#04H LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A,99H
CJNE A,#00H,LOOOP MOV A,R1
ADD A,#30H
MOV P7,A
MOV P6,#05H
MOV P6,#04H LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
AJMP LOOOP2 LOOOP:
MOV A,R6
ADD A,#30H
MOV P7,A
MOV P6,#05H
MOV P6,#04H
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
LOOOP2:
- 22 -
电子秒表程序设计
LCALL DELAY
LCALL DELAY
MOV A,30H
CJNE A,#00H,SS
MOV A,31H
CJNE A,#0AH,SS
DELAY LCALL
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
SS: LJMP ABC
T0:CLR TF0
MOV TL0,#0B0H
MOV TH0,#3CH
DJNZ R2,LOP1
MOV R2,#02H
INC 30H
MOV A,30H
CJNE A,#10,LOP1
MOV 30H,#00H
INC 31H
MOV A,31H
CJNE A,#60,LOP1
MOV 31H,#00H
INC 32H
MOV A,32H
CJNE A,#60,LOP1
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
LOP1:RETI INT6:
SETB TR0
MOV 99H,#00H
MOV A,R6
CJNE A,#00H,LOP2
INC A
MOV R6,A
MOV R1,#00
LJMP LOP7 LOP2: MOV A,R6
- 23 -
电子秒表程序设计
CJNE A,#01H,LOP3
INC A
MOV R6,A
MOV 43H,30H
MOV 44H,31H
MOV 45H,32H
LJMP LOP7 LOP3: MOV A,R6
CJNE A,#02H,LOP4
INC A
MOV R6,A
MOV 48H,30H
MOV 49H,31H
MOV 50H,32H
LJMP LOP7 LOP4: MOV A,R6
CJNE A,#03H,LOP5
INC A
MOV R6,A
MOV 53H,30H
MOV 54H,31H
MOV 55H,32H
LJMP LOP7 LOP5: MOV A,R6
CJNE A,#04H,LOP6
INC A
MOV R6,A
MOV 58H,30H
MOV 59H,31H
MOV 60H,32H
LJMP LOP7 LOP6: MOV A,R6
CJNE A,#05H,LOP7
MOV 63H,30H
MOV 64H,31H
MOV 65H,32H
INC A
MOV R6,A
LJMP LOP12 LOP7:
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
- 24 -
电子秒表程序设计
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
MOV P3IF,#00H
RETI
INT7:
CLR TR0
MOV 99H,#01
MOV A,R1
CJNE A,#00H,LOP8 INC A
MOV R1,A
MOV R6,#00
LJMP LOP14
LOP8: MOV A,R1
CJNE A,#01H,LOP9
INC A
MOV R1,A
MOV 30H,43H
MOV 31H,44H
MOV 32H,45H
LJMP LOP14 LOP9: MOV A,R1
CJNE A,#02H,LOP10
INC A
MOV R1,A
MOV 30H,48H
MOV 31H,49H
MOV 32H,50H
LJMP LOP14 LOP10: MOV A,R1
CJNE A,#03H,LOP11
INC A
MOV R1,A
MOV 30H,53H
MOV 31H,54H
MOV 32H,55H
LJMP LOP14
- 25 -
电子秒表程序设计 LOP11: MOV A,R1
CJNE A,#04H,LOP12
INC A
MOV R1,A
MOV 30H,58H
MOV 31H,59H
MOV 32H,60H
LJMP LOP14 LOP12: MOV A,R1
CJNE A,#05H,LOP13
INC A
MOV R1,A
MOV 30H,63H
MOV 31H,64H
MOV 32H,65H
LJMP LOP14 LOP13:MOV A,R1
CJNE A,#06H,LOP14
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV R6,#00H
MOV R2,#02H
MOV R1,#00H LOP14:LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
LCALL DELAY11
MOV P3IF,#00H
RETI
DELAY:MOV R5,#01H DELAY1:MOV R4,#25H DELAY0:MOV R3,#00H
DJNZ R3,$
DJNZ R4,DELAY0
DJNZ R5,DELAY1
RET
- 26 -
电子秒表程序设计 DELAY11:MOV R7,#255 DLY0:MOV R0,#255
DLY1: DJNZ R0,DLY1
DJNZ R7,DLY0 RET
END
- 27 -