内蒙古工业大学单片机实训报告——电子秒表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学校代码:10128
单片机工程实践
(第十一组)
题目:电子秒表(任务一)
组长:XXX (通信10-1班)学号:
组员:X X X(通信10-1班)学号:
XXXX(通信10-1班)学号:
指导教师:
设计时间:2013年2月27日~2013年3月8日
目录
一、设计目的 (1)
二、设计任务 (1)
基本任务 (1)
随机选择任务 (1)
任务分工 (1)
三、框图
硬件编程框图及相关说明 (2)
蜂鸣器自检 (2)
键盘自检 (2)
LED 显示器自检 (2)
自选任务电子秒表 (5)
各任务流程框图
蜂鸣器自检 (6)
LED显示器自检 (7)
键盘自检 (7)
自选任务电子秒表 (8)
四、程序清单
蜂鸣器自检 (14)
L E D显示器自检 (15)
键盘自检 (16)
自选任务电子秒表 (17)
五、设计体会 (25)
六、参考资料 (27)
一、设计目的
通过一个以8 位单片机为核心的模拟量数字表的硬件调试过程,掌握具有蜂鸣器自检、七段LED 显示自检、键盘自检等接口电路的单片机应用系统的设计思想和方法。
学习应用系统软件的模块化设计方法,通过源程序的编辑、汇编或编译、链接、仿真调试,完成给定的任务。
通过上述过程提高学生工程实践能力和素质。
二、设计任务
★基本任务:
完成蜂鸣器、键盘、七段LED 显示器的自检程序设计。
(1)蜂鸣器自检
要求:利用程序实现两种以上声音。
参见【例7-4-4】
(2)键盘自检
要求:确定键盘正确。
参见【例7-4-14】
(3)七段LED 显示器自检
要求:确定LED 显示器每一段均正确。
参见【例7-4-16】
★随机选择任务:(抽签确定)
任务:电子秒表
功能:(1)显示时间范围0~59分59秒
(2)跑表时间范围0~59分59秒
硬件环境:LED显示器、键盘等
★任务分工:
袁祯祯(组长):各个小任务主程序的编制和框图的绘制,大任务的主程序编制和流程图的绘制。
乔文芳、张宇:完成各个小任务子程序的的编写与整理,部分大任务程序流程图的绘制,完成分配给的子程序的编制,实验报告整理与排版。
三、框图:
、硬件编程框图及相关说明
、蜂鸣器自检硬件编程框图及相关说明
电路图:
说明:执行指令CLR 后,为“0”,晶体管导通,蜂鸣器BEEP得电发声。
据此可以判断蜂鸣器电路是正确的。
、键盘自检硬件编程框图及相关说明
P1LED
蜂鸣器
电路图:
说明:单片机上电复位时,P2口为高电平,SEL8有效及74HC245三态门状态为打开状态,此时可以采集键盘、拨盘信息。
SEL7有效关闭三态门。
K1-K4为仪表键盘(用户使用),SW1-SW4拨盘为自检开关,通过上拉电阻使K(SW)闭合为“0”打开为“1”。
、LED自检硬件编程框图及相关说明
字
型
P0
口
字
位
口
电路图:
说明:LED显示器有共阴极和共阳极两种结构。
该图结构为共阳极,且是动态扫描显示,COM端为高电平时,显示器工作,反相驱动器的功能是使LED稳定的亮。
P0口控制LED 显示字形即LED显示何种字形,、、是选择字位口即五位LED中哪位LED亮。
、电子秒表硬件编程框图以相关说明:
说明:
、各个任务框图
蜂鸣器自检程序框图
、键盘自检框
、LED显示器自检程序框图
、自选题目:电子秒表框图
四、程序清单:
、蜂鸣器自检程序
BEEP:
SETB ;关喇叭ACALL DELAY1 ;调用延时1 CLR ;开喇叭ACALL DELAY2
SETB
ACALL DELAY1
CLR
ACALL DELAY2
SETB
ACALL DELAY1
CLR
ACALL DELAY4SETB
ACALL DELAY3
CLR
ACALL DELAY4
SETB
ACALL DELAY3
SJMP BEEP ;跳转到BEEP RET
DELAY1: MOV R1,#0AAH ;延时子程序1 LP1: MOV R2,#0AAH
LP2: DJNZ R2,LP2
DJNZ R1,LP1
RET
DELAY2: MOV R1,#0EAH ;延时子程序2 LP3: MOV R2,#0EAH
LP4: DJNZ R2,LP4
DJNZ R1,LP3
RET
DELAY3: MOV R1,#07FH ;延时子程序3 LP5: MOV R2,#07FH
LP6: DJNZ R2,LP6
DJNZ R1,LP5
RET
DELAY4:MOV R1,#082H ;延时子程4 LP7: MOV R2,#082H
LP8: DJNZ R2,LP8
DJNZ R1,LP7
RET
、LED自检程序
MAIN: MOV P0 ,#0FFH
MOV R0,#0H
LCALL SEL1
MOV P0,#01H
LCALL TIME
LCALL LED4
LCALL TIME
MOV R0,#0H
LCALL SEL2
LCALL LED
LCALL TIME
MOV R0,#0H
LCALL SEL3
LCALL LED
LCALL TIME
MOV R0,#0H
LCALL SEL4
LCALL LED
LCALL TIME
MOV R0,#0H
LCALL SEL5
LCALL LED
LCALL TIME
MOV B,0FFH
LOOP1:LCALL SEL2
MOV A, #0DFH
MOV P0, A
LCALL TIME2
MOV A, #0
MOV P0, A
LCALL SEL3
MOV A, #0B8H
MOV P0, A
LCALL TIME2
MOV A, #0
MOV P0, A
LCALL SEL4
MOV A, #0B8H
MOV P0, A
LCALL TIME2
MOV A, #0
MOV P0, A
LCALL SEL5
MOV A, #0BDH
MOV P0, A
LCALL TIME2
MOV A, #0
MOV P0, A
MOV R6, #0FFH LOOP2: DJNZ R6, LOOP2
DJNZ B, LOOP1
LJMP MAIN LED: MOV R1,#18 LED1: MOV A, R0
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0, A
INC R0
DEC R1
LCALL TIME
LCALL TIME
CJNE R1, #0, LED1
LCALL BEEP
RET
SEL1: CLR
CLR
CLR
RET
SEL2: SETB
CLR
CLR
RET
SEL3: CLR
SETB
CLR
RET
SEL4: SETB
SETB
CLR
RET
SEL5: CLR
CLR
SETB
RET
BEEP: CLR
LCALL TIME
SETB
TIME: MOV R6, #0FFH D1: MOV R7, #0FFH
D2: DJNZ R7, D2
DJNZ R6, D1
MOV R5, #0FFH
DJNZ R5, $
RET
TIME2: MOV R4, #10
D3: MOV R5, #20
D4: DJNZ R5, D4
DJNZ R4, D3
RET
LED4:MOV A,#80H
MOV P0, A
LCALL TIME
LCALL TIME
MOV A, #04H
MOV P0, A
LCALL TIME
LCALL TIME
MOV A, #08H
MOV P0, A
LCALL TIME
LCALL TIME
MOV A, #8CH
MOV P0, A
LCALL TIME
LCALL TIME
RET
TAB: DB 20H,40H,02H,04H,08H,10H,80H, 01H,7EH,00CH,0B6H,9EH,0CCH,0DAH,0FAH,0 0EH,0FEH,0DEH
4.3、键盘自检程序
;-------------------------
;主程序
;-------------------------
KEY:
ACALL KEYIN ;读键
CPL A ;将采集的A取反ANL A,#0FH ;将拨盘屏蔽
JZ KEY ;没有按键,跳回ACALL TIME1 ;有按键,延时10ms,去抖动
ACALL KEYIN ;再按键
CPL A ;恢复有效键码
ANL A,#0FH
JZ KEY
L0:RRC A ; 判断是否为K1按下JC KEY1 ; 有进位则K1按下,跳到KEY1 L1: ; 判断是否为K1按下RRC A
JC KEY2
L2: RRC A
JC KEY3
L3: RRC A
JC KEY4
ACALL KEYOFF
AJMP KEY
;---------------------------
;子程序,采集键盘和拨盘的状态
;---------------------------
KEYIN: MOV P0,#0H ;关闭LED显示ACALL SEL8 ;打开三态门
MOV P1,#0FFH ;设置P1口为输入口
MOV A,P1 ;采集键盘和拨盘的状态
ACALL SEL7 ;关闭三态门
RET
;---------------------------
;延时子程序
;---------------------------
TIME1: MOV R1,#100 ;延时20ms
LP1: MOV R2,#100
LP2: DJNZ R2,LP2
DJNZ R1,LP1
RET
TIME2: MOV R0,#100 ;延时100ms LP3: MOV R1,#500
LP4: DJNZ R1,LP4
DJNZ R0,LP3
RET
KEY1: ACALL BEEP1 ;调用BEEP1子程序ACALL SEL1 ;位选最高位
MOV R0,#0CH
MOV P0,R0;将1的七段码送到P0口
ACALL TIME2
SJMP L1
;---------------------------
;子程序,送七段码
;---------------------------
KEY2: ACALL BEEP2
ACALL SEL2
MOV R0,#0B6H
MOV P0,R0;将2的七段码送到P0口
ACALL TIME2
SJMP L2
KEY3: ACALL BEEP3
ACALL SEL3
MOV R0,#9EH
MOV P0,R0;将3的七段码送到P0口
ACALL TIME2
SJMP L3
KEY4: ACALL BEEP4
ACALL SEL4
MOV R0,#0CCH
MOV P0,R0;将4的七段码送到P0口
ACALL TIME2
SJMP L0
;---------------------------
;子程序,LED位选
;---------------------------
SEL1: CLR ;位选1
CLR
CLR
RET
SEL2: CLR ;位选2
CLR
SETB
RET
SEL3: CLR ;位选3
SETB
CLR
RET
SEL4: CLR ;位选4
SETB
SETB
RET
SEL7: SETB ;关闭三态门
SETB
CLR
RET
SEL8: SETB ;打开三态门
SETB
SETB
RET
;---------------------------
;子程序,蜂鸣器按不同频率响
;---------------------------
BEEP1: MOV R2,#200 ;设置循环次数为200次
LP5: CLR ;喇叭响
ACALL DELAY1
SETB ;喇叭停
ACALL DELAY1
DJNZ R2,LP5 ;判断循环次数是否为零
RET
DELAY1: MOV R6,#100 ;延时200us D1: DJNZ R6,D1
RET
BEEP2: MOV R2,#200
LP6: CLR
ACALL DELAY2
SETB
ACALL DELAY2
DJNZ R2,LP6
RET
DELAY2: MOV R6,#150 ;延时300us D2: DJNZ R6,D2
RET
BEEP3: MOV R2,#200
LP7: CLR
ACALL DELAY3
SETB
ACALL DELAY3
DJNZ R2,LP7
RET
DELAY3: MOV R6,#200 ;延时400us D3: DJNZ R6,D3
RET
BEEP4: MOV R2,#200
LP8: CLR
ACALL DELAY4
SETB
ACALL DELAY4
DJNZ R2,LP8
RET
DELAY4: MOV R6,#250 ;延时500us
D4: DJNZ R6,D4
RET
KEYOFF:
ACALL KEYIN
ORL A,#0F0H ;屏蔽拨盘
CJNE A,#0FFH,KEYOFF ;键释放(若无键释放,则再次按下其它键程序不响应,从而起到键保护作用)
RET
、自选题目:
电子秒表程序
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
;本小组任务:电子秒表
; 硬件环境:LED显示器、键盘等
; 组别:11
; 小组组长:袁祯祯
; 小组成员:张宇、乔文芳
; 功能描述:
;秒表:K1切换到跑表
; 跑表:K4切换到秒表、K2键暂停、K3键继续、K1复位
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MB EQU 40H ;跑表数值单元
PB EQU 50H ;秒表数值单元
;-------------------------
;定义中断和主程序存储单元
;-------------------------
ORG 0000H
AJMP MAIN
ORG 000BH ;T0中断地址AJMP TIME0
ORG 001BH ;T1中断地址AJMP TIME1
ORG 0030H
;-------------------------
;主程序
;-------------------------
MAIN: MOV TMOD,#11H ;置定时器T0为工作方式1
YZZ: LCALL JP ;采键
JZ YZZ
ACALL DELAY2 ;延时10ms去抖动
ACALL JP
JZ YZZ
JB ,STA1 ;K1键按下,则跳到STA1执行跑表功能
ACALL DELAY2
ACALL JP
JB ,STA2 ;K4键按下,则跳到STA2执行分钟显示功能
ACALL DELAY2
ACALL JP
SJMP YZZ
;-------------------------
;跑表程序
;-------------------------
STA1:
MOV R0,#MB ;计时器清零
MOV A, #00H
CLR1: MOV @R0, A
INC R0
CJNE R0,#49H,CLR1
SETB EA ;CPU开中断GO: SETB ET0 ;定时器T0开中断SETB TR0 ;启动定时器T0 DISP1:
MOV R0,#MB+2 ;R0指向40H单元
CALL JP ;采集键盘的状态
JB ,STOP ;K2键按下,则暂停跑表功能
JB ,STA1 ;K1键按下,则跳到STA1执行跑表功能
JB ,GO ;K3键按下,则继续执行跑表功能
JB ,DISP2 ;K4键按下,则跳到DISP2执行分钟显示功能
CALL SEL5
CALL AA
CALL SEL4
INC R0 ;R0指向41H单元
CALL AA
CALL SEL3
INC R0 ;R0指向42H单元
CALL BB
CALL SEL2
INC R0 ;R0指向43H单元
CALL AA
SJMP DISP1
STOP: CLR ET0 ;关闭定时器TO的中断SJMP DISP1
;-------------------------
;秒表程序
;-------------------------
STA2:
MOV R1,#PB ;计时器清零
MOV A, #00H
CLR2: MOV @R1, A
INC R1
CJNE R1,#59H,CLR2
SETB EA ;CPU开中断
SETB TR1 ;启动定时器T1
SETB ET1 ;定时器T1开中断DISP2:
MOV R1,#PB+2 ;R1指向52H单元
CALL JP ;采集键盘的状态
JB ,STA1 ;K1键按下,则跳到STA1执行跑表功能
AJMP XIANSHI ;否则显示秒表A0: CALL JP
JZ A0
JB ,A00
JB ,A01
AJMP LED0
A00: INC 52H
AJMP LED0
A01: DEC 52H
LED0:LCALL SEL5
MOV @R1,52H
LCALL AA1
AJMP A0
XIANSHI: CALL SEL5
CALL AA1
CALL SEL4
INC R1 ;R1指向53H单元
CALL AA1
CALL SEL3
INC R1 ;R1指向54H单元
CALL BB1
CALL SEL2
INC R1 ;R1指向55H单元
CALL AA1
AJMP DISP2
;-------------------------
;显示子程序
;-------------------------
AA: MOV P0,#00H ;关显示
CALL DELAY1 ;延时5MS
MOV A,@R0 ;把RO指向的地址单元的内容送给A
MOV DPTR,#TAB1 ;DPTR指向表TAB1的首地址
MOVC A,@A+DPTR ;取出表中对应的字型送给A寄存器
MOV P0,A ;将字型送P0口显示
CALL DELAY ;延时1MS
RET
AA1: MOV P0,#00H
CALL DELAY1
MOV A,@R1
MOV DPTR,#TAB1
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
RET
BB: MOV P0,#00H
CALL DELAY1
MOV A,@R0
MOV DPTR,#TAB2 ;DPTR指向表TAB2的首地址
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
RET
BB1: MOV P0,#00H
CALL DELAY1
MOV A,@R1
MOV DPTR,#TAB2
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY
RET
;-------------------------
;键采集程序
;-------------------------
JP: MOV P0,#00H ;关显示
CALL SEL8 ;打开三态门
MOV P1,#0FFH ;置P1口为输入口
MOV A,P1 ;采集键盘的状态
CALL SEL7 ;关闭三态门
CPL A
ANL A,#0FH
RET
;-------------------------
;定时中断0控制跑表程序
;-------------------------
TIME0:PUSH ACC ;保护A寄存器
MOV TH0,#3CH ;重置定时器T0的初值50MS
MOV TL0,#0AFH
INC MB ;50MS计数器加1,存放到40H单元中
MOV A,MB
CJNE A,#2,TEND ;50MS计数器的值不等于2,即不到100MS,则跳到TEND中断返回
MOV MB,#00H ;50MS计数器清零
INC MB+1 ;100MS计数器加1,存放到41H单元中
MOV A,MB+1
CJNE A,#10,TEND ;100MS计数器的值不等于10,即不到1S,则跳到TEND中断返回MOV MB+1,#00H ;100MS计数器清零
INC MB+2 ;1S计数器加1,存放到42H单元中
MOV A,MB+2
CJNE A,#10,TEND ;1S计数器的值不等于10,即不到10S,则跳到TEND中断返回MOV MB+2,#00H ;1S计数器清零
INC MB+3 ;10S计数器加1,存放到43H单元中
MOV A,MB+3
CJNE A,#6,TEND ;10S计数器的值不等于6,即不到60S,则跳到TEND中断返回MOV MB+3,#00H ;60S计数器清零
INC MB+4
MOV A,MB+4
CJNE A,#10,TEND
MOV MB+5,#00H
TEND: POP ACC ;恢复A寄存器
RETI ;中断服务子程序结束返回;-------------------------
;定时中断1控制秒表程序
;-------------------------
TIME1:PUSH ACC ;保护A寄存器
MOV TH1,#3CH ;重置T1初值50MS
MOV TL1,#0AFH
INC PB ;(50H)+1
MOV A,PB
CJNE A,#2,TEND1 ;(50H)不等于2,则跳到中断返回
MOV PB,#00H ;50MS计数器清零
INC PB+1 ;(51H)+1
MOV A,PB+1
CJNE A,#10,TEND1
MOV PB+1,#00H ;100MS计数器清零
INC PB+2 ;100MS计数器加1,存放到52H单元中
MOV A,PB+2
CJNE A,#10,TEND1 ;1S计数器的值不等于10,即不到10S,则跳到TEND1中断返回
MOV PB+2,#00H ;1S计数器清零
INC
PB+3 ;10S计数器加1,存放到53H单元中
MOV A,PB+3
CJNE A,#6,TEND1 ;10S计数器的值不等于6,即不到1分(60S),则跳到TEND1中断返回
MOV PB+3,#00H ;10S计数器清零
INC PB+4 ;1分计数器加1,存放到54H单元中
MOV A,PB+4
CJNE A,#10,TEND1 ;1分计数器的值不等于10,即不到10分,则跳到TEND1中断返回
MOV PB+4,#00H ;1分计数器清零
INC PB+5 ;10分计数器加1,存放到55H单元中
MOV A,PB+5
CJNE A,#10,TEND1 ;10分计数器的值不等于6,即不到60分,则跳到TEND1中断返回
MOV PB+5,#00H ;10分计数器清零
TEND1:POP ACC ;恢复A寄存器RETI ;中断服务子程序结束返回;-------------------------
;延时子程序
;-------------------------
DELAY: MOV R2,#2 ;延时1MS子程序DELAY4: MOV R3,#250
DELAY5: DJNZ R3,DELAY5
DJNZ R2,DELAY4
RET
DELAY1: MOV R4,#10 ;延时5MS子程序DELAY6: MOV R5,#250
DELAY7: DJNZ R5,DELAY7
DJNZ R4,DELAY6
RET
DELAY2: MOV R6,#20 ;延时10MS子程序DELAY8: MOV R7,#250
DELAY9: DJNZ R7,DELAY9
DJNZ R6,DELAY8
RET
;-------------------------
;译码器子程序
;-------------------------
SEL2: CLR
CLR
SETB
RET
SEL3: CLR
SETB
CLR
RET
SEL4: CLR
SETB
SETB
RET
SEL5: SETB
CLR
CLR
RET
SEL7: SETB
SETB
CLR
RET
SEL8: SETB
SETB
SETB
RET
;************************************ ;不带点显示表
;************************************ TAB1: DB 7EH, 0CH, 0B6H, 9EH, 0CCH, 0DAH, 0FAH, 0EH, 0FEH, 0DEH
;************************************ ;带点显示表
;************************************ TAB2: DB 7FH, 0DH, 0B7H, 9FH, 0CDH, 0DBH, 0FBH, 0FH, 0FFH, 0DFH
五、设计体会
要求每个人根据自己的不同情况分别写出本人的设计体会,不得少于300字。
顺序装订。
组长:
作为11组组长,下面就让我来总结下我们组为期二周的实训情况并谈谈自己的实训感受。
第一天的任务是蜂鸣器的自检,对蜂鸣器的硬件电路以及仿真器环境并不熟悉的我们刚开始听到这个任务真的有些手足无措,在经过老师的讲解后才开始有所领悟。
然后我们组一起把蜂鸣器硬件结构以及电路图弄懂了,之后就该着手去完成任务了。
作为组长,我首先把需要完成的任务按流程图的形式画在纸上,然后就是照着流程图编程,最后的程序
让我们兴奋了许久。
然而在验收的时候,老师说我们的程序不符合任务要求,因为我们对“二个以上的声音”理解错了。
不过,老师对我们阐述的构思过程还是很赞同,编程之前必须弄懂硬件结构电路以及仿真器环境,然后绘制程序主框图。
接下来的所有任务我们都是按照这一思想进行的,我做总的布局,绘制程序框图,子程序等交给组员完成。
在这样的既有明确分工又同时密切合作的前提下,我们比较顺利的完成了此次实训交给的任务。
然而,在这次实训中我们组也暴露出了一些问题值得我们今后在学习、生活和工作中注意,比如说对理论知识的掌握不扎实,逻辑思维比较混乱,理论应用到实践能力欠缺等。
我一目前在三星公司工作的学姐,她进入公司首先就是为期一个月的单片机培训课程,可见单片机对我们工科生的重要性,这也给我提了个醒。
总之,单片机实训是综合性很强的课程,培养了我们工程设计思想和科学研究能力,使我们在分析并解决问题、动手操作等方面有所提高,这对我们今后无疑是有很大帮助的。
这次实训让我和我的组员收获颇丰。
组员:
为期两周的单片机实训让我感受颇多,一开始做蜂鸣器、LED和键盘三个自检程序时第一个感觉很容易但实际动手做时却总是出不来预想的结果,那个延时程序很难实现,最后查了很多资料才基本弄出来,但我们由于没有理解好所给任务的要求。
所以结果并不理想。
我认为LED自检比较简单,有了前两次的经验之后,再做键盘自检时就比较有思路和想法了,而且我们一开始也不太清楚该怎么分析,后来就一点点的有比较清晰的想法和任务的基本结构了,在组长的分工之下,我们之后每次做任务都会分析其硬件环境和理清设计思想,我感觉这一步对我们任务的完成起着非常大的作用。
然后就是按照组长的分工去完成自己的任务,遇到不懂的地方就一起讨论,如果大家都不确定就请教老师。
每条指令都是仔细琢磨写上去的,花费了大量的时间。
还有,过于注重细节让我们的大任务——电子秒表程序编写的有些混乱,为此我们又修改了程序框图,等到大程序框图出来,然后再按框图简化程序。
最后,我们成功了!有想法但编程序很困难,加上编程经验少,好多芯片都不会用,而且其功能也不是很清楚,编出来的程序很繁琐。
这次实训让我们受益匪浅,不得不说,这次单片机实训是将我们在课堂上的理论应用到实践中的具体表现,让理论与实践相结合,在实践的同时加深理论的认知,锻炼了我们的逻辑能力和思考能力。
而且我深刻的体会到了合作的重要,几个任务如果单靠一个人是根本不能完成的。
希望以后会有更多这样的动手机会。
组员:
单片机实训结束了,开始做第一个任务时,我们组就因为理解错误而导致任务没能达
到要求,即实现最基本的两种声音的发出。
验收完后,我们并没有放弃对它的研究,相反通过查找资料,最终在找到问题并解决问题后,我们实现了蜂鸣器发出不同频率的声音。
其后两天的任务LED自检和键盘自检,在组长的统筹布局下,我们比较顺利的完成了任务所给的要求,但是我们并不满足,要求组长重新绘制主程序框图,加上很多电路板上的其他资源,然后就是编程,我们自以为这能体现我们程序的优势,在验收时才发现这是我们致命的缺点,因为这样使得我们的程序结构很混乱,占用的资源也就多了。
我们的大任务是电子秒表,在构思完成后,程序框架经过小组讨论几经修改最终定下,然后三人开始分工,组长负责主框图主程序,组员负责子程序,在明确自己任务和组员共同密切合作的前提下,我们比较顺利的完成了基本要求。
这让我们感到付出就有收获,这次单片机实训是综合能力的考察,同时对我们工程设计思想的提高有所帮助,虽然为期的二周的实训让我们有些累,但是累并快乐着,因为我们学到了知识!
七、参考资料
1、《单片机系统综合设计与实践》教材主编:裴岩刘利民内蒙古大学出版社。
2、《单片机原理与应用实践指导》主编:吴飞青丁晓李林功等北京机械工业出版
3、《51单片机应用教程》主编:曹建树夏云生等中国石化出版社。