预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

电子秒表设计报告设计要求:用89C51外接晶振复位电路二个数码管二个按键做一个电子秒表具体要求为用按键起停电子表可用按键设计倒计时时间(如10S20S60S)并启动倒计时功能。能用按键选择以上两功能之一。实现原理:利用12M晶振的一个机器周期为1微秒通过循环产生1秒时间延迟扫描单片机中所存放的时间的值(可正记时也可倒计时)并通过输出显示在数码管上。电路图:P0.0—P0.7对应了两个接数码管的ABCDEF削小数点位P2.6接显示个位数的数码管的3、8引角P2.7则接十位数的。P3.6、P3.7分别接按键。流程框图:程序代码:A_BITEQU20H数码管个位数存放内存位置B_BITEQU21H数码管十位数存放内存位置TEMPEQU22H计数器数值存放内存位置;开机初始化MOVP3#0FF咽P3口初始化设置为高电平用于按键输入MOVP0#0FFH®显示时间数码管熄灭;等待按键输入;根据按键的输入判断执行什么功能;按键1按下则执行功能1START:JBP3.6$;循环判断开始按钮K1是否按下?ACALLDELAY1延时10毫秒触点消抖JBP3.6START伽果是干扰就返回JNBP3.6$;等待按键松开LJMPGN1按键2按下则执行功能2START1:JBP3.7$;循环判断开始按钮K2是否按下?ACALLDELAY1延时10毫秒触点消抖JBP3.7STARTt口果是干扰就返回JNBP3.7$LJMPGN2;数码管显示秒表时间的程序GN1:;先初始化MOVP3#0FF咽P3口初始化设置为高电平用于按键输入MOVP0#0FFH®显示时间数码管熄灭MOVA#0MOVTEMPAGOON1:MOVR2#2JS1:MOVR3#250TIME1:MOVATEMP将TEMP中的十六进制数转换成10进制MOVB#10;10进制/10=10进制DIVABMOVB_BITA十位在AMOVA_BITB个位在BMOVDPTR#NUMTABf旨定查表启始地址MOVR0#4DPL1:MOVR1#250;DPLOP1:MOVAA_BI瞰个位数MOVCA@A+DPTRt个位数的7段代码MOVP0A送出个位的7xx代码MOVP0A送出个位的7xx代码CLRP2.7;开个位显示ACALLDELY显示1毫秒SETBP2.7;关闭个位显示防止鬼影MOVAB_BIT取十位数MOVCA@A+DPTRt十位数的7段代码MOVP0A送出十位的7xx代码CLRP2.6;开十位显示ACALLDELY显示1毫秒SETBP2.6;关闭十位显示防止鬼影;插入一段判断定时过程中是否有按键输入的程序段C1:JBP3.6B1ACALLDELAY1延时10毫秒消抖JBP3.6C1JNBP3.6$;等待按键松开ZT1:MOVP3#0FFH寸P3口初始化设置为高电平用于按键输入JBP3.6$;循环判断开始按钮K1是否按下?ACALLDELAY1延时10毫秒触点消抖JBP3.6ZT1如果是干扰就返回JNBP3.6$;等待按键松开B1:JBP3.7LOOP1ACALLDELAY1延时10毫秒消抖JBP3.7B1JNBP3.7$;等待按键松开AJMPOVERLOOP1:DJNZR3TIME1毫秒循环执行250次时间约0.5秒DJNZR2JS循环执行2次时间为1秒钟INCTEMPW一秒钟对时间加1MOVATEMPCLRCSUBBA#60JNZGOON倒断TEMP的数值是否为60?不为60循环ACALLOVERRETGN2:MOVA#14H设定倒计时的时间20SMOVTEMPA;数码管显示倒计时时间的程序;初始化MOVP3#0FFH寸P3口初始化设置为高电平用于按键输入MOVP0#14H使显示时间为设定的倒计时时间GOON2:MOVR2#2JS2: