点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/87777668?spm=1001.2014.3001.5503

源码获取

主要内容:
本次设计所提出的一种基于单片机技术的万年历的方案,能更好的解决万年历显示的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。
基本要求:
1、万年历电路设计图;
2、万年历设计源程序;
3、keil运行源程序;
4、proteus中仿真;
5、运行结果分析。
主要参考资料:
[1] 谭浩强.C.程序设计.北京:清华大学出版社,2002
[2] 王为青,程国刚.单片机 Keil Cx51 应用技术开发,北京:人民邮电大学出版社,2007
[3] 马忠梅等.单片机的C语言应用程序设计.北京航空航天大学出版社,2003.
[4] 王晋凯.简简单单学通51单片机开发 [M].清华大学出版社,2014.
[5] 刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.

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

摘 要
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新.在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。
万年历在人们的日常生活中是比较常见的电子产品之一.可是它还在发展之中,以后必将出现功能更多,显示更完全的万年历,基于这样的理念,本次设计是用AT89c51单片机、7SEG-MPX2-CC数码管显示器、控制按键为元件来设计的万年历。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个I/0端口的功能和基本用途的了解。掌握应用程序开发环境,常用的7SEG-MPX2-CC数码管显示器的使用方法。
此设计是基于单片机技术的万年历的方案,本次设计所提出的一种基于单片机技术的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种I/0口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统-—单片机,配以汇编语言编写的执行程序,能更好的解决计算机计算的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。
关 键 词:AT89C51;单片机技术;万年历;7SEG-MPX2-CC数码管

目录

摘 要 1
目录 2
1 概述 3
1.1 设计思想 3
1.2 单片机概述 3
1.3 设计目的 4
1.4 设计要求 4
2系统总体方案 5
2.1 整体设计 5
2.2 温度模块设计 6
2.3 时钟程序设计 7
2.4 LCD显示程序 8
3 系统程序设计 9
3.1 系统电路图 9
3.2 程序源代码 9
4 系统仿真和调试 20
4.1 Keil uVision与Porteus仿真软件 20
4.1.1 Keil uVision 20
4.1.2 Porteus 20
4.2 测试结果图 21
4.3 测试结果分析 21
5 心得与体会 22
参考文献 23

1 概述
1.1 设计思想
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。
万年历在人们的日常生活中是比较常见的电子产品之一.可是它还在发展之中,以后必将出现功能更多,显示更完全的万年历,基于这样的理念,本次设计是用AT89c51单片机、7SEG-MPX2-CC数码管显示器、控制按键为元件来设计的万年历。利用此设计熟悉单片机微控制器及汇编语言编程,对其片资源及各个I/0端口的功能和基本用途的了解。掌握应用程序开发环境,常用的7SEG-MPX2-CC数码管显示器的使用方法。
此设计是基于单片机技术的万年历的方案,本次设计所提出的一种基于单片机技术的简易计算器的方案,采用具有数据处理能力的中央处理器CPU,随机存储器ROM,多种I/0口和中断系统、定时器/计时器等功能集成到一块硅片上构成的一个小而完善的计算机系统-—单片机,配以汇编语言编写的执行程序,能更好的解决计算机计算的问题,随着数字生活的到来,单片机在生活中越来越重要,它能将大量的逻辑功能集成与一个集成电路中,使用起来十分方便。
1.2 单片机概述
当今时代,是一个新技术层出不穷的时代。在电子领域,尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。过去习惯于传统电子领域的工程师、技术员正面临着全新的挑战,如不能在较短时间内学会单片机,势必会被时代所遗弃,只有勇敢地面对现实,挑战自我,加强学习,争取在较短的时间内将单片机技术融会贯通,才能跟上时代的步伐。
它所给人带来的方便也是不可否定的,它在一块芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
1.3 设计目的
通过本次课程设计,运用《单片机微型计算机原理及应用》所学到的知识及查询相关资料,完成对万年历的设计,进一步提高单片机的系统设计和开发能力,达到理论知识与实践更好的结合,提高综合运用所学知识和设计能力的目的。
1.4 设计要求
本设计中由于要对时间、温度进行显示,所以选择液晶显示屏1602模块作为输出。1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。将L1602的RS端和P2.0,R/W端和P2.1, E 端和P2.2相连,当RS=0时,对LCD1602写入指令;当RS=1时,对LCD1602写入数据。当R/W端接高电平时芯片处于读数据状态,反之处于写数据状态,E端为使能信号端。当R/W为高电平,E端也为高电平,RS为低电平时,液晶显示屏显示需要显示的示数。

2系统总体方案
2.1 整体设计
根据功能和指标要求,本系统选用MCS-51系列单片机AT89C51为主控机。电子万年历设计题目的系统总流程图如图所示。流程图分析:首先系统初始化,系统开始运行,当有设置键按下时进入修改时间模式,无按键按下时读取时间、温度等数据送入液晶屏显示;在修改时间模式下设置时间完成后再送数据到液晶屏显示。

图2.1 总体方案流程图

2.2 温度模块设计
温度读取流程图如图8.2所示。流程图分析:开始进入初始化DS18B20,就是通过主机拉低单线产生复位脉冲然后释放该线,如果有应答脉冲,即发起ROM命令当成功的执行操作命令后,就使用Convert T命令即开始温度转换,当转换完后,又初始化DS18B20是否有应答脉冲,若有,就发起Read Scratchpad(读取暂存器和CRC字节)命令,同时读出第1,2个字节,即为温度的数据。

图2.2温度模块流程图
2.3 时钟程序设计
时钟流程图如图所示。流程图分析:DS1302开始计时时,首先进行初始化,当有中断信号时,读取时钟芯片的数据送入液晶屏显示。这时若有设置键按下时,进行时间修改,完成后将数据送入时钟芯片;若没有按键按下,则直接存入EPROM,送入液晶屏显示。

图2.3时钟模块流程图

2.4 LCD显示程序
显示程序流程图如图8.4。流程图分析:首先对1602显示屏进行初始化(初始化大约持续10ms左右),然后检查忙信号,若BF=0,则获得显示RAM的地址,写入相应的数据显示;若BF=1,则代表模块正在进行内部操作,不接受任何外部指令和数据,直到BF=0为止。

图2.4 LCD显示程序流程图
3 系统程序设计
3.1 系统电路图

图3.1 系统总电路图
3.2 程序源代码

#define uchar unsigned char
#define uint unsigned int
uchar mode=0;       //屏幕状态变量
uchar temp=0;      //是否调整时钟变量
uchar k=0;          //键盘变量
uchar flag=0;      //温度正负标志位
uint  TU=350;      //报警温度初始化25度
uint  TD=150;      //报警温度初始化15度
uchar WDTZ=0;       //温度调整标志
uint  T=0;         //当前温度
//头函数
#include <reg51.h>
#include <intrins.h>
#include "Ds1302.h"//时钟函数调用
#include "key.h"   //键盘函数调用
#include "Lcd.h"   //屏幕函数调用
#include "DS18B20.h"   //温度传感器函数调用
//蜂鸣器管脚定义
sbit Feng=P2^4;
sbit LEDG=P1^3;
sbit LEDR=P1^4;
/*------------------------------------------------主函数
------------------------------------------------*/
void main()
{rw=0;Init_LCD();                     //初始化显示Ds1302_Init();                //时钟芯片初始化{mode++;write_com(0x0d);//打开闪烁write_com(0x80+0x40+7);//停留在秒闪烁}}else if(k==2)//按下功能键或温度调整-{if(WDTZ==1){//温度下限调整if(TU==TD+10){}else{TU=TU-10;}Data_WD_TZ(TU);//显示报警温度                }else if(WDTZ==2){//温度下限调整if(TD>10){TD=TD-10;}else{TD=0;}Data_WD_TZ(TD);//显示报警温度             }}//进入时间调整循环while(mode!=0){temp=1;  //调整时间k=Key(); //是否有键按下if(k==3) //功能键按下{mode++;if(mode==7)mode=0;switch(mode)//光标闪烁{case 2:{write_com(0x80+0x40+4);//停留在秒闪烁                 break;} case 3:{write_com(0x80+0x40+1);//停留在秒闪烁                   break;} case 4:{write_com(0x80+0x03);//停留在秒闪烁                  break;} case 5:{write_com(0x80+0x06);//停留在秒闪烁                  break;} case 6:{write_com(0x80+0x09);//停留在秒闪烁                  break;}}k=0;           }if(k==2) //时间++{switch(mode){case 1://秒{time_buf1[6]++;if(time_buf1[6]==60){time_buf1[6]=0;}//显示write_com(0x80+0x40+0x06);                  write_date(0x30+time_buf1[6]/10);write_date(0x30+time_buf1[6]%10);write_com(0x80+0x40+0x07);//停留在秒闪烁break;}case 2://分{time_buf1[5]++;if(time_buf1[5]==60){time_buf1[5]=0;}//显示write_com(0x80+0x40+0x03);                     write_date(0x30+time_buf1[5]/10);write_date(0x30+time_buf1[5]%10);write_com(0x80+0x40+0x04);//停留在秒闪烁break;}case 3://时{time_buf1[4]++;if(time_buf1[4]==24){time_buf1[4]=0;}//显示write_com(0x80+0x40+0x00);                 write_date(0x30+time_buf1[4]/10);write_date(0x30+time_buf1[4]%10);write_com(0x80+0x40+0x01);//停留在秒闪烁break;}case 4://年{time_buf1[1]++;if(time_buf1[1]==100){time_buf1[1]=0;}//显示write_com(0x80+0x00);write_date(0x30+time_buf1[0]/10);write_date(0x30+time_buf1[0]%10);                  write_date(0x30+time_buf1[1]/10);write_date(0x30+time_buf1[1]%10);//计算日期  time_buf1[7]=Conver_week(time_buf1[1],time_buf1[2],time_buf1[3]);//显示日期Data_XS(time_buf1[7]);write_com(0x80+0x03);//停留在秒闪烁break;}case 5://月{time_buf1[2]++;if(time_buf1[2]==13){time_buf1[2]=1;}//显示write_com(0x80+0x05);                       write_date(0x30+time_buf1[2]/10);write_date(0x30+time_buf1[2]%10);//计算日期  time_buf1[7]=Conver_week(time_buf1[1],time_buf1[2],time_buf1[3]);//显示日期Data_XS(time_buf1[7]);write_com(0x80+0x06);//停留在秒闪烁break;}case 6://日{time_buf1[3]++;if(time_buf1[3]==32){time_buf1[3]=1;}//显示write_com(0x80+0x08);                   write_date(0x30+time_buf1[3]/10);write_date(0x30+time_buf1[3]%10);//计算日期  time_buf1[7]=Conver_week(time_buf1[1],time_buf1[2],time_buf1[3]);//显示日期Data_XS(time_buf1[7]);write_com(0x80+0x09);//停留在秒闪烁break;}}k=0;}if(k==1) //时间--{switch(mode){case 1://秒{time_buf1[6]--;if(time_buf1[6]==0xff){time_buf1[6]=59;}//显示write_com(0x80+0x40+0x06);                  write_date(0x30+time_buf1[6]/10);write_date(0x30+time_buf1[6]%10);write_com(0x80+0x40+0x07);//停留在秒闪烁break;}case 2://分{time_buf1[5]--;if(time_buf1[5]==0xff){time_buf1[5]=59;}//显示write_com(0x80+0x40+0x03);                        write_date(0x30+time_buf1[5]/10);write_date(0x30+time_buf1[5]%10);write_com(0x80+0x40+0x04);//停留在秒闪烁break;}case 3://时{time_buf1[4]--;if(time_buf1[4]==0xff){time_buf1[4]=23;}//显示write_com(0x80+0x40+0x00);                    write_date(0x30+time_buf1[4]/10);write_date(0x30+time_buf1[4]%10);write_com(0x80+0x40+0x01);//停留在秒闪烁break;}case 4://年{time_buf1[1]--;if(time_buf1[1]==0xff){time_buf1[1]=99;}//显示write_com(0x80+0x00);write_date(0x30+time_buf1[0]/10);write_date(0x30+time_buf1[0]%10);                  write_date(0x30+time_buf1[1]/10);write_date(0x30+time_buf1[1]%10);//计算日期  time_buf1[7]=Conver_week(time_buf1[1],time_buf1[2],time_buf1[3]);//显示日期Data_XS(time_buf1[7]);write_com(0x80+0x03);//停留在秒闪烁break;}case 5://月{time_buf1[2]--;if(time_buf1[2]==0){time_buf1[2]=12;}//显示write_com(0x80+0x05);                     write_date(0x30+time_buf1[2]/10);write_date(0x30+time_buf1[2]%10);//计算日期  time_buf1[7]=Conver_week(time_buf1[1],time_buf1[2],time_buf1[3]);//显示日期Data_XS(time_buf1[7]);write_com(0x80+0x06);//停留在秒闪烁break;}case 6://日{time_buf1[3]--;if(time_buf1[3]==0){time_buf1[3]=31;}//显示write_com(0x80+0x08);                 write_date(0x30+time_buf1[3]/10);write_date(0x30+time_buf1[3]%10);//计算日期  time_buf1[7]=Conver_week(time_buf1[1],time_buf1[2],time_buf1[3]);//显示日期Data_XS(time_buf1[7]);write_com(0x80+0x09);//停留在秒闪烁break;}}k=0;}}if(temp==1)//存入新时间{write_com(0x0c);//关闭闪烁Ds1302_Write_Time();temp=0;}}
}

4 系统仿真和调试
4.1 Keil uVision与Porteus仿真软件
4.1.1 Keil uVision
Keil uVision3是美国Keil Software 公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统c语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用﹐而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。KEILC51标准℃编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效﹐快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。
系统功能:
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面,使您能在很短的时间内就能学会使用keil c51来开发您的单片机应用程序。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
4.1.2 Porteus
Proteus 软件是英国Labcenter electronics 公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它 EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33 、AVR、ARM、8086和MSP430“等,2010年即将增加Cortex 和 DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil 和MPLAB等多种编译器。
其功能特点:
(1)原理布图
(2)PCB自动或人工布线( 3)SPICE电路仿真
(2)pcb自动或人工布线(3)SPICE电路仿真
4.2 测试结果图

图4.1 程序运行图
4.3 测试结果分析
经过测试,本次设计的基于51单片机的万年历的功能基本实现成功,能够完成出时间、温度等功能的显示,但是,本次实验也有许多不足之处,还有很多地方需要改进,比如说,温度的显示有误差,可以对代码进行更精简的修整,从而使功能更加的强大,并且,可以运用于生活实际当中。

5 心得与体会
课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为电子信息工程专业的学生来说掌握单片机的开发技术是十分重要的。
我的题目是万年历,对于我们这些实践中的新手来说,这是一次考验。怎么才能找到课堂所学与实际应用的最佳结合点?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?这都是我们所要考虑和努力的。经过查找资料,编写程序,加深了对单片机的了解与认识,通过本次试验,最大的收获就是仿真容易,而做实物却会遇到各种各样的困难。在电脑上仿真,只要程序写对,电器元件连接好就会得出结果。
本次实验,让我收获很多,感谢老师的答疑,也感谢同学的帮助,不仅加深了知识方面,更加锻炼了动手能力,相信以后遇到这方面问题不再会不知所措,让我把知识和实践结合到一起,通过这次实践,我了解自己的不足,C语言掌握的不够,方法的不足,使我更加了解以后该在哪个方面补充的自己的不足,总体来说本次课程设计是成功的,使我了解到更多课本上没有的知识,最后再次感谢所有帮助过我的老师和同学们。

参考文献
[1] 谭浩强.C.程序设计.北京:清华大学出版社,2002
[2] 王为青,程国刚.单片机 Keil Cx51 应用技术开发,北京:人民邮电大学出版社,2007
[3] 马忠梅等.单片机的C语言应用程序设计.北京航空航天大学出版社,2003.
[4] 王晋凯.简简单单学通51单片机开发 [M].清华大学出版社,2014.
[5] 刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.

基于AT89C52单片机的万年历设计与仿真相关推荐

  1. 基于AT89C52单片机的数字电压表设计

    一.系统组成及工作原理 1.1 系统组成 该基于AT89C52单片机的数字电压表设计由AT89C51单片机,ADC0809芯片(A/D转换器),LED数码管显示电路以及蜂鸣器电路等几部分组成.(用到得 ...

  2. 基于C51单片机的万年历设计(LCD1602显示)

    C51单片机万年历设计 注:该程序基于普中科技C51 V2.2开发板设计,库函数和硬件资料均来自普中科技,侵删.main.c大部分为原创,如有雷同,纯属巧合. 名称:C51万年历. 硬件:以C51芯片 ...

  3. 基于AT89C51单片机的电子琴设计与仿真

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87848430?spm=1001.20 ...

  4. 基于80C51单片机的电子钟设计与仿真

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87761539?spm=1001.20 ...

  5. 基于51单片机液晶万年历设计

    电子万年历是一种非常广泛日常计时工具,给人们的带来了很大的方便,在社会上越来越流行. 它可以对年.月.日.时.分.秒进行计时,采用直观的数字显示,可以同时显示年月日时分秒和温度等信息,还有时间校准.闹 ...

  6. 基于51单片机的音乐盒设计proteus仿真原理图PCB

    功能: 0.本系统采用单片机STC89C52作为系统的主控芯片 1.采用LCD1602液晶显示当前时间/播放曲目信息 2.按键设置时间,切换/暂停曲目 3.内置8首歌曲,本设计采用了优质的外放喇叭,声 ...

  7. 基于AT89C52单片机的温湿度检测设计

    点击链接获取Keil源码与Project Backups仿真图: https://download.csdn.net/download/qq_64505944/87704704 源码获取 主要内容: ...

  8. 基于单片机超声波视力保护系统设计-基于51单片机8音键电子琴仿真设计-基于8086八路模拟信号采集均值显示系统设计-基于8086八路数据电压温度采集系统-基于8086波形发生器仿真设计【毕设课设分享】

    539基于单片机超声波视力保护系统设计-设计资料 硬件构成:单片机+最小系统+LCD1602液晶显示模块+超声波模块+DS18B20温度采集模块+光线检测模块+ADC0832模块+蜂鸣器模块+LED指 ...

  9. 【019】基于51单片机的交通灯Proteus仿真设计

    一.资料内容 (1).基于51单片机的交通灯proteus仿真设计一份: (2).基于51单片机的交通灯proteus仿真设计keli源代码一份: (3).基于51单片机的交通灯proteus仿真设计 ...

最新文章

  1. Altium Designer隐藏电气连接线
  2. Gradle Build Tool
  3. java的单例设计模式
  4. 第2周项目1c++语言中函数参数传递的三种方式
  5. threejs添加立方体_前端图形学(三十)——从源码去看threejs中的光照模型
  6. 在windows下运行spark
  7. 工作总结17:组件封装思想
  8. python报错怎么看_python中的错误如何查看
  9. 女同志50岁退休可以早领养老金,55岁退休拿的养老金比较高,哪个更划算?
  10. 微信小程序(2)--下拉刷新和上拉加载更多
  11. 解决jquery下checked取值问题...
  12. Otsu阈值分割详解
  13. 【HTTP Live Streaming】(四)苹果公司提供的7款 hls 工具
  14. django相关报错知识整理
  15. 程序“[4176] char.exe: 本机”已退出,返回值为 0 (0x0)
  16. 素材要VIP咋整?看python大展神通
  17. edp和edt哪个好_解密香水瓶上edt和edp分别代表什么,以及常见香水的分类!
  18. 客快物流大数据项目(三十):软件下载后存放位置
  19. 微信淘宝客引流的正确玩法
  20. 西门子P L C 1200与smart的S 7通讯

热门文章

  1. jQuery文档初始化函数原理
  2. axure 9 元件库百度地址
  3. 用c语言输出九九乘法表
  4. 【Java——猜数小游戏】
  5. 机器学习中的 precision、recall、accuracy、F1 Score
  6. 蓝桥杯题目训练Python
  7. 基于stm32的空气质量检测净化系统,检测温湿度和pm10和 pm2.5,资料包含(设计文档,源码,pcb电路)。
  8. 剖析GPT,背后的算法,文献,行业影响和中小企业落地建议
  9. 解学武 《数据结构概述》学习笔记1--数据结构与算法概述--19-10-10
  10. 海康威视错误代码文档大全【完整版】