51单片机4乘4计算器

目录

具体实现功能

设计介绍

51单片机简介

资料内容

原理图和PCB(AD19)

仿真实现(protues8.7)

程序(Keil5)

全部资料

资料获取


具体实现功能

由51单片机+4*4矩阵按键+LCD1602液晶显示屏+电源等构成

具体功能:

利用4×4矩阵键盘输入,可以进行加、减、乘、除等几种数字运算,并在LCD1602上显示操作过程及结果。

仿真/实物演示视频:

51单片机4乘4计算器

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,拥有灵巧的8位CPU和可编程Flash,使得51单片机为众多嵌入式控制应用系统提供灵活、高效的解决方案。

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容

原理图(AD19)

本系统原理图设计采用Altium Designer19,具体如图。

注1:请使用Altium Designer19直接打开资料中的工程文件(资料中已说明打开方式)!

注2:此设计需按照原理图制作实物,不可直接烧录到任何开发板中运行(需要修改程序)!

仿真实现(protues8.7)

本设计利用protues8.7软件实现仿真设计,具体如图。

注1:请使用protues8.7直接打开资料中的工程文件(资料中已说明打开方式)!

注2:由于仿真软件限制,仿真设计和实物设计无法百分百对应!!

程序(Keil5)

本设计利用KEIL5软件实现程序设计。

主函数如下:

复制代码
////////////////
void main()
{
	uchar   key=0xff;               //键值初始化
	uchar   n=0;		 			//第1个数可以按1-4次
	uchar   m=5; 					//第2个数可以按1-4次
	uchar   x=0; 
	data_a=0;                       //前一个数
	data_b=0;                       //后一个数
	data_c=0;                       //结果 
	init_lcd();  					//1602液晶初始化
	display_a();
    while(1)
	  {
	  	key=keycheckdown();			/*动态扫描键盘,返回按键对应值,赋给j        key=0到f */
		if(0xff!=key)				/*若返回值有效,进入内部处理程序*/
		{ 
		  if(key<10)
		  {
	        if(n<4){data_a=data_a*10+key;m=5;display_a();}n++;  //首先输入第一个数
		    if(m<4){data_b=data_b*10+key;n=5;display_b();}m++;  //必须按了+-*/才能输入第二个数		
		  }
          else
          {	switch(key)		/*功能键选择*/
					{
						case 0xa:n=5;m=0;x=1;W_lcd(5,0,'+');break; //加  /* + S=1 */ /* 数值转换函数 */									
						case 0xb:n=5;m=0;x=2;W_lcd(5,0,'-');break;		  /* - S=2 *///减
						case 0xc:n=5;m=0;x=3;W_lcd(5,0,'*');break;		  /* * S=3 *///乘
						case 0xd:n=5;m=0;x=4;W_lcd(5,0,'/');break;		  /* / S=4 *///除
						case 0xe:n=5;m=5;eql(x);W_lcd(12,0,'=');display_c(x);break; 	  /* = */
						case 0xf:n=0;x=0;m=5; data_a=0;data_b=0;data_c=0;LCD_Write_String(0,0,table);LCD_Write_String(0,1,table);W_lcd(0,0,'0');break; /*     C*/
					}	  		  
		  }
			do{P1=0xf0;}while(P1!=0xf0);		/*等待按键松开*/
	  	}//(0xff!=key)	  
	  }//while
}//main

程序运行结果如图:

注:请使用KEIL C51直接打开资料中的工程文件(资料中已说明打开方式)!

全部资料

全部资料包括原理图(AD19)、程序(Keil5)、protues仿真(protues8.7)、设计报告(仅供参考)、仿真视频、开发资料、仿真视频、单片机最小系统介绍等,全网最全!资料内容如下图所示!!

资料获取

https://docs.qq.com/doc/DT3hoU29XT0ZDdW5P

相关推荐
祖力554 分钟前
ARM时钟
嵌入式硬件·arm·时钟·imx6ull
三佛科技-1873661339719 分钟前
128KB~512KB Flash车规级MCU选型指南(FT32A072 / FT32A103 系列)
单片机·嵌入式硬件
Brilliantwxx44 分钟前
【STM32】 SPI Flash 驱动开发实战:阻塞模式驱动 W25Q64(含工程代码)
开发语言·stm32·单片机·嵌入式硬件
纳祥科技1 小时前
拆机拆到芯片级:ARC功放机里的NX7026、NX8420、NX6805
单片机·音视频·智能音箱
kkkkkkkkkk_Z1 小时前
新手自学嵌入式|学习日记:从C语言到51单片机基础(GPIO、中断、定时器与PWM篇)
linux·笔记·学习·51单片机
老当益壮梁奶奶2 小时前
ARM汇编学习笔记(六):【i.MX6ULL】时钟系统与定时器(EPIT & GPT)
c语言·arm开发·嵌入式硬件·学习·51单片机
sunoo-2293 小时前
【ARM嵌入式学习笔记Day6】一文打通i.MX6ULL时钟体系:PLL/PFD/预分频+滞回比较器全解析
arm开发·笔记·vscode·单片机·imx6ull·汇编语言
fhq_fn_jgd3 小时前
ARM 时钟
嵌入式硬件
MarkZhou6243 小时前
智能蒸烤双核通信架构拆解:从冗余耦合到分层解耦
stm32·单片机·嵌入式硬件·架构·安卓·安全架构
AAA代码批发商3 小时前
Days 50 51 单片机与 i.MX6ULL 定时器对比:Timer、EPIT、GPT 原理与实验
51单片机·定时器·imx6ull·裸机开发