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

发布者:technology1最新更新时间:2014-10-15 来源: dzsc关键字:计数器  AT89C51  单片机 手机看文章 扫描二维码
随时随地手机看文章

  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,作为手动计数的按钮, 通过使用专业绘制电路图的软件和程序编译软件,不断进行测试和调试,从而证明了本系统可用于竞技比赛中的计分,或者用于重要事件将要到来的倒计时

关键字:计数器  AT89C51  单片机 引用地址:一种简易00-99计数器的设计与仿真

上一篇:一种轿车车内CO浓度实时测控系统的设计
下一篇:一种步进电机曲线运动模型设计的研究

推荐阅读最新更新时间:2024-03-16 13:43

STC单片机程序下载问题汇总
失败现象: Chinese:正在尝试与 MCU/单片机 握手连接 ... 打开串口失败! Chinese: 串口已被其它程序打开或该串口不存在。 解决方法: 1,检查USB下载模块的连接是否正常,模块上的绿色和红色LED灯都亮起表示连接正常。绿色LED灯不亮表示USB驱动程序出现问题,可以拔下USB模块重插一次。红色LED灯不亮表示模块没有供电,或是USB模块后面的电源输出端(3.3V、+5V、GND)有短路。 2,在控制面板---》系统---》硬件管理器中找到 端口 ---》CP2101串口,了解括号里的 COM号。如果括号里显示COM4,那在STC-ISP软件里也要选择COM4才行。 STC-ISP软件: 3,有时由于STC-
[单片机]
51单片机汇编语言实验(一)-----数字量输入输出
一、实验目的:    学习单片机IO口的输入输出操作 二、实验设备:    PC计算机一台,Dais-52PRO+实验系统一套。 三、实验内容:    1. P1口I/O实验    2. P1口流水灯实验 四、P1口I/O实验:    1、实验原理:    数字量从P1口的低4位输入,从P1口的高4位输出控制发光二极管的亮灭,输入与输出一一对应。    2、实验步骤:   ①将试验箱IO区的P1.0 到P1.3与拨码开关区的K0~K3按下图连线;   ② 将试验箱IO区的P1.4 到P1.7与LED区的L0~L3按下图连线;   ③ 编写程序,经编译、链接无语法错误后装载到实验;   ④ 运行程序,拨动K0到K3,观察L0~L3的
[单片机]
51<font color='red'>单片机</font>汇编语言实验(一)-----数字量输入输出
滚动文字与图像兼得的AVR单片机LED显示屏设计
LED 点阵块具有亮度高、发光均匀、可靠性好、拼装方便等优点,能构成各种尺寸的显示屏。目前,LED显示屏已被广泛应用于文字显示并取得了很好的效果,但是大部分仅能显示滚动的文字信息而不能显示图像,并且还存在系统复杂等缺点。本文提出了一种主从式 单片机 的LED 显示屏 解决方案,该设计方案利用AVR单片机自身的FLASH ROM和RAM,外部无需任何存储电路,电路结构简单。该系统实现了图像的16阶灰度显示,可广泛用于商场、车站等公共场合。 1 AVR单片机简介 AVR 单片机是增强型内置FLASH的RISC(ReducedInstruction Set CPU)精简指令集高速8位单片机,硬件采用哈佛(Harward)结构,达到一
[电源管理]
滚动文字与图像兼得的AVR<font color='red'>单片机</font>LED显示屏设计
Adeno完成 .NET Micro Framework到AT91SAM9微控制器的移植
Adeno完成 .NET Micro Framework到AT91SAM9微控制器的移植 充分展示其在软件工程领域的专业技术 Adeneo公司在刚于美国东岸举行的嵌入式系统会议 (Embedded Systems Conference East) 上展示了在爱特梅尔基于ARM9的 AT91SAM9微控制器移植 .NET Micro Framework的成果。 这项移植表明Adeneo能够为那些想在 .NET Micro Framework上构建产品的OEM厂商,提供强而有力的技术支持和工程服务。Adeneo是微软 Windows 嵌入式伙伴服务计划的金级会员,在欧洲和美国均拥有研发设施。 .NET Micro Framewor
[嵌入式]
新一代RX系列32位CISC MCU(瑞萨电子)
瑞萨电子株式会社(以下简称瑞萨电子)宣布,开始在中国推广其新一代RX族32位微控制器(MCU),包括RX62N群、RX621群和RX62T群。 RX族是基于RX CPU架构的新一代MCU,集成了原先瑞萨科技的16位和32位CISC MCU的优秀特性。 . RX CPU可以达到1.65DMIPS/MHz的高性能,并配备了单精度浮点运算单元。 . RX MCU内部集成了瑞萨自有的MONOS Flash,可以在100MHz运行时实现零等待存取。 . 支持32位硬件乘累加(MAC),片内集成32位乘法器和除法器。 . 全新的CPU架构和编译器配合,实现了超高的代码效率,可以使用更少的内存完成需要的工作。 RX62N、RX621和R
[嵌入式]
单片机开发时FLASH和EEPROM有啥区别?怎么选?
以前我做项目,有时用Flash,有时用EEPROM,搞得我有点懵逼。 然后在网上搜了一些资料,看完以后还是不能理解透彻,直到项目做多了,才彻底搞懂。 Flash和EEPROM都是非易失性存储器,就是你设备掉电重启后,数据还会保留,如果是RAM的话掉电数据直接就丢了。 下面从几个方面去介绍下Flash和EEPROM的区别: 1.读取方式 Flash和EEPROM都采用随机读取,可以通过地址直接访问存储器中的数据。 2.写入方式 Flash和EEPROM的写入方式不一样,EEPROM可以按字节进行写入,而Flash通常需要按块进行写入。 还有就是,在Flash中,要写入一个数据,需要先擦除一整个块,然后再将新数据写入该块。
[单片机]
51单片机——多功能电子钟
实现的功能有:走 时、校时、闹钟、温度、遥控这几个功能。要想实现这几个功能,其中走时所需要的就是时 钟芯片,即 DS1302;时间需要显示给人看,就需要显示器件,我们用到了点阵、数码管、 独立 LED、液晶;再来看校时,校时需要输入器件。 注重模块化思想: // 工程配置头文件config.h: #ifndef _CONFIG_H #define _CONFIG_H /* 通用头文件 */ #include reg52.h #include intrins.h /* 数据类型定义 */ typedef signed char int8; // 8位有符号整型数 t
[单片机]
以C8051F020单片机为控制核心的人机交互系统设计
在现代各类仪器的开发中,人机交互功能正起着无可替代的作用。人机交互界面友好的仪器将更容易操作和使用,从而提高工作效率。液晶显示器(LCD)具有功耗低、价格低、寿命长、接口控制方便等特点,在科研与设计领域正发挥着越来越大的作用。FPGA 作为单片机外设的接口芯片,可以大大简化接口电路,通过对FPGA 进行编程,可以实现常用的译码、地址选通等功能。 本文以C8051F020 单片机与FPGA 互连系统为控制核心,以液晶显示控制器T6963C 为例,结合行扫描键盘,简述了一种人机交互功能的设计。 1 系统设计方案: FPGA 可在很大程度上扩展单片机的资源,然而人机交互功能仍应尽量减少对单片机及FPGA 的资源消耗, 以便将更多
[单片机]
以C8051F020<font color='red'>单片机</font>为控制核心的人机交互系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved