![单片机技术及应用(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/224/32375224/b_32375224.jpg)
模块详解
1.键盘控制电路
由于键数较少,所以采用独立式按键,用了4 个轻触式按键分别占用I/O 口的P1.0、P1.1、P1.2 和P1.3 来实现调整秒、分、时和复位功能。当按钮被按下时,P1.0、P1.1、P1.2 和P1.3 输入低电平,当按钮没有被按下时,上拉电阻和按钮两端并联的反向二极管使P1.0、P1.1、P1.2 和P1.3 输入稳定、可靠的高电平。P1.0控制“秒”的调整,每按一次加1s;P1.1控制“分”的调整,每按一次加1min;P1.2控制“时”的调整,每按一次加1h;P1.3用作复位键,在计时过程中如果按下复位键,则返回00-00-00重新计时。键盘控制电路如图5-2所示。
![](https://epubservercos.yuewen.com/52CEAB/17493186406223506/epubprivate/OEBPS/Images/txt005_7.jpg?sign=1738847057-8jfX6vc2yY1jRZN4Cc30kzKgSfCfrwJl-0-f227e3223267df033e1a3bc9d176f699)
图5-2 键盘控制电路
2.数码显示电路
数码显示电路如图5-3所示。电路采用2个4位七段共阴LED数码管显示时间,采用74LS245增加I/O口的驱动能力。单片机计数并在数码管上显示出相应的时间。初始化时数码管显示00-00-00开始计时,选通相应的数码位来显示计时结果。
![](https://epubservercos.yuewen.com/52CEAB/17493186406223506/epubprivate/OEBPS/Images/txt005_8.jpg?sign=1738847057-oO2RiLXPOtfLV3BCHRTXlXKV498HucP4-0-f4d8efbc96aa3ef08c2546187bd938f0)
图5-3 数码显示电路
本设计采用74LS245驱动数码管,它是8路同相三态双向总线收发器,可双向传输数据。图中接低电平,
接高电平时,信号由A向B传输(发送)。数码管的段选信号由74LS245来驱动,位选信号直接由单片机P2口驱动。P0口加上拉电阻,保证单片机输出稳定、可靠的高电平来驱动数码管。
3.单片机电路
单片机电路主要用于内部程序处理,将采集到的数字量进行译码处理。其外围硬件电路包括晶振电路和复位电路。复位电路采用上拉电解电容上电复位电路。本设计采用的是HMOS型MCS-51的振荡电路,当外接晶振时,C1和C2值通常选择30pF。单片机晶振采用12MHz。单片机外围电路如图5-4所示。
![](https://epubservercos.yuewen.com/52CEAB/17493186406223506/epubprivate/OEBPS/Images/txt005_11.jpg?sign=1738847057-73V3yYEO1846beUVjUY9JEH4uzCkC7ye-0-3332eb8693075dccb06a1b84de203c16)
图5-4 单片机外围电路
在此设计中,选择16位定时工作方式。对于T0来说,系统时钟为12MHz,最大定时也只有65536μs,即65.536ms,无法达到我们所需要的1s的定时,因此必须通过软件来处理这个问题。假设取T0的最大定时时间为50ms,即要定时1s需要经过20次50ms的定时。对于这20次计数,就可以采用软件的方法来统计。
设定TMOD=00000001B,即TMOD=01H,设置定时器/计数器0工作在方式1。给T0定时器/计数器的TH0、TL0装入预置初值,通过下面的公式可以计算出,即
TH0=(216-50000)/256
TL0=(216-50000)MOD 256
这样,当定时器/计数器0计满50ms时,产生一个中断,可以在中断服务程序中对中断次数加以统计,以实现数字时钟的逻辑功能。