当前位置: 首页 > 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 流按…...

PowerToys——免费、强大、高效的微软官方效率提升工具集,办公学习宝藏软件

名人说:博观而约取,厚积而薄发。——宋苏轼 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、简单介绍1、PowToys是什么?2、它的功能有哪些?二、下载安装三、功能示例1、始终置顶2、唤醒3、颜色选取器(取色)4、FancyZones(窗口布局)5、File Locksmith6、…...

【C++】 类基础汇总(类封装,构造、析构函数...)

目录 前言 正文 类封装 为什么要进行类封装 概念 访问修饰符 构造函数 概念 特点 析构函数 概念 特点 再谈面向过程与面向对象 面向过程 代码举例 面向对象 代码举例 结语 下期预告 前言 在学习过【C语言进阶C】 C基础--让你丝滑的从C语言进阶到C 之后&am…...

BM61-矩阵最长递增路径

题目 给定一个 n 行 m 列矩阵 matrix &#xff0c;矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径&#xff0c;使这条路径上的元素是递增的。并输出这条最长路径的长度。 这个路径必须满足以下条件&#xff1a; 对于每个单元格&#xff0c;你可以往上&#xff…...

selenium——unittest框架

目录 一、unittest框架基本介绍二、unittest框架解析三、unittest框架使用方法1.测试固件2.测试套件3.用例的执行顺序4.忽略测试用例中的方法5.unittest断言6.HTML报告生成 一、unittest框架基本介绍 在进行selenium IDE脚本录制导出的脚本中&#xff0c;我们发现其中多了很多…...

matlab频谱分析详解

频谱分析是一种用于分析信号频率特征的方法&#xff0c;常用于信号处理、音乐分析、谐波产生等领域。MATLAB是一种功能强大的数字信号处理软件&#xff0c;提供了许多用于频谱分析的函数和工具箱。 本文将介绍如何使用MATLAB进行频谱分析&#xff0c;包括信号预处理、选择合适…...

用layui写用户登录页面遇到的问题

用layui写用户登录页面遇到的问题 1.在layui-row下面的layui-col-md还是换行 原因&#xff1a;link标签和script标签中的type属性没写&#xff0c;导致应该是script或者这个css没有识别出来 解决办法&#xff1a;link标签里面加上type为text/css, script标签中加上type为 2…...

NMOS双向转换电路实测以及上升沿尖峰处理

NMOS双向转换电路实测以及上升沿尖峰处理 NMOS双向转换电路 &#x1f527;采用的是5V供电的STC8H单片机输出PWM波形&#xff0c;经过上面的电平转换电路测量低压端的波形。 ✨在做3.3V <>5V 电平转换电路方案验证时&#xff0c;输入5V PWM波形和输出波形的波形上升沿有尖…...

【数据结构】选择排序(详细)

选择排序 1. 直接选择排序2. 堆排序2.1 堆2.2 堆的实现&#xff08;以大根堆为例&#xff09;2.3 堆排序 3. 堆排序&#xff08;topK问题&#xff09; 1. 直接选择排序 思想 以排升序为例。以a[i]为最大值&#xff08;或最小值&#xff09;&#xff0c;从a[i1]到a[n-1-i]比较选…...

什么是企业内容管理?

为什么出现企业内容管理&#xff1f; 在数字经济的宏观背景下&#xff0c;企业建立了各种应用系统以满足企业各业务的管理需求&#xff0c;这些系统每天都在产生大量的数据和信息资源&#xff0c;但在企业实践中存在很多数据或资源无法被应用系统获取、处理和共享。 比如发票…...

机器学习:分类、回归、决策树

分类&#xff1a;具有明确的类别 如&#xff1a;去银行借钱&#xff0c;会有借或者不借的两种类别 回归&#xff1a;不具有明确的类别和数值 如&#xff1a;去银行借钱&#xff0c;预测银行会借给我多少钱&#xff0c;如&#xff1a;1~100000之间的一个数值 不纯度&#xff1…...