基于mvc的网站开发,网站备案号如何查找,自己怎么做网址,互联网营销有哪些【普中开发板】基于51单片机简易计算器数码管显示设计( proteus仿真程序实物演示讲解视频#xff09;
Proteus 仿真#xff1a;Proteus 8.16(有低版本)
程序编译器#xff1a;keil 4/keil 5
编程语言#xff1a;C语言
设计编号#xff1a;P04
1. 主要功能#xff1a…【普中开发板】基于51单片机简易计算器数码管显示设计( proteus仿真程序实物演示讲解视频
Proteus 仿真Proteus 8.16(有低版本)
程序编译器keil 4/keil 5
编程语言C语言
设计编号P04
1. 主要功能
普中开发板实验设计
本设计旨在设计一个基于51单片机的简易计算器仿真设计。
功能要求实现加减乘除四则简单运算数码管显示
1、能通过矩阵键盘输入正确键值
2、能进行简单的四则运算
3、能以数码管正确显示数值
4、最大支持运算结果9 9999超出将蜂鸣器报警
(目前仅完全适配普中开发板A234其他普中开发板型号可能需要做代码修改或接线)
需注意本设计仿真中51单片机芯片是兼容的AT89C51,AT89C52是51单片机的具体型号内核是一样的。相同的原理图里无论stc还是at都一样引脚功能都是一样的程序是兼容的芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。
资料下载链接
P系列单片机设计下载链接(复制到浏览器打开)
以下为本设计资料展示图
2. 讲解视频
讲解视频包含仿真运行讲解、实物运行讲解和代码讲解 【普中】基于51单片机简易计算器仿真开发板讲解(proteus代码报告) 3. 设计说明书(报告) 本次课程设计的主要目标是以51单片机为基础结合Proteus仿真软件设计一款简易计算器。这个计算器需要实现加减乘除四则运算功能并且能够将运算结果通过数码管进行显示。这个任务不仅要求我们掌握单片机的编程技术还需要我们深入理解数码管显示的工作原理同时还需要通过Proteus软件进行系统的仿真和调试。
在设计过程中我们将从硬件电路设计和软件编程两个方面进行。硬件电路设计包括单片机最小系统、输入按键、输出数码管等部分。其中单片机最小系统是整个系统的核心它包括了单片机、时钟电路、复位电路等基本部分。输入按键将用于用户输入数字和运算符号而输出数码管则将用于显示运算结果。
软件编程方面我们将使用C语言进行编程。首先我们需要根据设计需求编写出相应的程序。程序应该能够读取用户的输入进行四则运算并根据运算结果驱动数码管进行显示。然后我们将在Proteus中进行仿真和调试检查程序的正确性和系统的稳定性。
通过这个课程设计我们不仅能够更加深入地理解单片机的原理和应用还能够掌握基本的电路设计和软件编程技能。同时通过Proteus的仿真和调试功能我们还可以更好地理解系统的运行过程提高我们的调试和解决问题的能力。我们期待通过这个课程设计能够更好地掌握单片机的应用为未来的学习和工作打下坚实的基础。
4. 仿真
打开仿真工程双击proteus中的单片机选择hex文件路径然后开始仿真。 5. 实物烧录和现象 计算结果如下图
软件准备
第一次使用务必先安装CH340驱动。
双击打开 STC-ISP.exe。
下载步骤
0.板子先上电接电源线到电脑USB口先不上电板子无灯光。
1.选择选择单片机型号
2.选择下载器的串口
3.打开编译生成的 HEX 文件
4.点击下载单片机板子电源键按下接通电源等待下载完成提示
6. 程序代码
使用keil4或者keil5编译代码有注释。
核心代码
#includereg52.h //头文件
#includeintrins.h//头文件
#includemath.h
#define uint unsigned int //宏定义
#define uchar unsigned char//宏定义
long x0,y0,num0;
uint operators,input,iny0;
uchar key,k,ff16;
sbit a0P2^2; //138锁存器
sbit a1P2^3;
sbit a2P2^4;
sbit beepP2^5;
sbit ledP3^0;uchar code table[]{ //数码管段选0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};//uchar code table1[]{0xfe,0xfd}; //数码管位选void delay(uint xms) //延时
{uint xx,yy;for (xxxms;xx0;xx--)for(yy110;yy0;yy--);
}void display() //显示函数数码管动态扫描
{uchar wan,qian,bai,shi,ge; wannum/10000;qiannum%10000/1000;bainum%1000/100;shinum%100/10; //num求摸 数码管显示十位genum%10; //num求余 数码管显示个位P00x00; //数码管全关P0table[ff]; //端选给P0a00; //位选a10; a20;delay(3); //延时P00x00; P0table[ge];//段选显示个位数a00;a10;a20; //选中第一位delay(3);P00x00; P0table[shi];//段选显示十位数a01;a10;a20; //选中第二位delay(3);P00x00;P0table[bai];a00;a11;a20; //选中第三位delay(3);P00x00;P0table[qian];//段选显示千位数a01;a11;a20; //选中第四位delay(3);P00x00;P0table[wan];//段选显示万位数a00;a10;a21; //选中第五位delay(3);}/**********算术运算函数*************/
void arithmetic()
{if (iny){switch(operators){case 1: //加法运算xxy;numx;if(num100000num-100000) //正常范围{TR00;}else //超出范围报警TR01;break;case 2: //减法运算xx-y;numx;if(num0){numnum*(-1);ff17;}elseff16;if(num100000num-100000){TR00;}elseTR01;break;case 3:xx*y; //乘法运算numx;if(num100000num-100000){TR00;}elseTR01;break;case 4: //除法运算xx/y;numx;if(y!0) //除数不为0{//TR00;led1;}else //除数为0 报警//TR01;led0;}}
}/***********符号处理函数*************/void fuhao()
{if(key9key0) //判断按下的键是否为数值{numnum*10(key-0);if (operators0){ynum;iny1;}else{xnum;if(num100000num-100000){TR00;}elseTR01;}}
else{switch(key) //按键判断{case c://x0;//y0;//num0;if(operators0){xx/10; //一位一位删除numx; iny0;}if(operators0){yy/10; //一位一位删除numy; } //iny0;//operators0;//display();break;case :arithmetic();iny0;operators0;//num0;break;case :if (operators)arithmetic();operators1;num0;break;case -:if (operators)arithmetic();operators2;num0;break;case *:if (operators)arithmetic();operators3;num0;break;case /:if (operators)arithmetic();operators4;num0;break;}}
}7. 设计资料内容清单
资料设计资料包括仿真程序代码、讲解视频、功能要求、设计报告、软硬件设计框图等。
0、常见使用问题及解决方法–必读
1、仿真图
2、程序源码
3、功能要求
4、讲解视频
5、烧录工具
6、开题报告
7、设计报告
8、软硬件流程框图
Altium Designer 安装破解
KEILproteus 单片机仿真设计教程
KEIL安装破解
Proteus元器件查找
Proteus安装
Proteus简易使用教程
单片机学习资料
普中-2普中-3普中-4开发板原理图.pdf
相关数据手册
答辩技巧
设计报告常用描述
鼠标双击打开查找嘉盛单片机51 STM32单片机课程毕业设计.url