一、 实验目的使用 51单片机的八位数码管顺序显示自己的学号。掌握 C 语言、汇编语言两种编程单片机控制程序的方法。掌握使用 Keil 4 或 Keil 5 软件编写、编译、调试程序的方法。掌握使用 Proteus 软件绘制电路原理图、硬件仿真和程序调试。二、实验设备笔记本电脑51 单片机(普中科技)八位数码管(单片机上已集成)应用程序:Proteus 8.0、Keil uVision5、stc-isp-v6.88E三、实验原理(1)数码管数码管按段数可分为七段数码管和 8 段数码管,八段数码管比七段数码管多一个发光二极管单元,也就是多一个小数点(DP),这个小数点可以更精确的表示数码管想要显示的内容。按能显示多少个(8),可分为 1 位、2位、3位、4位、5 位、6位、7 位等数码管。按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时将公共极 COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极 COM 接到地线 GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。(2)51单片机单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器 CPU、随机存储器 RAM、只读存储器ROM、多种 I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。MSC-51 单片机指以 8051为核心的单片机,由美国的 Intel 公司在 1980 年推出,80C51 是 MCS-51系列中的一个典型品种;其它厂商以 8051为基核开发出的CMOS 工艺单片机产品统称为 80C51 系列。本实验中我使用普中科技的 51 单片机来点亮八位数码管并使其显示我的学号(20198043)。四、 实验 过程(1)熟悉数码管使用 Proteus 软件构建电路图,学会如何点亮数码管,熟悉如何使数码管显示不同的数字(0-9)。我们可以按照上面的原理图让对应的段导通,以显示数字。对于共阳数码管,若显示数字 0,可以让标号为 A,B,C,D,E,F 的段导通,标号为 G,H 的段不导通,然后将阳极通入高电压,即显示数字 0。代码举例如下:最后效果如下,成功点亮一个数码管。经过更多尝试和学习,学会使多位数码管显示多位数字。结果举例如下:(2)多位数码管显示学号为了显示我们学号,就不能只使用一位数码管,需要使用八位数码管,相较于单位数码管,多位数码管更加复杂,驱动函数有很大区别。多位数码管使用同一组段选,不同的位选,因此就不能够一对一地固定显示,这就需要动态扫描。动态扫描:利用人眼视觉暂留,多位数码管每次只显示一位数字,但是切换频率大于 200HZ(50 × 4),这样就能让人产生同时显示多个数字的错觉。具体操作是轮流向数码管送字形码和相应的位选。一个完整的驱动程序不只以上这些,一个完整的数码管驱动有 6部分:1. 码表(ROM):存储段码(一般放在 ROM中,节省 RAM空间),例如数字 0的段码就是 0xC0,码表则包含 0-9的段码2. 显存(RAM):保存要显示的数字,取连续地址(便于查表)3. 段选赋值:通过查表(码表)操作,将显存映射到段码4. 位选切换:切换显示的位置5. 延时:显示的数字短暂保持,提升亮度6. 消影:消除切换时不同位置互相影响而产生的残影
上传时间: 2022-06-08
上传用户:canderile
本书作者以轻松幽默的笔调向读者论述了高质量软件开发方法与C++/C编程规范。本书共15章,重点介绍软件质量和面向对象程序设计方法,C++/C编程风格和一些技术专题等内容。第1章 高质量软件开发之道 第2章 做好程序员 第3章 编程语言发展简史 第4章 C++面向对象程序设计方法概述 第5章 文件结构 第6章 程序的版式 第7章 命名规则 第8章 表达式和基本语句 第9章 常量 第10章 函数设计 第11章 内存管理 第12章 C++函数的高级特性 第13章 类的构造、析构与赋值函数 第14章 C++ STL应用编程建议 第15章 其他编程经验 附录A C++/C试题
上传时间: 2022-06-16
上传用户:
第一章简介JavaScript是弱变量类型,定义变量不需要指定类型,直接用var表示即可。JavaScript区分大小写,例如,变量a与变量A是两个不同的变量。同样函数valueof与valueof是两个不同的函数。JavaScript每行结尾的分号可有可无,如果没有分号,则一行代码为一个语句。示例如下:注释:本文中的例子都是在网页中运行,都放在如下html页面的<script>标签内部。之后的例子中会省略html的代码部分。JavaScript中括号用于代码块。代码块用花括号"和""封装。示例如下:第二章变量2.1 变量的命名规则JavaScript变量命名需要遵循以下三点:> 首字母必须是字母,下划线(-)>其他的字符可以是下划线,美元符号,任意字母或者数字>不能是关键字或者保留字或者空格2.2声明变量JavaScript中变量用"var"来声明,例如:2.3变量的值.000l11.001变量可以在声明时初始化来赋值,例如:var name ="Ann"也可以用其他变量为变量赋值,例如:var name ="Ann":var othername=name;alert(othername);使用其他变量赋值时需要注意的是基本数据类型和对象数据类型会有很大的区别。基本数据类型如字符串和数值等,在赋值时变量会复制一份独立的数据副本,比如此时修改name的值,othername的值不会发生改变。
标签: javascript
上传时间: 2022-06-18
上传用户:
本书是一本介绍Linux设备驱动开发理论、框架与实例的书,本书基于LDD6410开发板,以Linux 2.6版本内核为蓝本,详细介绍自旋锁、信号量、完成量、中断顶/底半部、定时器、内存和I/O映射以及异步通知、阻塞I/O、非阻塞I/O等Linux设备驱动理论;字符设备、块设备、TTY设备、I2C设备、LCD设备、音频设备、USB设备、网络设备、PCI设备等Linux设备驱动的架构和框架中各个复杂数据架构和函数的关系,并讲解了Linux驱动开发的大量实例,使读者能够独立开发各类Linux设备驱动。
上传时间: 2022-06-18
上传用户:
Lwip协议栈的实现目的,无非是要上层用来实现app的socket编程。好,我们就从socket开始。为了兼容性,lwip的socket应该也是提供标准的socket接口函数,恩,没错,在src\inc lude\lwip\socket.h文件中可以看到下面的宏定义:#if LWIP COMPAT SOCKETS#define accept(a,b,c)Iwip accept(a,b,c)#define bind(a,b,c)Iwip bind(a,b,c)#define shutdown(a,b)Iwip shutdown(a,b)#define closesocket(s)Iwip close(s)好,这个结构先不管它,接着看下get socket函数的实现【也是在src\api\socket.c文件中】,在这里我们看到这样一条语句sock =&sockets[s];很明显,返回值也是这个sock它是根据传进来的序列号在sockets数组中找到对应的元素并返回该元素的地址。好了,那么这个sockets数组是在哪里被赋值了这些元素的呢?进行到这里似乎应该从标准的socket编程的开始,也就是socket函数讲起,那我们就顺便看一下。它对应的实际实现是下面这个函数Int Iwip socket(int domain,int type,int protocol)【src\api\socket.c】这个函数根据不同的协议类型,也就是函数中的type参数,创建了一个netconn结构体的指针,接着就是用这个指针作为参数调用了alloc socket函数,下面具体看下这个函数的实现
上传时间: 2022-06-19
上传用户:aben
网上的资源,但是么有word形式。想免费分享,但必须有1积分。 FOC主要是通过对电机电流的控制实现对电机转矩(电流)、速度、位置的控制。通常是电流作为最内环,速度是中间环,位置作为最外环。本程序是DSP2812控制永磁同步电机高精度控制代码,根据Uref实际所在的扇区,确定Tx和Ty实际所对应的电压矢量,就可以计算出T1,T2,T3的值;然后再根据Uref所在的扇区画出类似图十三的三相PWM波形,就可以确定T1,T2,T3分别对应到三相A,B,C的哪一个通道,再赋值给对应通道的捕获比较寄存器,就完成了SVPWM算法。适合从事电机控制方面工作的研发人员作为参考学习使用。
上传时间: 2022-07-04
上传用户:
《电子电气工程师必知必会(第2版)》完整版作者:[美]Darren Ashby 翻译:尹华杰出版社:人民邮电出版社简介:本书从实际工作出发,总结了一名电气工程师在日常工作中最为关键的知识点,从简单的R,L.C元件到复杂的运放,微处理器/微控制器,数模/模数转换器,电机,电源,再到元件的非理想性,电路的可靠性设计,仿真,焊接,以及电路和软件的故障修理,文字幽默生动。此外本书还以较大篇幅介绍了作者作为研发部分的管理者,在人际沟通,管理方面的心得体会。本书即可供电气信息类专业的师生作为参考,也适合电气工程师阅读。
标签: 电子电气工程师
上传时间: 2022-07-16
上传用户:jason_vip1
术语和定义下列术语和定义适用于本标准。3.1 微波 Microwaves微波是电磁波按频谱划分的定义,是指波长从1m至0.1mm范围内的电磁波, 其相应的频率从0.3GHz至3000GHz。这段电磁频谱包括分米波(频率从0.3GHz至3GHz)\厘米波(频率从3GHz至30GHz)\毫米波(频率从30GHz至300GHz)和亚毫米波(频率从300GHz至3000GHz,有些文献中微波定义不含此段)四个波段(含上限,不含下限)。具有似光性、似声性、穿透性、非电离性、信息性五大特点。3.2 射频 RF(Radio Frequency)射频是电磁波按应用划分的定义,专指具有一定波长可用于无线电通信的电磁波。频率范围定义比较混乱,资料中有30MHz至3GHz, 也有300MHz至40GHz,与微波有重叠;另有一种按频谱划分的定义, 是指波长从1兆m至1m范围内的电磁波, 其相应的频率从30Hz至300MHz;射频(RF)与微波的频率界限比较模糊,并且随着器件技术和设计方法的进步还有所变化。3.3 射频 PCB 及其特点考虑PCB设计的特殊性,主要考虑PCB上传输线的电路模型。由于传输线采用集总参数电路模型和分布参数电路模型的分界线可认为是l/λ≥0.05.(其中,l是几何长度; λ是工作波长).在本规范中定义射频链路指传输线结构采用分布参数模型的模拟信号电路。PCB线长很少超过50cm,故最低考虑30MHz频率的模拟信号即可;由于超过3G通常认为是纯微波,可以考虑倒此为止;考虑生产工艺元件间距可达0.5mm,最高频率也可考虑定在30GHz,感觉意义不大。综上所述,可以考虑射频PCB可以定义为具有频率在30MHz至6GHz范围模拟信号的PCB,但具体采用集总还是分布参数模型可根据公式确定。由于基片的介电常数比较高,电磁波的传播速度比较慢,因此,比在空气中传播的波长要短,根据微波原理,微带线对介质基片的要求:介质损耗小,在所需频率和温度范围内,介电常数应恒定不变,热传导率和表面光洁度要高,和导体要有良好的沾附性等。对构成导体条带的金属材料要求:导电率高电阻温度系数小,对基片要有良好的沾附性,易于焊接等。
上传时间: 2022-07-22
上传用户:
本电路只用一块门电路CC4011,用普通的热敏电阻作测温元件,具有声,光报警的功能. 左侧两个门组成2HZ左右的可控振荡顺,右侧两个门组成的可控振荡器.当温度正常时,热敏电阻RT与电阻R的分压低于 与非 门的阀值电压,两组振荡器均不工作.此时绿色发光二极管发光,扬声器无声.一旦超温,RT阻值足够小,第一级 与非 门打开,振荡器工作,红绿两个发光二极管交替工作,扬声器发出继续音响. 由于功放级放大的本电路只用一块门电路CC4011,用普通的热敏电阻作测温元件,具有声,光报警的功能. 左侧两个门组成2HZ左右的可控振荡顺,右侧两个门组成的可控振荡器.当温度正常时,热敏电阻RT与电阻R的分压低于 与非 门的阀值电压,两组振荡器均不工作.此时绿色发光二极管发光,扬声器无声.一旦超温,RT阻值足够小,第一级 与非 门打开,振荡器工作,红绿两个发光二极管交替工作,扬声器发出继续音响. 由于功放级放大的是脉冲信号,所以对失真的要求不高.为了节省晶体管,没有采用复合的方法
上传时间: 2022-07-26
上传用户:zhanglei193
用Canny算子检测图像的边缘 P0404:图像的阈值分割 P0405:用水线阈值法分割图像 P0406:对矩阵进行四叉树分解 P0407:将图像分为文字和非文字的两个类别 P0408:形态学梯度检测二值图像的边缘 P0409:形态学实例——从PCB图像中删除所有电流线,仅保留芯片对象
上传时间: 2015-03-21
上传用户: