当前位置: 首页 > news >正文

基于AT89C51单片机的电子计数器设计与仿真

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/87770826
在这里插入图片描述

源码获取
主要内容:
设计一个电子计时器,数码管初始显示值为“00”,每隔1s电子秒表加1;秒计数到60时清0,并从00重新开始。
基本要求:
1、电子定时器电路设计图;
2、电子定时器设计源程序;
3、keil运行源程序;
4、protus中仿真;
5、运行结果分析。
主要参考资料:
[1]张志良.单片机学习指导及习题解答.机械工业出版社,2008.
[2]张伟.单片机原理及应用.机械工业出版社,2009.
[3]孙俊逸、盛秋林、张锋.单片机原理及应用.清华大学出版社.2010.
[4]张毅刚.单片机原理及应用.北京高等教育出版社,2010.
[5]黄仁欣.单片机原理及应用技术.北京清华大学出版社,2005.

           完  成  期  限:12 月 11 日 - 12 月 26 日  指导教师签名:                     课程负责人签名:                         

摘 要
计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路。计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。
本设计为简易电子计数器,以AT89C51为主控芯片,其作用范围在0~59,应用了示数码管来显示计数。

关 键 词:简易电子计数器;AT89C51

目录
摘 要 I
目录 II
1、 概述 1
1.1课程设计目的 1
1.2系统主要内容 1
2、总体设计 2
2.1 设计方案 2
2.2 系统功能设计 2
3、Protues仿真图及相应局部工作原理 3
3.1 总的仿真图 3
3.2 局部显示 3
3.3 按钮控制 4
4、源程序 4
5、结果分析 6
6、心得体会 9

1、概述

1.1课程设计目的

1.掌握以单片机为核心的控制系统的分析和设计的根本方法;
2.控制程序的设计及实现方法;
3.独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础

1.2系统主要内容

1.开始按钮,按下开始计数并设置的有初始值;
2.暂停按钮,按下暂停按钮,停顿计数,再按下暂停按钮,开始计数;
3.结束按钮,按下结束此次计数;
4.每过一秒,示数码管数字就加一,数码管数字每到60就归零

2、总体设计
2.1 设计方案
本设计为累加计数的简易计数器,应用AT89C51芯片作为核心, 8位的LED数管显示。这种实现方法的优点是电路简单,性能可靠,实时性强,操作简单,编程容易。
2.2 系统功能设计
在这里插入图片描述

图2.1系统功能图

3、Protues仿真图及相应局部工作原理
3.1 总的仿真图
在这里插入图片描述

图3.1总的仿真图
3.2 局部显示
在这里插入图片描述

图3.2数码管显示

3.3 按钮控制

4、源程序

#include <reg51.h>
#define uc unsigned char
#define ui unsigned int
uc code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数字字模表
uc led_mod[2];//存储每位上的数
#define ledSize 2
ui num;//显示的数字
uc led_point;//周期为1s=1ms*1000 a=65536-1000=0xfc18
//ui a = 0xfc18; //a=(256-100)%256=156 = 0x9c
ui a = 0x9c;
void init(){num=00;//初始值//TH0=a/256;//TL0=a%256;TH0=0x9c;TL0=0x9c;TMOD=0x02;//T0定时方式2 0000 0010TCON=0x10;//TR0=1 启动T0IE=0x82;//EA=1;ET0=1; 开启中断 开T0中断}
void delayMs(ui ms){//延时函数ui i;while(ms--)for(i=0;i<124;i++);
}P2=~led_point;//数码 低电平有效 从个位数向千位数刷新P0=led_mod[i];//字模			led_point<<=1;delayMs(10);}}//}void timer0() interrupt 1{//T0中断函数static ui count;count++;//TH0=a/256;//TL0=a%256;if(count==10000){count=0;num++;num%=60;}
}void main(void){	init();//初始化	while(1){show(num);}
}

5、结果分析

5.1在keil软件中输入完整代码,点击运行,结果如下:
在这里插入图片描述

图5.1

在这里插入图片描述

5.2 keil源程序运行成功后,生成hex文件,连接proteus,进行仿真。

在这里插入图片描述

图5.2
在这里插入图片描述

图5.3

5.3 连接完成后点击开始按钮,计数器开始计数

图5.4

5.5 点击暂停按钮计数器暂停计数
5.6 在暂停状态下,长按点击按钮,计数器正常运行,松开暂停计数

在这里插入图片描述

5.7 计数每到60数码管数字就会归零

5.8点击结束按钮,结束计数

在这里插入图片描述

6、心得体会

这次单片机课程设计让我学到了很多东西,利用了一些本学期学到的东西,收益良多,感觉还是有点成就感的。同时也提高了我们查阅文献资料、设计手册、设计规范以及电脑制图等其他专业能力水平。而且通过对整体的掌控,对局部的取舍,以及对细节的斟酌处理,都使我们的能力得到了锻炼,经验得到了丰富。这是我们都希望看到的也正是我们学习电子技术课程设计的目的所在。本次设计让我深刻地认识到了书上单片机学习到的东西真的是非常的有限,单片机所扩展到的元器件上课和实验用到的只能算是冰山一角。正是这一次锻炼让我们积累了无数实际经验,使我们的头脑更好的被知识武装了起来,也必然会让我们在未来的工作学习中表现出更高的应变能力,更强的沟通和理解力。

相关文章:

基于AT89C51单片机的电子计数器设计与仿真

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87770826 源码获取 主要内容&#xff1a; 设计一个电子计时器&#xff0c;数码管初始显示值为“00”&#xff0c;每隔1s电子秒表加1&#xff1b;秒计数到60时清0&a…...

IT程序员如何面对35岁大龄问题?我从公司老板的角度聊聊

很多从事IT行业的人一想到35岁就很焦虑&#xff0c;担心自己被公司裁员后找不到工作。同时还有家庭责任加身&#xff0c;担心中年失业后晚年生活。作为一位公司老板&#xff0c;我想从我的角度谈一下这个问题。 首先&#xff0c;我本质上不介意我的员工年龄&#xff0c;无论是…...

【计算机专业漫谈】【计算机系统基础学习笔记】W2-2-2 模运算系统和补码表示

利用空档期时间学习一下计算机系统基础&#xff0c;以前对这些知识只停留在应试层面&#xff0c;今天终于能详细理解一下了。参考课程为南京大学袁春风老师的计算机系统基础MOOC&#xff0c;参考书籍也是袁老师的教材&#xff0c;这是我的听课自查资料整理后的笔记 补码表示法…...

vue概述

vue2和vue3的区别 vue2和vue3区别 NOvue2vue31 optinos Api写法 比较分散 Compostiton Api 代码集 2重写数序双向绑定通过Object.defineProperty&#xff08;&#xff09;实现 基于Proxy实现 对数组有了更好的支持 3Fragments 1&#xff0c;在template中只能一个div 2&#xf…...

SpringCloud-OpenFeign案例实战

关于Spring Cloud Open Feign的介绍可以参考这两篇博客 OpenFeign服务接口调用 使用Feign作为服务消费者 本博客参考gitee开源项目代码&#xff0c;结合自己的理解&#xff0c;记录下微服务场景下的使用。Talk is cheap. Show me the code&#xff01; 一、项目结构 这里使用…...

ACM - 数学 - 提高(还没学多少)

ACM - 数学 练习题 一、数论1、分解质因数 &#xff1a;AcWing 197. 阶乘分解2、求约数个数&#xff08;1&#xff09;AcWing 1294. 樱花 &#xff08;求 n&#xff01;约数个数之和&#xff09;&#xff08;2&#xff09;AcWing 198. 反素数 &#xff08;求 1 ~ N 中约数最多的…...

JavaScript class和继承的原理

&#xff08;对于不屈不挠的人来说&#xff0c;没有失败这回事。——俾斯麦&#xff09; class 相关链接 MDN链接 有关类的详细描述 关于构造函数&#xff0c;原型和原型链的说明 类的概述 类是用于创建对象的模板。他们用代码封装数据以处理该数据。JS 中的类建立在原型上…...

