您的位置 首页 模拟

一种简易00-99计数器的规划与仿真

1系统描述本系统利用AT89C51单片机来制作一个手动计数器,在AT89C51单片机的P3.2管脚和P3.3管脚各接一个轻触开关K1和K2,作为手动计数的按钮,用单片机的P0.0-P0.7接一个两位绿

1 体系描绘

本体系运用AT89C51 单片机来制造一个手动计数器,在AT89C51 单片机的P3.2 管脚和P3.3 管脚各接一个轻触开关K1和K2,作为手动计数的按钮,用单片机的P0.0 – P0.7 接一个两位绿色共阴极数码管(7SEG-COM-CAT-GRN),作为00 – 99 计数的个位数和十位数显现。体系正常运转后显现00,按一次K1 键,数字加1,当计数到 99 时,再按一次 K1 键,又从00 开端计数。当计数到 99 时,按一次K2,计数为98,持续按K2,直到计数为00,由此完成正计数和倒计数的功用。本体系可用于竞技竞赛中的计分,或许用于重要事情即将到来的倒计时。

2 硬件电路规划

硬件电路的规划是本体系能否完成所需功用的关键环节,在规划进程中须留意电路的全体布局、元器材的摆放、元器材的参数挑选及电路的优化,详细电路图如1-1 所示。其间,X1 为12MHZ 的晶体振荡器,RX8 为排阻。

图1-1 计数器电路原理图:

3 软件规划

依据硬件电路的结构及功用要求,在剖析所需算法和功用模块的根底上编写本体系的代码,要求代码尽可能的简练易懂,并有在必要的当地写明注释。详细代码如下所示:

#include// 导入头文件

unsigned b[10]={0x3f,0×06,0x5b,0x4f,0×66,0x6d,0x7d,0×07,0x7f,0x6f};//0-9 的编码

void delay(void)// 延时子程序,延时1 秒

{

unsigned char i,j,k;for(i=20;i>0;i- )

for(j=2;j>0;j-)

for( k=250; k>0; k-);

}

void Inc_CNT ( void )// 按K1 键正计数,可从0 计到99

{

unsigned char x, y, z;

for( x=0; x<10; x++){

for( y=0; y<10; y++){

if( (P3|0xfb)==0xfb ){

for( z=0; z<22; z++){

P2=0xf2;

P0=b[x];

delay( );// 调用延时子程序

P2=0xf1;

P0=b[y];

delay( );

}

}

else{

P0 = 0x3f;

P2 = 0×00;

break;}}}}

void Dec_CNT( void )// 按k2 键倒计数,可从99 计到00{

unsigned char x, y, z;

for( x=10; x>0; x-){

for( y=10; y>0; y-){

if((P3|0xf7)==0xf7){

for(z=0; z<22;z++){

P2=0xf2;

P0=b[x-1];

delay( );

P2=0xf1;

P0=b[y-1];

delay( );}// 调用延时子程序

}

else {

P0=0x3f;

P2=0×00;

break;}}}}

void main( void )// 主函数

{

unsigned char key;

P2=0×00;

P0=0x3f;

for(;;){

P3|=0xf3;

key=P3;

if(key==0xfb)Inc_CNT();// 调用正计数函数

else if(key==0xf7 )Dec_CNT();// 调用倒计数函数

else{

P2=0×00;

P0=0x3f;}}}

4 软硬件联调

单片机体系的硬件调试和软件调试是不能分隔的,许多硬件过错是在软件调试进程中被发现和纠正的。但通常是先扫除显着的硬件毛病今后,再和软件结合起来调试以进一步扫除毛病。可见硬件的调试时根底,假如硬件调试不经过,软件规划则无从谈起。硬件的调试主要是把电路各种参数调整到契合规划要求。先扫除硬件电路毛病,包含规划性过错和公益性毛病。一般原则是先静态后动态。运用万用表或逻辑测验仪器,查看电路中的各器材以及引脚是否衔接正确,是否有短路毛病。运转正确的仿真电路图如下所示。

5 结语

本体系运用AT89C51 单片机来制造一个手动计数器,在AT89C51 单片机的P3.2 管脚和P3.3 管脚各接一个轻触开关K1和K2,作为手动计数的按钮, 经过运用专业制作电路图的软件和程序编译软件,不断进行测验和调试,然后证明了本体系可用于竞技竞赛中的计分,或许用于重要事情即将到来的倒计时。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/moni/240171.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部