基于AVR128单片机抢答器proteus仿真设计

一、系统方案
在这里插入图片描述在这里插入图片描述

二、硬件设计
原理图如下:
在这里插入图片描述

三、单片机软件设计
1、首先是系统初始化
void timer0_init() //定时器初始化
{
TCCR0=0x07; //普通模式,OC0不输出,1024分频
TCNT0=f_count; //初值,定时为10ms
TIFR=0x01; //清中断标志位
TIMSK=0x01; //使能定时器0溢出中断
SREG|=0x80; //开启全局中断
}
2、数码管显示程序
void Smg_Dispaly(uchar Value1,uchar Value2,uchar Num)
{

if(SmgCnt == 0)
{
PORTB = 0xFF;
PORTB = Smg_Duan[Value1/10];
PORTA = Smg_Wei[0];
}
else if(SmgCnt == 1)
{
PORTB = 0xFF;
PORTB = Smg_Duan[Value1%10];
PORTA = Smg_Wei[1];
}
else if(SmgCnt == 2)
{

}
else if(SmgCnt == 3)
{
PORTB = 0xFF;
PORTB = Smg_Duan[Value2/10];
PORTA = Smg_Wei[3];
}
else if(SmgCnt == 4)
{
PORTB = 0xFF;
PORTB = Smg_Duan[Value2%10];
PORTA = Smg_Wei[4];
}
else if(SmgCnt == 5)
{

}
else if(SmgCnt == 6)
{

}
else if(SmgCnt == 7)
{
PORTB = 0xFF;
PORTB = Smg_Duan[Num];
PORTA = Smg_Wei[7];
}
if(++SmgCnt >= 8)
SmgCnt = 0;
}
3、按键程序
if(PINC == 0xFF)
{
Kcnt = 0;Kflag = 0;
}
else if(Kflag == 0)
{
if(++Kcnt >= 3)
{
Kflag = 1;Kcnt = 0;timer = 0;
PORTE =~ PORTE;
if(DownCnt == 0)
{

		    switch(PINC){case 0xFE: ValueNum = 1;  ValueFlag = 1;break;case 0xFD: ValueNum = 2;  ValueFlag = 1;break;case 0xFB: ValueNum = 3;  ValueFlag = 1;break;case 0xF7: ValueNum = 4;  ValueFlag = 1;break;case 0xEF: ValueNum = 5;  ValueFlag = 1;break;case 0xDF: ValueNum = 6;  ValueFlag = 1;break;case 0xBF: ValueNum = 7;  ValueFlag = 1;break;case 0x7F: ValueNum = 8;  ValueFlag = 1;break;default: break;}} 

4、核心算法程序

#pragma interrupt_handler timer1_ovf_isr:15
void timer1_ovf_isr(void)
{
static uchar cnt = 0;
if(StartFlag == 0)
{
cnt = 0;
}
if(++cnt >= 200)
{
cnt = 0; // 定时器定时5ms,计数200次为1s
if(StartData == 0)
{
SecFlag = 1; // 秒信号
}
}
TCNT1H = (65535-500)/256;
TCNT1L = (65535-500)%256;
Smg_Dispaly(ValueCnt,ValueTmr,ValueNum);

}
四、proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57844.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle-day3:子查询、with as语句、聚合函数

一、单行子查询 /*一、单行子查询格式&#xff1a;select <列明表> from 表名(查询select 语句)where 列或表达式 比较运算符(SELECT 列名 FROM 表名 WHERE 条件)-- 子查询&#xff0c;必须要使用小括号括起来---最大值函数&#xff1a;max()最小值函数: min()二、 from…

ChatGPT Prompting开发实战(二)

一、基于LangChain源码react来解析prompt engineering 在LangChain源码中一个特别重要的部分就是react&#xff0c;它的基本概念是&#xff0c;LLM在推理时会产生很多中间步骤而不是直接产生结果&#xff0c;这些中间步骤可以被用来与外界进行交互&#xff0c;然后产生new con…

Oracle ASM (Automatic Storage Management)

[TOC](Oracle ASM (Automatic Storage Management)) Oracle ASM (Automatic Storage Management) 是 Oracle 的一个磁盘管理和文件系统服务&#xff0c;用于简化数据库文件的分布。 在使用 ASM 管理磁盘时&#xff0c;如果想要增加存储空间&#xff0c;您可以向现有的磁盘组添加…

IdentityServer密码长度超长会导致跳转到登录页

应用系统项目的安全要求越来越高&#xff0c;基本都是采取https等加密证书传输&#xff0c;无法使用https的&#xff0c;也是要求不能明文传输内容&#xff0c;因此做一些等保要求&#xff0c;密码需要加密后才能传输给服务端&#xff0c;所以前端会采取一些密码手段&#xff0…

block层:7. 请求下发

blk_dispatch 源码基于5.10 1. blk_mq_sched_dispatch_requests void blk_mq_sched_dispatch_requests(struct blk_mq_hw_ctx *hctx) {// 队列struct request_queue *q hctx->queue;// 队列已停止或者被暂停if (unlikely(blk_mq_hctx_stopped(hctx) || blk_queue_quiesc…

【Android Framework系列】第12章 RecycleView相关原理及四级缓存策略分析

1 RecyclerView简介 RecyclerView是一款非常强大的widget&#xff0c;它可以帮助您灵活地显示列表数据。当我开始学习 RecyclerView的时候&#xff0c;我发现对于复杂的列表界面有很多资源可以参考&#xff0c;但是对于简单的列表展现就鲜有可参考的资源了。虽然RecyclerView的…

『赠书活动 | 第十八期』《深入浅出SSD:固态存储核心技术、原理与实战》

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 『赠书活动 &#xff5c; 第十八期』 本期书籍&#xff1a;《深入浅出SSD&#xff1a;固态存储核心技术、原理与实战》 赠书规则&#xff1a;评论区&#xff1a;点赞&…

BPM在企业扮演什么角色?一文秒懂!

如果将企业各职能部门比作各司其职的器官组织&#xff0c;那工作流程就是将其串联为整体&#xff0c;指挥其发挥作用的中枢神经网络&#xff0c;流程作为企业管理意志的延伸&#xff0c;对企业运营管理的影响至关重要。 但随着企业IT建设的多元化&#xff0c;系统能力边界扩展&…

Java 线程池

线程池 Java 线程池是一种多线程处理技术&#xff0c;它可以在程序中预先创建一定数量的线程&#xff0c;将任务提交到线程池中&#xff0c;线程池会自动调度线程执行任务。通过使用线程池&#xff0c;可以避免反复创建和销毁线程的开销&#xff0c;提高程序性能&#xff0c;同…

monorepo更新组件报错,提示“无法加载文件 C:\Program Files\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本”

解决方法&#xff1a; 第一步&#xff1a;管理员身份运行 window.powershell&#xff0c; win x打开powerShell命令框&#xff0c;进入到对应项目路径。 第二步&#xff1a;执行&#xff1a;get-ExecutionPolicy&#xff0c;显示Restricted&#xff0c;表示状态是禁止的; 第…

面试前的准备:程序员应该如何备战面试

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

盲盒电商小程序

一、准备阶段 在开始制作盲盒小程序前&#xff0c;你需要在乔拓云平台上创建一个账号&#xff0c;并登录到后台管理页面。在后台管理页面&#xff0c;你可以找到商城管理模块&#xff0c;点击进入商城编辑制作页面。 二、小程序商城模板选择与编辑 1.在商城编辑制作页面&#x…

2023.08.27 学习周报

文章目录 摘要文献阅读1.题目2.重点3.引言4.方法5.实验结果6.结论 深度学习Majorization-Minimization算法1.基本思想2.要求3.示意图 总结 摘要 This week, I read a computer science on the prediction of atmospheric pollutants in urban environments based on coupled d…

AUTOSAR汽车电子系统架构标准

AUTOSAR 目录 AUTOSAR RTE SWC和BSW SWC访问代码实现 ARXML&#xff08;AUTOSAR XML&#xff09; Interface Client-Server接口代码实现 AutoSAR OS Application AUTOSAR&#xff08;Automotive Open System Architecture&#xff09;正式发布日期是2003年&#xff0c;…

Linux系统编程:基础知识入门学习笔记汇总

Linux基础shell编程——>Linux 系统编程——>&#xff08;计算机网络&#xff09;——>Linux 网络编程 来源&#xff1a;黑马程序员-Linux系统编程 45小时 评价 这个老师好像讲了很多课程&#xff0c;都还不错我由于赶时间之前学过Linux的Shell编程和Linux的网络编程&…

swagger 2.10.5 整合 spring boot

参考&#xff1a; http://springfox.github.io/springfox/ https://github.com/springfox/springfox http://springfox.github.io/springfox/docs/current/ https://github.com/springfox/springfox-demos https://github.com/springfox/springfox-demos/tree/2.9.2 https://gi…

pandas读取excel,再写入excel

需求是这样的&#xff0c;从一个表读取数据&#xff0c;然后每次执行创建一个新表将值写入 读取这个表 写入到这个表 分别对应的是e、h列数据&#xff0c;代码如下&#xff1a; import pandas as pd import openpyxl import datetime dfpd.read_excel(rC:\Users\admin\Deskt…

设计模式-职责链模式

文章目录 职责链模式模式概述主要角色适用场景实现步骤优点注意事项 定义职责链结构示例总结 职责链模式 职责链模式是一种行为设计模式&#xff0c;它可以将请求的发送者和请求的处理者解耦&#xff0c;并按照预定义的顺序处理请求。职责链模式常用于需要逐级审批或转交处理的…

【电路设计】220V AC转低压DC电路概述

前言 最近因项目需要,电路板上要加上一个交流220V转低压直流,比如12V或者5V这种。一般来说,比较常见也比较简单的做法是使用一个变压器将220V AC进行降压,比如降到22V AC,但是很遗憾的是,支持220V的变压器一般体积很大,而板子留给电源部分的面积又非常有限,所以不得不研…

OpenHarmony组件复用示例

本文转载自《#2023盲盒码# OpenHarmony组件复用示例》&#xff0c;作者zhushangyuan_ 摘要&#xff1a;在开发应用时&#xff0c;有些场景下的自定义组件具有相同的组件布局结构&#xff0c;仅有状态变量等承载数据的差异。这样的组件缓存起来&#xff0c;需要使用到该组件时直…