- 博客(41)
- 收藏
- 关注
原创 利用定时器1实现流水灯
单片机实验1题目: 利用定时器1实现流水灯,先从左至右,再从右至左,每1s亮起一个灯思路首先要求使用定时器1,且定时1s,那么先将基础的初始化函数完成,计算初值为1ms.在服务函数中定义一个计数变量count并且让count自增,当count=1000时即达到要求的1s.接着题目要求led灯先从左至右,再从右至左移动,这一功能通过使用左移函数与右移函数来完成,具体看示例程序#include <reg51.h>#include <intrins.h>#define led
2020-08-12 13:05:37 20060 9
原创 51单片机学习记录(8) “8X8点阵“
51单片机学习记录(8) “8x8点阵”8x8点阵就是由64个小led灯组成的矩阵,现在先让我们看一下点阵的内部结构从图中可以了解到(从行看去)每一行的小灯的阳极相连在一起排成了一列(从列看去)每一列的小灯的阴极相连在一起排成了一行也就是说当我们对行进行操作的时候需要发送低电平,对列进行操作的时候需要发送高电平,这样才能使电路导通74HC595芯片因为想要点亮8x8点阵还需要它其中8x8点阵的led灯的列就是图示D0到D7控制的,当我们编写程序时需要用到SER,SRCLK,RCLK这
2020-08-08 12:20:15 12326 10
原创 51单片机学习记录
这里写自定义目录标题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markd
2020-08-04 08:42:39 192
原创 FPGA学习: Verilog刷题记录(16)
FPGA学习: Verilog刷题记录(14-2)刷题网站 : HDLBits第三章 : Circuits第二节 :Sequential Logic第一节:Finite State Machines(3)PS/2 packet parser题目描述:The PS/2 mouse protocol sends messages that are three bytes long. However, within a continuous byte stream, it’s not obv
2021-09-06 15:11:08 2097
原创 FPGA学习: Verilog刷题记录(15)
FPGA学习: Verilog刷题记录(14-1)刷题网站 : HDLBits第三章 : Circuits第二节 :Sequential Logic第一节:Finite State Machines(2)Lemmings1题目描述:The game Lemmings involves critters with fairly simple brains. So simple that we are going to model it using a finite state machin
2021-07-27 15:11:32 1291 1
原创 FPGA学习: Verilog刷题记录(14)
FPGA学习: Verilog刷题记录(14)刷题网站 : HDLBits第三章 : Circuits第二节 :Sequential Logic第一节:Finite State Machines(1)Simple FSM 1(asynchronous reset)题目描述:This is a Moore state machine with two states, one input, and one output. Implement this state machine. Notic
2021-07-27 14:54:20 1941
原创 FPGA学习: Verilog刷题记录(13)
FPGA学习: Verilog刷题记录(13)刷题网站 : HDLBits第三章 : Circuits第二节 :Sequential Logic第四小节:More CircuitsRule 90题目描述:Rule 90 is a one-dimensional cellular automaton with interesting properties.The rules are simple. There is a one-dimensional array of cells (o
2021-07-22 16:50:36 2391 6
原创 FPGA学习: Verilog刷题记录(12)
FPGA学习: Verilog刷题记录(12)刷题网站 : HDLBits第三章 : Circuits第二节 :Sequential Logic第三小节:Shift Registers4-bit shift register题目描述:Build a 4-bit shift register (right shift), with asynchronous reset, synchronous load, and enable.areset: Resets shift registe
2021-07-21 10:16:18 2240 1
原创 FPGA学习: Verilog刷题记录(11)
FPGA学习: Verilog刷题记录(10)刷题网站 : HDLBits第三章 : Circuits第二节 :Sequential Logic第一节:CountersFour-bit binary counter题目描述:Build a 4-bit binary counter that counts from 0 through 15, inclusive, with a period of 16. The reset input is synchronous, and should
2021-07-19 20:04:12 2820 4
原创 FPGA学习: Verilog刷题记录(10)
FPGA学习: Verilog刷题记录(10)刷题网站 : HDLBits第三章 : Circuits第二节 :Sequential Logic第一节:Latches and Flip-FlopsD flip-flop题目描述:Create a single D flip-flop.题目分析:创建一个D触发器,根据数电的知识知道,输出q=d(这里是clk的上升沿时刻),用时序逻辑进行一个编写,这里需要注意的是如果使用时序逻辑进行编写的话,需要用非阻塞赋值的方式解答:/*
2021-05-03 21:54:55 3220 3
原创 FPGA学习: Verilog刷题记录(9)
FPGA学习: Verilog刷题记录(9)刷题网站 : HDLBits第3章 : Circuits第1大节 :Combinational Logic第4小节 : Karnaugh Map to Circuit3-variable题目描述:Implement the circuit described by the Karnaugh map below.题目分析:卡诺图的化简解答:/*我的解答*/module top_module( input a,
2021-02-23 14:55:38 2431
原创 FPGA学习: Verilog刷题记录(8)
FPGA学习: Verilog刷题记录(8)刷题网站 : HDLBits第3章 : Circuits第1大节 :Combinational Logic第3小节 : Arithmetic CircuitsHalf adder题目描述:Create a half adder. A half adder adds two bits (with no carry-in) and produces a sum and carry-out.题目分析:实现半加器,可以用位拼接符直接赋值,或者由
2021-02-23 11:13:48 2384 2
原创 FPGA学习: Verilog刷题记录(7)
FPGA学习: Verilog刷题记录(7)刷题网站 : HDLBits第3章 : Circuits第1大节 :Combinational Logic第2小节 : Multiplexers2-to-1 multiplexer题目描述:Create a one-bit wide, 2-to-1 multiplexer. When sel=0, choose a. When sel=1, choose b.题目分析:选择器的编写,这里因为变量比较少,选择三目运算符进行assign语句的
2021-02-23 11:08:59 1667 1
原创 FPGA学习: Verilog刷题记录(6)
FPGA学习: Verilog刷题记录(6)刷题网站 : HDLBits第3章 : Circuits第1大节 :Combinational Logic第1小节 : Basic GatesConditional ternary operator题目描述:Implement the following circuit:题目分析:直接利用assign语句,将线连接起来解答:/*我的解答*/module top_module ( input in, outp
2021-02-23 11:07:23 3014 2
原创 FPGA学习: Verilog刷题记录(5)
FPGA学习: Verilog刷题记录(5)刷题网站 : HDLBits第2章 : Verilog Language第5节 :More Verilog FeatureConditional ternary operator题目描述:Given four unsigned numbers, find the minimum. Unsigned numbers can be compared with standard comparison operators (a < b). Use
2021-02-23 11:00:38 2525 2
原创 FPGA学习记录(2): 计数器的编写
FPGA学习记录(2):计数器编写注:使用的是野火的征途mini FPGA开发板(参考野火系列视频)1.定时点亮led灯目标利用计数器定时1s,实现0.5s灯亮,0.5s灯灭模拟框图开发板使用的是50MHz的晶振也就是频率f = 50MHz = 5*10^7KHz所以t=1/f= 2*10^7所以计数1s所需要的计数为M=1/t=25000000因为是从0开始计数所以计数的最大值为M=24_999_999通过计算器可以知道M为25位宽的定义两个寄存器变量,cn
2021-02-12 13:16:38 969
原创 FPGA学习: Verilog刷题记录(4)
FPGA学习: Verilog刷题记录(4)刷题网站 : HDLBits第二章 : Verilog Language第4节 :ProceduresAlways blocks(combinational)题目描述:Build an AND gate using both an assign statement and a combinational always block题目分析:题目要求分别用assign语句和always语句来创建一个与门,明确语法如何使用的即可解答:
2021-02-10 20:12:31 1706
原创 FPGA学习: Verilog刷题记录(3)
FPGA学习: Verilog刷题记录(3)刷题网站 : HDLBits第二章 : Verilog Language第三节 :Module:HierarchyModule题目描述:实例化模块a,并将模块a和顶层模块进行连接,其中mod_a的定义如下module mod_a ( input in1, input in2, output out ); // Module bodyendmodule题目分析:解答:/*我的解答*/module top_m
2021-02-09 16:59:43 3493
原创 FPGA学习: Verilog刷题记录(2)
FPGA学习: Verilog刷题记录(2)刷题网站 : HDLBits第二章 : Verilog Language第二节 :VectorsVectors题目描述:Build a circuit that has one 3-bit input, then outputs the same vector, and also splits it into three separate 1-bit outputs. Connect output o0 to the input vector’s
2021-02-09 11:38:23 2106
原创 FPGA学习记录(1):熟悉开发流程
FPGA学习记录(1)注:使用的是野火的征途mini FPGA开发板0. 需要的软件(1)Modelsim : 用于波形的仿真(2)Quartus II : 仿真工具(3)Sublime Text : 编写程序的编辑器(4) Visio 2013 : 用来绘制波形图1. 点亮LED学习目标:明白FPGA的大致开发流程(1)准备工作新建一个工作目录,用来存放有关FPGA的实验在新建的工作目录下,新建一个名为led的目录,用来存放相关的文件在led目录下新建4
2021-02-04 19:39:46 466 2
原创 FPGA学习: Verilog刷题记录(1)
FPGA学习: Verilog刷题记录(1)刷题网站 : HDLBits第一章 Getting StartedGetting Started题目描述: Build a circuit with no inputs and one output. That output should always drive 1 (or logic high).题目分析:让输出为逻辑1解答:/*我的解答*/module top_module( output one ); as
2021-02-01 12:51:09 3476 5
原创 学习C语言的笔记
《C和指针》笔记持续更新,如果有错误的话,欢迎评论和私信一、用到指针时一定要思考的一些问题它指向谁!能不能访问!是否会导致内存泄漏!二、一些零散知识C = 声明 + 函数声明:描述函数和函数将要操作的数据类型函数:定义了需要执行的工作C 中大小写敏感标识符 :变量,函数,类型的名字由字母,数字,下划线组成,不以数字开头关 键字不能作为标识符使用用if,for在括号和表达式之间留空格,使表达式更突出嵌套语句学会用Tab键缩进不应该嵌套
2020-12-16 19:39:37 180
转载 python中matplotlib的颜色及线条控制(转载)
http://www.cnblogs.com/darkknightzh/p/6117528.html
2020-11-22 09:10:23 156
原创 Python的学习记录2
python序列1.列表:可以一次性存储多个数据,且可以为不同数据类型列表的创建a = [value1,value2,value3…]list()创建a = list() => 空列表a = list("abc") => [a,b,c]range()创建整数列表range[start,end,step]start :可选,表示起始数字,默认为0end :必选,表示结尾数字step :可选,表示步长,默认为1a = list(range(10)) =
2020-10-07 23:19:59 158
原创 Python的学习记录1
python1. 定义变量的方式格式: 变量名 = 值 即可 (variable = value)与C语言的不同是 不用定义数据类型 直接变量名 = 值即可 且也不需要加分号2. python输出与C语言的不同 1.不需要分号,输入的格式也有所不同用法:1) print("content") or print('content')2) print(variable) [多个变量时可以用逗号隔开',']3) print("",sep=' ',end='\n') [sep默认的分割是空格,en
2020-10-05 11:31:02 109
原创 Linux 学习记录(3) “根目录下的文件介绍“
Linux 学习记录(3) “根目录下的文件介绍”在Linux下一切皆文件,无论是硬件还是软件,都可以在Linux下找到它们的文件,而它们一般都存放在了根目录下,现在来了解一下根目录下一些重要目录的介绍吧目录名称介绍/bin/bin目录里面一般存放的都是一些二进制的可执行文件,像ls cat 等命令都可以在这里面找到,且/bin下的文件是root和一般用户都可以执行/boot/boot下存放的是系统引导的文件,系统开机的配置文件都可以在这里面找到/dev/d
2020-08-22 13:11:36 236
原创 51单片机学习记录(13) “初识I2C总线原理部分“
51单片机学习记录(13) “初识I2C总线原理部分”概要(了解即可)I2C总线是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线。其中SDA为数据线,SCL为时钟线总线上可以接任一器件,从第二张图也可以看出两根线均上拉了电阻连接了+VDD.所以当总线空闲时,两根线均为高电平,当任一器件输出低平时,总线的信号都会变低.也就是各器件的数据线和时钟线都是线"与"关系(只要有一器件输出低电平,其余器件都为低电平)总线上的器件地址都是唯一确定的数据的传送1.数据位的有效性规
2020-08-22 10:49:47 487
原创 Linux学习记录:常用命令
Linux因为对linux特别的感兴趣,所以花了许多时间去学习,现在将我先前做的笔记放上来,方便之后的查看和复习1. 文件类型-:普通文件 (f)d:目录文件b:块设备文件 (block)c:字符设备文件 (character)l:符号链接文件(symbolic link file)p:命令管道文件(pipe)s:套接字文件(socket)2. 文件种类普通文件(’-’, regluar file)分为:二进制文件和文本文件二进制文件,是给机器看的,例如:.bin, .e
2020-08-18 11:10:13 322
原创 51单片机实验2
51单片机实验2题目: 编写一个程序实现按下k4按键,让第四位数码管从F到0的13秒倒计时,按下k1使倒计时暂停其中需要使用定时器1,倒计时结束后一直显示0思路: 既然是需要使用按键和定时器的,那么可以编写一个按键函数其中k4让定时器1的初始化开始,k1用来暂停定时器,显示数码管的任务就可以用定时器1的服务函数来编写,具体看下面的示例#include <reg51.h>typedef unsigned char u8;typedef unsigned int u16;/*定义按
2020-08-16 15:42:01 423
原创 51单片机学习记录(12)“串口通信“
51单片机学习记录(12) “串口通信”相关知识SCON寄存器:用于设定串行口的工作方式,接受/发送控制以及设置状态标志,因为先前的文章里已有写到下面是链接,这里就不再赘述https://blog.csdn.net/weixin_45931009/article/details/107886429#t6波特率波特率:波特率表示每秒钟传送的码元符号的个数,它是对符号传输速率的一种度量,它用单位时间内载波调制状态改变的次数来表示,1波特即指每秒传输1个符号。在串行口通信中,双方的发送与接受的速率需要
2020-08-10 10:02:53 708
原创 51单片机学习记录(11)“定时中断“
51单片机学习记录(11)“定时中断”用定时/计数器0让led 1s 闪烁一次先前使用延时函数并不能精确的控制灯的亮灭,但是现在利用定时/计数器就可以达成精确定时首先了解下CPU时序的有关知识振荡周期:为单片机提供定时信号的振荡源(晶振或外部提供)的周期,又称时钟周期状态周期: 2个振荡周期 = 1个状态周期机器周期: 1个机器周期里含6个状态周期,12个振荡周期指令周期: 完成一条指令所占用的全部时间,以机器周期为单位例: 外接晶振为12MHz时,51单片机的具体周期值为振荡周期 =
2020-08-09 15:30:26 817
原创 51单片机学习记录(10)“外部中断“
51单片机学习记录(10) “外部中断”用外部中断0控制按键点亮led灯由上一章的内容可以知道寄存器TCON中的IT0和IT1为外部中断的触控制位,从图中也可以看到这两个控制位位于P3^2 和 P3^3口,同时也是K3,K4控制口,因此我们可以通过K3或K4来触发外部中断现在来编写程序#include <reg51.h>typedef unsigned char u8;typedef unsigned int u16;sbit led = P2^0; sbit k3
2020-08-09 10:52:47 418
原创 51单片机学习记录(9) “中断相关知识“
51单片机学习记录(9) “中断及相关寄存器”注:这里为了方便之后的学习,我将有关中断的知识都整合到了一篇文章中,大家也可以挑自己需要的看何为中断定义: 中断是CPU对系统发生的某个事件作出的一种反应。 引起中断的事件称为中断源。中断源向CPU提出处理的请求称为中断请求。发生中断时被打断程序的暂停点称为断点。CPU暂停现行程序而转为响应中断请求的过程称为中断响应。处理中断源的程序称为中断处理程序。CPU执行有关的中断处理程序称为中断处理。而返回断点的过程称为中断返回。简单来说就是,CPU正在处理A
2020-08-08 21:43:53 2110
原创 51单片机学习记录(7) “矩阵按键“
51单片机学习记录(7) “矩阵按键”首先还是让我们先看一下原理图可以看的出来,矩阵按键的连接方式矩阵按键是由P1口控制的P1口的高四位(P17–P14)控制着矩阵按键的行P1口的低四位(P13–P10)控制着矩阵按键的列行列扫描这里为了判断具体是哪个按键被按下,采用了行列扫描的方法,现在来具体说明行列扫描的具体操作原理行列扫描的步骤先让高四位都为0,低四位都为1 ---为了判断列再让高四位都为1,低四位都为0 ---为了判断行假设我们按下的是第3行第2列按上述步骤(按下时,
2020-08-07 10:53:01 1076
原创 Linux 学习记录vim的常用命令及操作
vim的一些命令1.插入命令a 在光标后附加文本A 在本行行末附加文本i 在光标前插入文本I 在本行开始插入文本o 在光标下插入文本O 在光标上插入文本2.移动命令h:光标向左移动 j:光标向下移动 k:光标向上移动l:光标向右移动 3.定位命令$ 移至行尾0 移至行首H 移至屏幕上端M 移至屏幕中央L 移至屏幕下端gg 到第一行nG/:n 到第n行 4.删除命令x 删除光标所在处字符nx 删除光标所在处后n个字符dd 删除光标所在行,
2020-08-06 09:00:20 153
原创 51单片机学习记录(6) “独立按键“
51单片机学习记录(6) 独立按键首先我们看一下按键的原理图可以看到按键是在P3口上,所以当我们编写程序的时候就需要对P3口进行操作需要注意的一些细节首先当我们按下按键时,对应的引脚就变成了低电平当我们编写程序的时候需要进行消抖因为当我们按下按键时,按下的可能这个操作已经进行了很多次,这样可能会导致实验不准确所以我们必须进行消抖,经过实验,按下抖动的这个时间大约是20ms,所以我们可以利用延时函数来屏蔽。#include <reg51.h>typedef unsigne
2020-08-05 23:22:32 759
原创 51单片机学习记录(5) “动态数码管“
51单片机学习记录(5) “动态数码管”动态数码管这里其实只要掌握了静态数码管的显示,动态数码管也能很快的掌握具体的原理是通过对数码管进行延时和人眼的视觉暂留作用来实现#include <reg51.h>#define smg P0 //宏定义P0口typedef unsigned char u8;typedef unsigned int u16;//定义控制Y口引脚的位置sbit LSA = P2^2;sbit LSB = P2^3;sbit LSC = P2^4;
2020-08-05 17:09:38 335
原创 51单片机学习记录(4)“静态数码管“
51单片机学习记录(4) “静态数码管”让数码管显示数字首先让我们看一下数码管的原理图我所使用开发板的数码管是共阴接法(就是将8个led灯的阴极连接在一起并且一起接地)所以共阳接法就是将8个led灯的阳极全部相连并且接上高电平这里并没有很明显的看的出来数码管的接法,数码管的内部接法并没有显示.但可以看出数码管是接在P0口的也将是说当我们编写程序时需要对P0口进行操作。现在让我们看一下如何显示数字可以看到的这是单个数码管,如何让它显示我们想要的数字呢?首先因为是共阴的接法所以如果想要导通
2020-08-05 13:14:02 747
原创 51单片机学习记录(3) “LED流水灯“
51单片机学习记录(3)实现流水灯的几种方式方式1: 利用左移(<<)和右移(>>)首先简单介绍左移和右移的基本知识(不考虑特殊况)左移:对传来的数据翻译成二进制后,将数据的每一位的值向左移动指定位数,丢失的位数用0补充右移:对传来的数据翻译成二进制后,将数据的每一位的值向右移动指定位数,丢失的位数用0补充下面简单的通过例子来说明数据11111110左移2位00111111右移2位1111100
2020-08-05 10:59:35 1059
原创 51单片机学习记录(2) “LED的闪烁“
51单片机学习记录(2)让LED 闪烁这里讲下闪烁的两种方式方式1:通过取反+循环的方式这是我认为最为简单的方式,但这种方式并不能控亮灭的时间#include <reg51.h>sbit led = P2^0;void main(){ while(1) { led = ~led; }}取反+循环的操作相当于不断的将led从高电频变成低电频也就完成了闪烁的效果方式2:采用时间的延时来控制led亮灭采用这种方式就可以手动的控制led亮灭的时间了这里就得说一
2020-08-04 11:58:02 574
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人