行通信情况下才使用,在这里我用的是12MHZ石英晶体。对电容无严格要求,但它的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一点影响。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2,有时还要接一个上拉电阻。
在XTAL1和XTAL2之间连接晶体震荡器与电容构成稳定的自激振荡器,电路图见附录2图3所示。
2.4复位电路
MCS-51单片机的复位是靠外部电路实现的。MCS-51单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地复位。MCS-51单片机通常有上电自动复位﹑按键复位﹑手动加按钮复位﹑脉冲复位四种方式,本设计采用了自动上电复位方式。复位电路如图3所示,上电瞬间,RC电路充电,RST引线出现正脉冲,只要RST保持10ms以上的高电平,就能使单片机有效的复位。电路图见附录2图4所示。
2.5显示电路
显示电路既可以选用液晶显示器,也可以选用数码管显示。数码管主要是用于数字的显示。数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法不同。而数码管显示又有静态和动态两种显示方式,其中静态显示程序简单,显示比较稳定,但占用I\\O口较多;动态显示的程序比较复杂,所使用的端口较少,可以节省I/O口,在本设计中采用的是动态显示。 显示电路见附录2图5所示。 共阳极数码管的段码表: 0 0C0H 5 92H 1 0F9H 6 82H 2 0A4H 7 0F8H 3 0B0H 8 80H 4 99H 9 90H 2.6开关控制电路模块 见附录2图6所示
4
第三章 软件设计
3.1设计思想
因为秒表设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可分为功能模块和控制模块两类。我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序系统划分为一个个较小的、功能相关而又相对独立的模块。每个小的模块完成一个确定的功能,在这些小的模块之间建立必要的联系,互相协作完成整个程序要完成的功能。它具有明显的优点,把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。
其中的模块即为子程序,子程序是功能独立的程序段。子程序的基本思想是编写一次,可以重复使用。子程序的形式可以是一个程序文件,也可以是一个过程或函数。子程序总被其他程序调用而不单独执行,这与主程序相对。 这个主程序也是由多个子程序模块组成,各程序模块都要完成一个明确的任务,实现某个具体的功能,、快加、复位,计数和显示。
3.2系统流程图
5
3.3源程序代码及注解 3.3.1主程序
3.3.1.1对定时器T1﹑T0的工作模式进行设定,分别设定为工作模式一,并对两个工作定时器初始化,分别赋初值定时10
3.3.1.2在主程序中设置了九个工作寄存区,分别为:20H,用于00~99秒的记数暂存区;30H,31H分别用于寄存要显示的十位和个位的两个数字,40H﹑50H用于存储循环记数个数,41H﹑42H﹑43H﹑44H作为记录四个相对独立时间的工作寄存区另外还用了一个间接寄存器R1,用于访问以上四个工作寄存区。对以上的工作区﹑相应的中断控制位进行初始化。 3.3.2显示程序
作用:完成符号和数值的显示及输出。该设计中应用两位一体的数码管分别动态显示十位和个位的数字,具体设计思路如下:用AT89S51芯片的P0口接数码管的显示位A﹑B﹑C﹑D﹑E﹑F﹑G﹑DP八个引脚,用P2口的P2.6﹑P2.7接数码管的两个选通引脚,作为十位和个位动态显示的选通信号输入端,低电平有效。当将要显示的时间分别送入30H﹑31H时,让选通信号有效进行动态循环显示,利用了查表操作功能,只是两位的显示时间间隔短而人眼分辨不出来,因此认为是连续显示的。 3.3.3开关控制程序
完成各键功能的转换,控制CPU的工作过程﹑调用显示程序控制显示输出,在按键过程中增加了防抖动操作。 例如暂停键的设置: START:
JB: P1.0,L1 ; P1.0=0,暂停 ACALL DELAY10 JB: P1.0,L1 JNB P1.0,$ LJMP STOP 3.3.4暂停程序
只需将定时器T1﹑T0的启停控制位TR0﹑TR1清零即可。 STOP: CLR TR0
6
CLR TR1 ACALL DISP SJMP HERE 3.3.5复位程序
将各寄存区重新置初始值即可。 FUWEI: CLR TR0 CLR TR1 MOV 40H,#00H MOV 41H,#00H MOV 30H,#00H SJMP HERE
7
第四章 软件仿真
4.1 proteus软件仿真
利用proteus软件将电路元器件进行正确的连接,然后利用keil软件将汇编语言程序生成hex文件下载到单片机中,再将各元器件的数值改正确之后就可以点击左下角的小黑三角键进行仿真了。
点击“开始”(第四个)按键,可以看到数码管从一开始计数,每隔1秒自动加1,仿真图如下所示:
图4.1 “开始”按键仿真结果
当点击“暂停”(第一个)按键时,LED数码管显示的数就停止不动了,仿真
图如下图所示:
图4.2 “暂停”按键仿真结果
8
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库单片机电路板设计实习 - 图文(3)在线全文阅读。
相关推荐: