自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 三大通讯协议:UART+IIC+SPI

IIC通信一般流程:1、主机发送起始位并进行从机寻址2、得到应答后主机开始发送/读取数据位3、数据发送/读取完成主机发送停止位结束此次通信。

2024-06-12 10:19:27 889

原创 4.3 将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL,BL,CL和DL中

主要是通过SHR指令对AX寄存器进行移位,有个容易出错的地方就是,当移位数超过1时,不能直接用指令SHR,而应该先将移位数存入CL,再使用指令SHR AH,CL。最好将AL,BL,CL,DL寄存器的值打印出来。

2024-05-14 20:47:14 288

原创 4.2 试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示“MATCH”,若不相同则显示“NO MATCH”

1、通过上述代码,我们可以总结出打印一条字符串的通用方法带有换行和回车的字符串DATA ENDSSTART:显示字符串1,提示用户输入字符串1;或者使用 LEA DX,MES1INT 21HCODE ENDSEND START2、上述两种方法都使用了指令来比较两组字符串之间的内容是否相等repe是一个串操作前缀,它重复串操作指令,每重复一次ECX的值就减1直到CX为0或ZF为0时停止。cmpsb是字符串比较指令,把ESI指向的数据与EDI指向的数一个一个的进行比较。

2024-05-13 23:22:33 664 2

原创 4.1 编写程序,从键盘接收一个小写字母,然后找出他的前导字符和后续字符,再按顺序显示这三个字符

从方法一中我们看出,当输出的字母是A时,打印出来的三个连续字符是“@AB”,这是因为A的ascll码前一位是“@”,如何实现当输出的字母是A时,打印出来的三个连续字符是“ZAB”呢?找到匹配字符后,通过DEC指令将当前所在字符串的位置减1,以便指向输入字符的前导字符,输出;MOV AH 01H:按下任何键,将其对应字符的ASCII码送入AL中,并在屏幕上显示该字符。MOV AH 07H:按下任何键,将其对应字符的ASCII码送入AL中,不在屏幕上显示该字符。3、将输入的字母加上1,得到中间字符,然后输出。

2024-05-13 01:18:01 320

原创 通信原理课设(gec6818) 009:结课大工程!(GG爆主题小平板)

给大家完整介绍一遍我们小平板的功能,提供一丢丢方向。包括锁屏、密码解锁、rfid解锁、音乐播放器、相册、画板、2048小游戏、环境监测、视频播放。

2023-12-30 21:13:08 641 4

原创 通信原理课设(gec6818) 008:LED+蜂鸣器+串口+MQ01+GY39+RFID

在开发板上要使用led和蜂鸣器需要安装对应的驱动

2023-12-30 19:45:28 1578 3

原创 通信原理课设(gec6818) 007:语音识别

我们的需求是将一个语音文件从客户端传到服务器,因此我们最好是选用tcp现在市面上面常用的语音识别解决方案为:科大讯飞c和百度c++离线语音识别和在线语音识别有一定区别,以识别“你好”为例:在线:语音识别可以直接返回“你好”这个字符串离线:只能做命令词 --- 根据我的需求写好代号如:你好 --- 1001最终我们可以拿到这个1001这个id进入科大讯飞官网 -> 讯飞开放平台 -> 离线命令词识别 -> 免费试用。

2023-12-30 17:21:33 2581 3

原创 通信原理课设(gec6818) 006:网络编程

通信基本概念;基本流程;网路编程要用到的函数;windows、ubuntu、gec6918的网络配置;网络编程代码

2023-12-30 15:51:08 1084

原创 通信原理课设(gec6818) 005:进程

进程的概念很重要,在后续编写大工程时,有很多地方都需要开辟线程,先来了解进程和线程的概念。

2023-12-29 22:06:40 911

原创 通信原理课设(gec6818) 004:触摸屏