Playwright-python 自动化测试【Anaconda】环境配置

第一步&#xff1a;Anaconda的安装 安装Anaconda的好处&#xff0c;比prenv网速快&#xff0c;并且拥有独立的python环境&#xff0c;再也不用烦恼用哪个python好了。 Anaconda的下载页参见官网下载&#xff0c;Linux、Mac、Windows均支持。 https://mirrors.tuna.tsinghua.ed…...

攻防世界-web-simple js

题目描述&#xff1a;小宁发现了一个网页&#xff0c;但却一直输不对密码。(Flag格式为 Cyberpeace{xxxxxxxxx} ) 打开链接&#xff1a; 然后我们会发现不管我们输入什么密码&#xff0c;发现是都是这样的报错 1. 先用bp抓包看看&#xff0c;可以抓到这样的一串js脚本 看不懂…...

【SpringCloud】初始微服务

目录 一、单体架构 1、概念 2、优点 3、缺点 二、分布式架构 1、概念 2、优点 3、缺点 三、微服务 1、概念 2、优点 3、缺点 四、微服务技术对比 五、SpringCloud 六、服务拆分 1、注意事项 2、服务远程调用 一、单体架构 1、概念 业务的所有功能都集中到一个…...

均摊时间复杂度

均摊时间复杂度&#xff0c;它对应的分析方法&#xff0c;摊还分析&#xff08;或者叫平摊分析&#xff09; 均摊时间复杂度应用的场景比它更加特殊、更加有限 // array表示一个长度为n的数组// 代码中的array.length就等于nint[] array new int[n];int count 0;void insert…...

夏驰和徐策的解决数学问题思路——反证法

反证法是一种证明方法&#xff0c;它的基本思路是通过假设某个结论不成立&#xff0c;然后构造出一个矛盾的情况来推导出原先假设的结论是成立的。 具体来说&#xff0c;反证法一般包含以下步骤&#xff1a; 1. 假设所要证明的命题不成立。 2. 通过这个假设&#xff0c;构造…...

面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers

面向开发人员的 ChatGPT 提示词教程 - ChatGPT Prompt Engineering for Developers 1. 指南(原文: Guidelines)1-1. 提示的指南(原文: Guidelines for Prompting)1-2. 配置1-3. 提示语原则(原文: Prompting Principles)原则 1: 写出清晰而具体的指示(原文: Write clear and spe…...

虹科方案|使用 HK-TRUENAS支持媒体和娱乐工作流程-1

一、摘要 开发和交付能够随时随地触及受众的媒体内容变得越来越重要和复杂。 在当今高度互联、娱乐驱动的世界中&#xff0c;媒体和娱乐 (M&E) 公司需要保持竞争力才能取得成功。 这些组织需要制作各种不同格式的信息和娱乐内容&#xff0c;以便在移动设备、台式机、工作站…...

DDR5内存彻底白菜价,国外大厂却整出了比着火更离谱的骚操作

今年的 PC 硬件市场&#xff0c;似乎出现了明显两极分化现象。 一边是 N、A 两家新显卡价格高高在上&#xff0c;摆明了不坑穷人。 另一边固态硬盘、内存条又在疯狂互卷不断杀价。 四五百元的 2TB SSD&#xff0c;二百元的 16G 内存条早已见怪不怪。 要说面世多年的 PCIe 3.0…...

Linux网络——Shell编程之函数

Linux网络——Shell编程之函数 一、概述二、定义函数的格式1.格式一2.格式二 三、函数的查看和删除1.查看 declare2.删除 declare 四、函数的返回值1.return 返回值2.echo 返回值 五、函数的参数传入与变量范围1.函数的传参2.函数变量的作用范围 六、函数的应用1.阶乘2.递归目录…...

GQCNN+PointNetGPD思路和问题--chatGPT

有很多算法是通过神经网络来预测机械臂抓手的抓取位置&#xff0c;其中一些算法需要点云数据作为输入&#xff0c;例如&#xff1a; PointNetGPD&#xff1a;PointNetGPD是一个端到端的基于点云的抓取姿态检测算法。它使用了一个PointNet架构来处理点云输入&#xff0c;并输出每…...

Mysql索引(2):索引结构

1 概述 MySQL的索引是在存储引擎层实现的&#xff0c;不同的存储引擎有不同的索引结构&#xff0c;主要包含以下几种&#xff1a; 索引结构描述BTree索最常见的索引类型&#xff0c;大部分引擎都支持 B 树索引 Hash索引 底层数据结构是用哈希表实现的, 只有精确匹配索引列的…...

Spring框架介绍和应用实践

Spring是一个开源的Java企业应用开发框架&#xff0c;它通过依赖注入和面向切面编程等技术实现了轻量级、松散耦合、可测试和可扩展的应用开发。本文将介绍Spring框架的基本原理和核心功能&#xff0c;以及在实际项目中如何使用Spring框架进行应用开发。 Spring框架基本原理 …...

IO 流学习总结

一&#xff1a;IO 流的概述 1. 什么是 IO 流&#xff1f; 存储和读取数据的解决方法 I&#xff1a;input O&#xff1a;output 流&#xff1a;像水流一样传输数据 2. IO 流的作用&#xff1f; 用于读写数据&#xff08;本地文件&#xff0c;网络&#xff09; 3. IO 流按…...

【Go】3、Go语言进阶与依赖管理

前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课&#xff0c;做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程&#xff0c;它的核心机制是 Goroutine 协程、Channel 通道&#xff0c;并基于CSP&#xff08;Communicating Sequential Processes&#xff0…...

JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案

JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停​​ 1. ​​安全点(Safepoint)阻塞​​ ​​现象​​:JVM暂停但无GC日志,日志显示No GCs detected。​​原因​​:JVM等待所有线程进入安全点(如…...

招商蛇口 | 执笔CID,启幕低密生活新境

作为中国城市生长的力量&#xff0c;招商蛇口以“美好生活承载者”为使命&#xff0c;深耕全球111座城市&#xff0c;以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子&#xff0c;招商蛇口始终与城市发展同频共振&#xff0c;以建筑诠释对土地与生活的…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 题目描述解题思路Java代码 题目描述 题目链接&#xff1a;LeetCode 3309. 连接二进制表示可形成的最大数值&#xff08;中等&#xff09; 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

区块链技术概述

区块链技术是一种去中心化、分布式账本技术&#xff0c;通过密码学、共识机制和智能合约等核心组件&#xff0c;实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点&#xff1a;数据存储在网络中的多个节点&#xff08;计算机&#xff09;&#xff0c;而非…...

聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇

根据 QYResearch 发布的市场报告显示&#xff0c;全球市场规模预计在 2031 年达到 9848 万美元&#xff0c;2025 - 2031 年期间年复合增长率&#xff08;CAGR&#xff09;为 3.7%。在竞争格局上&#xff0c;市场集中度较高&#xff0c;2024 年全球前十强厂商占据约 74.0% 的市场…...

SQL进阶之旅 Day 22:批处理与游标优化

【SQL进阶之旅 Day 22】批处理与游标优化 文章简述&#xff08;300字左右&#xff09; 在数据库开发中&#xff0c;面对大量数据的处理任务时&#xff0c;单条SQL语句往往无法满足性能需求。本篇文章聚焦“批处理与游标优化”&#xff0c;深入探讨如何通过批量操作和游标技术提…...

比较数据迁移后MySQL数据库和ClickHouse数据仓库中的表

设计一个MySQL数据库和Clickhouse数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

Neo4j 完全指南:从入门到精通

第1章&#xff1a;Neo4j简介与图数据库基础 1.1 图数据库概述 传统关系型数据库与图数据库的对比图数据库的核心优势图数据库的应用场景 1.2 Neo4j的发展历史 Neo4j的起源与演进Neo4j的版本迭代Neo4j在图数据库领域的地位 1.3 图数据库的基本概念 节点(Node)与关系(Relat…...