手挪动后的x坐标大于手挪动前的x坐标,且x轴方向的坐标绝对值变化大于y轴方向的坐标值变化(ev_x > ev_x0 && abs(ev_x - ev_x0) > abs(ev_y - ev_y0):手挪动后的y坐标大于手挪动前的y坐标,且x轴方向的坐标绝对值变化小于y轴方向的坐标值变化(ev_y > ev_y0 && abs(ev_y -ev_y0) > abs(ev_x - ev_x0):手挪动前后的坐标相同(ev_x0 == ev_x && ev_y0 == ev_y)代表手挪动后的坐标。

2023-12-23 16:32:39 583 3

原创 通信原理课设(gec6818) 003:LCD显示bmp

二进制文件:存储二进制,直接通过ASCII去解析出现的就乱码,必须通过程序的开发者发布的格式去完成这个解析格式,必须要按照这个规则走你才能解析出这个文件( .mp3 .mp4 .jpg .bmp......)在屏幕上面循环刷新图片注意:各种不同的像素都要能刷新,并且将其居中,图片没有覆盖到的地方用一个什么颜色的底色去补齐。文本文件:按照ASCII码去解析的文件(.txt .c .h .cpp .hpp.....)有压缩的:jpeg为代表,将它的数据进行压缩,用更小的存储空间表示更多的内容。

2023-12-23 15:39:55 374

原创 通信原理课设(gec6818) 002:文件io+文件偏移+LCD+内存映射

将该代码刷到gec6818板子上后,会发现LCD屏上有条纹状 ,这是因为(800*480)的数组复制了两遍,以及应用态和内核态之间的切换造成了效率低下,我们可以通过内存的映射来解决这个问题。SEEK_SET 基于文件的开头,这个时候如果offset负数,表示继续往前,但是前面是没有数据,这个时候文件会留下空洞。SEEK_END 基于文件的末尾,这个时候如果offset正数,表示继续往后,注意后面是没有数据,这个时候文件会留下空洞。偏移量 也就是你的光标要挪动多少个单位,单位是字节。

2023-12-23 15:30:53 945

原创 通信原理课设(gec6818) 001:环境配置+文件操作

简单记录一下为期两周的通信原理课设,本次课设采用交叉编译,所谓交叉编译是指一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码。简而言之即在一个平台上生成另一个平台上的可执行代码。此次课设的代码Securecrt网盘链接:链接:https://pan.baidu.com/s/1pnA4HHJybezT-zPxCD3_Uw?pwd=scrt提取码:scrt。

2023-12-22 08:33:56 840

原创 51单片机008:以9600bps从计算机发送任一字节数据,当单片机收到该数据后,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零。

题目:以2400bps从计算机发送任一字节数据,当单片机收到该数据后,在此数据前加上一序号然后连同此数据一起发送至计算机,当序号超过255时归零。

2023-12-07 20:59:54 111

原创 51单片机007:由上位机发送1给单片机时,蜂鸣器以400ms频率发声,发2时以200ms频率发声,发3时以100ms频率发生。发4时关闭蜂鸣器。 (使用定时器)

当串行口以方式2或方式3接收时,若SM2=1,则只有当接收到的第九位数据(RB8)为1,才将接收到的前8位地址送入SBUF,并置位RI产生中断请求;在方式0,1时,SM2必须为0。当方式0时,接收完第8位数据后,该位由硬件置位。以200ms发声为例,1s变换200次,1s=1000ms=200次,1次=5ms,定时器定时1ms,如果计数变量count累加到5时,拉低蜂鸣器电源使其发声。题目:由上位机发送1给单片机时,蜂鸣器以400ms频率发声,发2时以200ms频率发声,发3时以100ms频率发生。

2023-12-07 20:31:31 431

原创 51单片机006:利用动态扫描和定时器1在数码管上显示出从765开始以1/10秒的速度往下递减直至321并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到……

题目:利用动态扫描和定时器1在数码管上显示出从765开始以1/10秒的速度往下递减直至321并保持显示此数,与此同时利用定时器0以500MS速度进行流水灯从上至下移动,当数码管上数减到停止时,实验板上流水灯也停止然后全部开始闪烁,3秒后(用T0定时)流水灯全部关闭、数码管上显示出“HAO”。到此保持住。

2023-12-07 10:38:31 185

原创 51单片机005:用动态扫描方法和定时器1在数码管显示出秒表,精确到1%秒,即后两位显示1%秒(xx.yy),一直循环下去,按K1停止计时,K2重新开始,K3清0停表。

思路:1、“用动态扫描方法和定时器1”:动态扫描要用到数码管的位选和段选,定时器要初始化、编写中断服务函数。2、“后两位显示1%秒(xx.yy)”:定义分钟和秒的变量,定时器计数变量每过1s,秒变量++,当秒变量达到60时,分钟变量++。3、“按K1停止计时,K2重新开始,K3清0停表”独立按键,通过看按键是否为低电平,判断按键是否按下。通过延时进行消抖。由于要经常检查按键情况,所以应该写到死循环里。通过控制TCON寄存器中的TR1/TR0运行控制寄存器,控制定时器运行,进一步控制

2023-12-07 09:50:45 610

原创 51单片机004:用定时器以间隔500MS在3位数码管上依次显示0、1、2、3……C、D、E、F,重复。

题目:用定时器以间隔500MS在3位数码管上依次显示0、1、2、3……C、D、E、F,重复。

2023-12-06 22:00:25 145 1

原创 51单片机003: 利用定时/计数器T1产生定时时钟,由P2口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。

题目:利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。

2023-12-06 21:17:01 560 1

原创 基于MFC单文档数字图像处理系统

本次数字图像处理系统是基于mfc单文档的,想着做一点花里胡哨的效果出来,比如简单给窗口加个背景,按钮啥的。却发现这种操作网上大部分都是基于对话框的教程,或者就是没有附图,看起来有点吃力。所以简单记录一下这些操作基于单文档如何实现。

2023-12-06 16:03:31 353 7

原创 图片处理 02分段线性变换+均值滤波+中值滤波

为了生成有更高对比度的图片,将输入图像 (Input Image) 中低于L的灰度值,在输出图像 (Output Image) 中全部设为黑(灰度值为0);将输入图像 (Input Image) 中高于H的灰度值,在输出图像 (Output Image) 中全部设为白(灰度值为255);使用该方法遍历处理图像内的每一个像素点,可完成整幅图像的均值滤波。使用该方法遍历处理图像内的每一个像素点,可完成整幅图像的均值滤波。原理:以某像素的领域图像区域中的像素值的。原理:均值滤波是典型的 线性滤波算法。

2023-12-05 14:55:05 224 2

原创 图像处理 01反转变换+对数变换+幂律变换

基本灰度变换:反转变换(Image Negatives)+ 对数变换(Log Transformations) + 幂律变换(Power-Law Transformations)原理加C++代码

2023-11-28 14:40:50 1071

原创 51单片机002:利用定时/计数器T0从P1^0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHZ

因此对TMOD的配置需要对这个8bit寄存器整体赋值。根据具体的情况对相应寄存器赋值即可,如选择定时器0模并选择工作方式1,TMOD寄存器就为0000 0001,所以对TMOD赋值为0x01。让发光二极管以1HZ闪烁,周期为频率的倒数,也就是发光二极管以1s为周期闪烁。闪0.5s,灭0.5s。,定时器初始化函数要配置相关寄存器和参数,定时器中断服务函数描述中断具体执行的任务。1、选择一个发光二极管体现实验现象。2、要用到定时器,肯定要写。TMOD不同的是TMOD寄存器。

2023-11-09 22:09:43 2737 1

原创 51单片机001:利用动态扫描方法在三位数码管上显示出稳定的321

动态扫描:本事还是静态扫描,只是利用人眼的视觉暂留效应,以一定的频率依次点亮多个。数码管的段位,只要频率足够大,人眼无法识别出,就会形成多个数码管同时亮的现象,可以控制。通过对P2^2,P2^3,P2^4赋值来选择对应的数码管。静态扫描:只能点亮一个数码管,点亮固定的段位。3、段选:让选择的三位数码管分别显示321。通过对P0口进行赋值使数码管显示对应的数字。2、位选:选择三位数码管。

2023-11-09 21:31:27 637 1

原创 二进制数字调制

数字调制最简单的情况是二进制调制,即调制信号是二进制数字信号。在二进制数字调制中,载波的幅度、频率或相位只有两种变化状态。接下来将介绍二进制幅度键控、二进制频移键控、二进制相移键控、二进制差分相移键控。

2023-11-01 17:36:19 1788 1

原创 matlab实现三元码解码

之前已经实现用matlab实现二元码编码现在实现用matlab解码。解码比编码简单很多,解码的前提是先编码。由于编码的跨度为100,解码的时候for循环也往往是以100为跨度。

2023-10-17 19:09:56 146

原创 matlab实现二元码解码(单极性非归零码、双极性非归零码,单极性归零码、双极性归零码、传号差分码、空号差分码、数字双相码、密勒码、传号反转码)

之前已经实现用matlab实现二元码编码现在实现用matlab解码。解码比编码简单很多,解码的前提是先编码。由于编码的跨度为100,解码的时候for循环也往往是以100为跨度。

2023-10-15 19:11:47 572 1

原创 matlab实现三元码编码(AMI码,HDB3码,B6ZS码)

三元码指的是用信号幅度的三种取值表示二进制码,三种幅度的取值为:+A,0,-A,或记作+1,0,-1。下面将介绍三种三元码及其具体的matlab编码。编码之前先定义要编码的二进制码。

2023-09-30 00:48:32 2730 6

原创 matlab实现二元码编码(单极性非归零码、双极性非归零码,单极性归零码、双极性归零码、传号差分码、空号差分码、数字双相码、密勒码、传号反转码)

二元码基带信号的波形为矩形波,幅度取值只有两种电平,分别对应与二进制码1和0。接下来将介绍常用的二元码的编码方式以及对应的matlab代码。其中,时间轴数据可以任意创建,但是要保证后期绘图时plot函数的前两个参数长度相等。

2023-09-29 23:58:59 4024

原创 在Ubuntu中编译C++代码(从安装虚拟机到完成编译)

从VMware下载开始,一步一步实现在Ubuntu中编译c++。主要内容包括虚拟机的下载,镜像文件的下载,虚拟机的创建,cmake的安装。

2023-07-08 20:38:12 8171 3

原创 从安装到实现,零基础利用QT完成简易图像处理

下载QT之前,我们应该先知道QT是什么,QT可以做什么?Qt是一个跨平台的 C++ 开发库,主要用来开发图形用户界面Qt。虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等。接下来我们就开始下载QT吧。

2023-06-19 19:55:03 1654

单片机复习,涵盖单片机重要知识点

单片机重点知识概括

2023-12-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除