分类 📖电子&通信 下的文章 - 我的学记|刘航宇的博客
首页
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🎵音乐
🏞️壁纸
搜 索
1
【NPN/PNP三极管】放大电路饱和失真和截止失真的区别
12,710 阅读
2
论文写作中如何把word里面所有数字和字母替换为新罗马字体
7,155 阅读
3
【高数】形心计算公式讲解大全
6,641 阅读
4
【1】基于STM32CubeMX-STM32GPIO端口开发
5,151 阅读
5
如何判断运放是工作在线性区还是非线性区
4,995 阅读
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
嵌入式&系统
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
登录
搜 索
标签搜索
嵌入式
ASIC/FPGA
VLSI
SOC设计
机器学习
天线设计
C/C++
EDA&虚拟机
软件算法
小实验
信号处理
电子线路
通信&射频
随笔
笔试面试
硬件算法
Verilog
软件无线电
Python
DL/ML
刘航宇
嵌入式系统&数字IC爱好者博客
累计撰写
302
篇文章
累计收到
527
条评论
首页
栏目
🌻微语&随笔
励志美文
我的随笔
写作办公
📖电子&通信
嵌入式&系统
通信&信息处理
编程&脚本笔记
🗜️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
页面
📊归档
⏳时光机
📬留言
🐾友链
资助名单
推荐
🎓843课程班
🎵音乐
🏞️壁纸
用户登录
登录
📖电子&通信(共112篇)
找到
112
篇与
📖电子&通信
相关的结果
2021-03-14
VM虚拟机开机蓝屏,无限重启等,解决方案
由于电脑硬件兼容性问题,在虚拟机的设置中将不需要的设备移除,尤其是打印机全部移除,关机重启,再开就没问题了设置下方有,移除选项,点击对应栏目移除即可
2021年03月14日
298 阅读
1 评论
2 点赞
2021-03-14
三角函数公式大全适用于数学、信号等领域
secx,cscx与sinx,cosx的关系是:1/cosx=secx,1/sinx=cscx即secx×cosx=1,cscx×sinx=1。1、倒数关系:sinx.cscx=1cosx.secx=1tanx.cotx=12、商的关系:sinx/cosx=tanxtanx/secx=sinxcotx/cscx=cosx3、平方关系:(sinx)^2+(cosx)^2=11+(tanx)^2=(secx)^21+(cotx)^2=(cscx)^2导数关系两角和公式sin(A+B) = sinAcosB+cosAsinB sin(A-B) = sinAcosB-cosAsinB cos(A+B) = cosAcosB-sinAsinB cos(A-B) = cosAcosB+sinAsinB倍角公式三倍角公式半角公式和差化积积化和差设α为任意角, +α的三角函数值与α的三角函数值之间的关系:假设α为锐角时,先计算 +α的值,再确定符号,如果n为偶数,则三角函数不变,否则转换函数,同时去掉 ,例如
2021年03月14日
538 阅读
0 评论
2 点赞
2021-03-13
C语言用“*”输出三角形
例如:#include <stdio.h> int main() { int i,j,n; printf("input ranks n\n"); scanf("%d",&n); for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) printf(" "); for(j=0;j<=i;j++) printf("*"); printf("\n"); } return 0; } for(i=0;i<n;i++) { for(j=0;j<=i;j++) printf("*"); printf("\n"); } printf("\n");for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) printf(" "); for(j=0;j<=i;j++) printf("*"); printf("\n"); } 或 for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) printf(" "); for(j=n-i-1;j<n;j++) printf("*"); printf("\n"); } for(i=0;i<n;i++) { for(j=0;j<n-i;j++) printf("*"); printf("\n"); } printf("\n"); for(i=0;i<n;i++) { for(j=0;j<i;j++) printf(" "); for(j=0;j<n-i;j++) printf("*"); printf("\n"); } 或 for(i=0;i<n;i++) { for(j=0;j<i;j++) printf(" "); for(j=i;j<n;j++) printf("*"); printf("\n"); } for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) printf(" "); for(j=n-i-1;j<n+i;j++) printf("*"); printf("\n"); } 或 for(i=0;i<n;i++) { for(j=0;j<n-i-1;j++) printf(" "); for(j=0;j<=2*i;j++) //如果是2*i-1,则 j 是从1开始 printf("*"); printf("\n"); } for(i=0;i<n;i++) { for(j=0;j<i;j++) printf(" "); for(j=0;j<2*n-2*i-1;j++) printf("*"); printf("\n"); } 或 for(i=0;i<n;i++) { for(j=0;j<i;j++) printf(" "); for(j=i;j<2*n-i-1;j++) printf("*"); printf("\n"); }
2021年03月13日
681 阅读
0 评论
1 点赞
2021-03-11
使用虚拟机提示“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”
如果虚拟机的时候遇到过“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题,其实出现这种情况是bios中虚拟化VT-x没有关闭,具体怎么解决问题的呢?下面看操作 弹窗的提示信息如下: 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态。 如果已在 BIOS/固件设置中禁用 Intel VT-x,或主机自更改此设置后从未重新启动,则 Intel VT-x 可能被禁用。 (1) 确认 BIOS/固件设置中启用了 Intel VT-x 并禁用了“可信执行”。 (2) 如果这两项 BIOS/固件设置有一项已更改,请重新启动主机。 (3) 如果您在安装 VMware Workstation 之后从未重新启动主机,请重新启动。 (4) 将主机的 BIOS/固件更新至最新版本。 解决方法 看上面的提示 也就很好解决了:直接修改BIOS设置即可。 以下以个人映泰H61主板为例: 1、关机,开机,在启动时,按Delete进入 BIOS 设置页面(不同主板进入BIOS快捷键不同,可以通过网络查询); 2、选择Advanced,再选择CPU Configuration并点击enter建进入该功能,在新功能中选择Intel (R) Virtualization Technology ,此时该选项应该是disabled(关闭)的;3、将disabled(关闭)改为 enabled(开启);4、保存设置,点击F10,保存后退出,重启即可。以上就是使用虚拟机提示“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的解决方法,大家可以试下。
2021年03月11日
488 阅读
0 评论
1 点赞
2021-03-10
linux无法进入超管模式root用户密码错误解决方法
一、问题的原因问题:输入命令 su root ,输入密码怎么输入都不正确原因:因为刚安装好的Linux系统是没有给root设置密码的二、解决方法输入以下命令sudo passwd root [sudo] password for sam(用户名): 输入当前登陆liunx用户名的密码Enter new UNIX password: 输入新的密码并确认,此时的密码就是root新密码Retype new UNIX password: 再次确认root新密码弹出:passwd: password updated successfully(已成功更新密码)进入root权限su root 切换到普通用户,如自己配置的用户名为samsu sam
2021年03月10日
296 阅读
0 评论
5 点赞
2021-03-10
超详细win系统虚拟机安装liunx系统方法
前言:Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。如果初学,建议用VMWARE方式,或者CYGWIN,等熟练后再装双系统。双系统的方式速度快,适合做研发。同时虚拟机支持win下用linux系统,不必开关机等麻烦事项,缺点就是慢。一、软件准备。由于课本资源老旧,兼容性不佳,可能有的win10安装后无法打开,建议用我下面提供连接安装,或者联系我要u盘安装,免下载安装有问题话可以联系我!1、 VMware软件下载地址1(迅雷)http://forspeed.onlinedown.net/down/vmware15.zip百度云链接(提取码liu6)https://pan.baidu.com/s/1eJGST7AixIng4v7SoSN2aw2、Linux系统Ubuntu16.04版本下载链接(提取码:liu6): https://pan.baidu.com/s/1ZN5fDI7eWSIlRPqkyM38zQUbuntu18.04版本下载链接(提取码:liu6): https://pan.baidu.com/s/1-n5WIjuKbDD3NF9YX8-qKQ二、VMware软件安装!!!下面安装路径命名最好不要出现中文!1、解压VMware压缩包得到下图所示文件:2、打开安装包3、建议更改安装位置到d盘,C盘大可以忽略更改后安装位置如下4、按照安装指示完成安装,安装过程中会重置网络,出现网络断开的现象,属于正常现象。5、打开VMware,点击许可证!出现输入密钥界面,这时候就要用到密钥生成器了点击Generate键生成密匙,复制左侧密匙粘贴在VMware密匙界面里,回车确认即可破解软件秘钥复制后输入6、如果提示更新不要更新!三、在VMware上安装linux系统退出右键点击图标,以管理员权限运行。1、打开VMware界面如下所示2、点击创建新的虚拟机选择自定义安装,点击下一步3、继续选择下一步4、选择光盘映像文件,导入的文件为下载的Ubuntu18.04(或者Ubuntu16.04)Linux系统,然后点击下一步:5、输入你的信息,然后点击下一步,建议不要出现中文6、输入你的虚拟机名称,按照惯例名称一般不要出现中文,并选择虚拟机部署的位置,然后点击下一部7、依据你电脑的情况选择分配给这台虚拟机的CPU,如果不清楚自己的电脑情况,建议选少一点,不然运行起来对主系统速度影响会很大。然后点击下一步8、调整你想要分配给虚拟机的内存,分配原则和上面一样,一般电脑总运行内存4G,调整完成后点击下一步。9、如无特殊情况,使用网络地址转换,然后点击下一步10、I/O控制器类型默认类型不用管,然后点击下一步11、磁盘类型默认类型不用管,然后点击下一步12、如无特殊情况,选择创建新的虚拟磁盘,然后点击下一步13、选择分配给磁盘的大小,分配原则与CPU、内存一样。选择将虚拟磁盘存储为一个文件,方便管理,然后点击下一步14、给磁盘文件命名,一般不要出现中文,然后点击下一步15、核对虚拟机的各种参数,然后点击完成,虚拟机即会自动安装完成16、第一次安装很慢,请耐心等待,安装完成后打开虚拟机如图所示,一般点击全屏以自适应屏幕大小开机无限重启蓝屏等问题请点击跳转
2021年03月10日
553 阅读
17 评论
18 点赞
2021-02-26
基于虚拟现实技术远程教育系统
摘要: 由于传统的教学与网络课程均不能完美的实现与学生大量的教学互动环节,在日益增长的教学需求下,如听觉、视觉、触觉等身临其境的教学需求,虚拟现实技术备受瞩目。虚拟现实技术是一种良好的人机交互技术,利用计算机可以生成二维、三维、四维等虚拟空间,通常广泛应用的是三维空间,而虚拟物体可以按一定的规则去自主运动,使用者通过一定的输入方式可以虚拟互动,促使该物体做出相应的回应。本文提出一种学生在异地可以远程和教师进行身临其境交互的一种系统。关键字: 虚拟现实技术; 云服务器; 远程教育; 人机交互;6人工智能;第一章 引言1.1. 系统开发背景虚拟现实技术最早可以追溯到美国VPL公司,虚拟现实技术包括虚拟现实(VR)、增强现实(AR)和混合现实(MR)[1],该技术融入了AI、传感、网络、图形技术,使用者利用专用头盔、专用手套和人体接触传感设备,在网络环境控制下,可以让用户感知模拟的三维环境,并进行交互,使其在听觉、视觉、触觉均能有所反应。其特点包括:多感官感知性、信息交互性、体验沉浸性、虚拟想象性[2],在传统的教学不能完美的实现与学生大量的教学互动环节,日益增长的教学需求下,如听觉、视觉、触觉等身临其境的教学需求,因此虚拟现实技术用于远程教育系统的开发前景是十分光明的。1.2. 国内外研究现状在20世纪60年代虚拟现实技术开始兴起,美国是VR技术的发源地,有美国宇航局(NASA)、麻省理工学院(MIT)媒体实验室、华盛顿大学人机界面技术实验室(HIT Lab)等许多知名的研究机构。美国在虚拟现实领域的基础研究主要集中在感知、用户界面、后台软件和硬件四个方面。英国主要有四个从事VR技术研究的中心,包括Windustries公司、British Aerospace公司、Dimension International公司、Divison LTD公司等。日本主要致力于建立大规模VR知识库和人机接口方面的研究项目上,在VR游戏方面的研究也处于领先地位。我国从20世纪80年代起开始研究VR技术。虽然起步较晚,但近年来政府有关部门非常重视,制定了开展VR技术的研究计划,并将其列入国家重点研究项目。国内的一些科学家和重点院校也已积极投入了对这一领域的研究。是国内最早进行VR技术研究、最有权威的单位之一。它于2000年8月成立了虚拟现实新技术教育部重点实验室。西安交通大学信息工程研究所对虚拟现实中的关键技术——立体显示技术进行了研究,提出一种基于JPEG标准压缩编码新方案,获得了较高的压缩比、信噪比以及解压缩速度。直到80年代虚拟现实才开始运用于教育领域,在20世纪90年代,美国最早把虚拟现实技术引入到高等与基础教育建设中。现在中国教育部教育管理信息中心、数字学习与教育公共服务部工程研究中心、百度教育共同编著的《2018中国互联网学习白皮书》指出“互联网+”教育持续发展,VR+教育、AR+教育等获得深入推进。虚拟现实在教育领域中的运用具备巨大的潜力和良好的发展前景,国家政府与各行各业对虚拟现实教育的发展现状与未来发展状况密切关注,已经开展了各项研究,因此设计一种基于虚拟现实技术远程教育系统是十分有必要的[3]。第二章 系统开发的相关介绍和分析2.1. 系统设计框图本文提出一种基于虚拟现实技术远程教育系统设计方法,其中包括教师终端与学生终端,两个终端通过5G或4G网络可靠的TCP协议连接到一个云端中央处理器,通过计算和相应算法对数据进行处理。教师终端包括VR采集模块、数据反馈模块、教师识别模块;学生终端包括数据标注模块、VR显示模块、交互采集模块、学生识别模块如图1所示为系统整体设计框图[4]。2.2. 具体开发实施方式云端服务器可以通过阿里云、腾讯云等购买,中央服务器系统要求基于Red Hat Linu系统CentOS 7.3以上。利用远程连接如Xshell登入最高权限ROOT用户,用于架设中央服务器。进一步,通过FTP将写好的C/C++程序通过FTP上传到中央服务器根目录,通过前面所述将云主机安装gcc和g++用于编译程序生成和执行文件,在root权限下,输入命令CD进入根目录,输入g++ suanfa.cpp编译成功后生成可执行文件,直接调用该文件,同时键入后台运行命令,使得该程序稳定运行,中央服务器就配置成功了,该服务器实现教师终端与学生终端之间数据TCP协议通信连接。教师终端用于接受教师终端内各个模块数据信息并处理;VR采集模块用于对教师教学内容进行全景拍摄,并形成交互反馈信息发送给学生终端。教师识别模块用于对教师身份识别并将所识别的结果发送给中央服务器,该模块依托于指纹识别方式进行识别。学生终端的载体则是VR头盔,用于接受学生终端内各个模块数据信息并处理,载体通过局域网wifi方式和学生终端服务器通信。其中学生识别模块也采用指纹识别方式,将识别结果反馈给中央服务器。VR显示模块用于对VR教学视频进行接受并显示;数据标注模块用于学生在VR教学视频观看。此外教师端需要利用移动式摄像头来捕捉画面,为了得到一个便于建模的全景图像,我们采用多个摄像头来采样图像,图像一系列处理后采用LOD模型生成算法建模。如图2。
2021年02月26日
268 阅读
0 评论
1 点赞
2021-02-19
STM32上特殊管脚应用 重映射那个GPIO_Remap_SWJ_JTAGDisable
对于初学习者来说为什么用到PB3和PB4时无法控制输出呢? 下面就这一问题进行分析讲解。 首先,STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能。有时我们为了充分利用MCU I/O口的资源,会把这些 端口设置为普通I/O口。具体方法如下: 在GPIO_Configuration(); // 配置使用的 GPIO 口: GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); // 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP) GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE); // 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); 注意:不要忘记在RCC_Configuration()中开启AFIO时钟, //AFIO时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
2021年02月19日
462 阅读
0 评论
0 点赞
2021-02-16
旁路电容-数字地上存在干扰,会导致控制芯片输出异常吗?
地端电压0v左右有个范围,波动太大,可能间接性工作需要旁路电容改善旁路电容是可将混有高频电流和低频电流的交流电中的高频成分旁路滤掉的电容。 对于同一个电路来说,旁路(bypass)电容是把输入信号中的高频噪声作为滤除对象,把前级携带的高频杂波滤除,而去耦(decoupling,也称退耦)电容是把输出信号的干扰作为滤除对象。简介可将混有高频电流和低频电流的交流信号中的高频成分旁路滤掉的电容,称做“旁路电容”。旁路电容的主要功能是产生一个交流分路,从而消去进入易感区的那些不需要的能量,即当混有高频和低频的信号经过放大器被放大时,要求通过某一级时只允许低频信号输入到下一级,而不需要高频信号进入,则在该级的输入端加一个适当大小的接地电容,使较高频率的信号很容易通过此电容被旁路掉(这是因为电容对高频阻抗小),而低频信号由于电容对它的阻抗较大而被输送到下一级放大。对于同一个电路来说,旁路(bypass)电容是把输入信号中的高频噪声作为滤除对象,把前级携带的高频杂波滤除,而去耦(decoupling,也称退耦)电容是把输出信号的干扰作为滤除对象 [1] 。
2021年02月16日
244 阅读
0 评论
1 点赞
2021-02-15
微型计算机可任意启动/停止的电子秒表
一、电子秒表课程设计要求6位LED数码显示,计时单位为1/100秒。利用功能键进行启/停控制。其功能为:上电后计时器清0,当第一次(或奇数次)按下启/停键时开始计数。第2次(或偶数次)按下该键时停止计时,再一次按启/停键时清零后重新开始计时。二、关键字 8086 8255 8253 控制字三、摘要 用汇编语言设计数字秒表,用PROTUES仿真软件搭建的硬件电路上正确显示,并且具有开始停止清零功能。用8086作为处理器,8253做定时功能产生0.01S的脉冲,8255具备锁存和并行输出功能,驱动7段数码管正确显示,并且具有足够高的精度。。四、综合实验目的:通常,学习知识是由浅入深、由此及彼,一点点的学习和积累的,而应用知识则是综合运用所积累的知识来分析和解决实际问题、从知识的系统性来检验对各层次知识的掌握程度。综合实验的目的是让学生把理论学习和实验教学阶段所掌握的知识通过一个设计实例,经历一次理论和实践结合、软件和硬件结合的综合训练,也是一次工程实践能力的检验。这次综合实验大家应当把它作为毕业设计的预演。锻炼通过各种媒体和途径主动获取知识的能力。五、引言使用8253的通道0 工作在方式0计数,,并选用二进制技术,控制字36H,计数初值500,对1MHZ的CLK计数产生2000HZ的输出脉冲给1,2通道的CLK,通道一选用二进制计数即计数结束中断方式0,初值20产生非屏蔽中断0.01S非屏蔽中断送给8086的NMI产生中断的脉冲,8086开始计数即毫秒位计数并显示,并与10比较,等于给分秒位加一, 毫秒位置清零,分秒位与6比较若相等清零秒各位加一,秒个位与10比较若等于清零秒十位加一,秒十位与6比较若等于清零分个位加1,分个位与10比较若等于清零分十位加一,分十位与6比较若等于全部清零。1、使用各芯片的作用及工作原理1)定时器/计数器8253用系统8253定时器提供的1MHZ定时单位,设计秒表定时程序。 有关系统定时方法:PC机系统中的8253定时器0工作于方式3,外部提供一个时钟作为CLK信号, 频率:f=1MHz。 定时器0输出方波的频率:2000 Hz。 定时器1输出方波100HZ,输出方波周期Tout=1/100=1ms。8253A每隔1ms引起一次中断,作为定时信号。可用1ms作基本计时单位。当A1A0分别为00 01 10 11时分别选中三个通道和控制字寄存器在8088系统中,8088的A1A0分别与8253的A1A0相连在8086系统中,通常将8253的8位数据线与8086的低8位相连,即使用偶地址,所以8086的A2A1分别与8253的A1A0相连。计数器(0 ~ 2)即三个计数器/定时器通道。每个通道包括:8位控制字寄存器、16位计数初值寄存器、减一计数器和输出锁存器。作定时器用:其CLK端上的输入脉冲应是标准的、精确的;作计数器用:对其CLK端上的脉冲计数,脉冲宽度可以不等。采用减一计数器,为0时,从OUT端上输出一个脉冲定时时间 = 时钟脉冲周期X预置的计数初值。 控制功能表CS RD WR A1A0 功 能0 1 0 0 0 写计数器00 1 0 0 1 写计数器10 1 0 1 0 写计数器20 1 0 1 1 写控制字寄存器0 0 1 0 0 读计数器00 0 1 0 1 读计数器10 0 1 1 0 读计数器20 0 1 1 1 无操作1 X X X X 禁止使用0 1 1 X X 无操作每个通道: CLK 计数脉冲或标准脉冲输入端GATE 允许端,当GATE=1时允许计数 UT 计数值为0时输出一个脉冲由于8253的读/写操作对系统时钟没有特殊的要求,因此它几乎可以应用与由任何一种微处理器组成的系统中,可作为可编程的方波频率发生器、分频器、实时时钟、事件计数器和单脉冲发生器等。8253是一片具有三个独立的16位计数器通道的可编程定时器/计数器芯片。每个通道都可以编程设定3种工作方式之一种;8253由以下几个部分组成:(1) 数据总线缓冲器(8位、三态、双向);(2) 读/写控制逻辑;CS:片选信号,低电平有效; RD:读信号,低电平有效; WR:写信号,低电平有效 A1A0:端口选择信号 (3) 三个通道( 0 ~ 2),由A0,A1控制选择; (4) 一个控制寄存器;2)用可编程并行接口芯片8255的PA口以及PB口实现数码管输出,PC口实现按键实现数据显示输出 8255 可编程外围接口芯片是 Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间 的数据传送总是并行的,即可以同时传递8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。本课程设计8255控制字1000010001,即是方式选择0控制A口输出控制C口高四位输入B组方式0输出C口低四位输入。即B口数码管段输出控制,A口数码管的位控制。C口低四位用于启动停止输入接口。3). 锁存器273 74LS273是8位数据/地址锁存器,他是一种带清除功能的8D触发器,下面介绍一下他的管脚图功能表等资料。(1).1脚是复位CLR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位;(2).当1脚为高电平时,11(CLK)脚是锁存控制端,并且是上升沿触发锁存,当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上.74ls273管脚功能: 1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。 4)、译码器74ls154 74ls154为4—16线制译码器其引脚图如下图所示 5). 7段数码管 数码管要正常显示,就要来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 静态显示驱动 静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。六、程序代码DATAS SEGMENT DW 100 DUP(?) ZXM DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH HOU1 DB 0 HOU2 DB 0 MIN1 DB 0 MIN2 DB 0 SEC1 DB 0 SEC2 DB 0 ; buf BYTE 0,1,2,3,4,5,6,7,8,9;显示缓冲区 ; FLAG BYTE 0 ; STATE BYTE 0 ; KEYMARK BYTE 0;此处输入数据段代码 DATAS ENDS STACKS SEGMENT DW 100 DUP(?) STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS START: ;;;;;;;;;;;;;;;;;;中断初始化 PUSH DS PUSH BX MOV AX,0000H MOV DS,AX MOV BX,0008H MOV DX,OFFSET TIAOSHI MOV [BX],DX MOV BX,000AH MOV DX,SEG TIAOSHI MOV [BX],DX POP BX POP DS MOV AX,DATAS MOV DS,AX MOV AX,DATAS MOV SS,AX ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MOV AL,89H ;8255 A口和B口输出,C口输入 MOV DX,206H OUT DX,AL MOV AL,3FH MOV DX,202H OUT DX,AL ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; MOV AL,00110110B ;初始化8253,CNT0; MOV DX,0406H OUT DX,AL MOV AX,500 MOV DX,0400H OUT DX,AL MOV AL,AH OUT DX,AL MOV AL,01010000B ; CNT1 ; MOV DX,0406H OUT DX,AL MOV DX,0402H MOV AL,20 OUT DX,AL ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; SHUCHU: LEA SI,ZXM MOV BX,0000H MOV AL,11111110B MOV DX,200H OUT DX,AL MOV BL,SEC2 MOV AL,[SI+BX] MOV DX,202H OUT DX,AL MOV CX,200H S1: LOOP S1 MOV AL,11111101B MOV DX,200H OUT DX,AL MOV BL,SEC1 MOV AL,[SI+BX] MOV DX,202H OUT DX,AL MOV CX,200H S2: LOOP S2 MOV AL,11111011B MOV DX,200H OUT DX,AL MOV BL,MIN2 MOV AL,[SI+BX] MOV DX,202H OUT DX,AL MOV CX,200H S3: LOOP S3 MOV AL,11110111B MOV DX,200H OUT DX,AL MOV BL,MIN1 MOV AL,[SI+BX] MOV DX,202H OUT DX,AL MOV CX,200H S4: LOOP S4 MOV AL,11101111B MOV DX,200H OUT DX,AL MOV BL,HOU2 MOV AL,[SI+BX] MOV DX,202H OUT DX,AL MOV CX,200H S5: LOOP S5 MOV AL,11011111B MOV DX,200H OUT DX,AL MOV BL,HOU1 MOV AL,[SI+BX] MOV DX,202H OUT DX,AL MOV CX,200H S6: LOOP S6 JMP SHUCHU PANDUAN: INC SEC2 CMP SEC2,0AH JNZ SHUCHU MOV SEC2,0 INC SEC1 CMP SEC1,0AH JNZ SHUCHU MOV SEC1,0 INC MIN2 CMP MIN2,0AH JNZ SHUCHU MOV MIN2,0 INC MIN1 CMP MIN1,06H JNZ SHUCHU MOV MIN1,0 INC HOU2 CMP HOU2,0AH JNZ SHUCHU MOV HOU2,0 INC HOU1 CMP HOU1,06H JNZ SHUCHU MOV HOU1,0 JMP SHUCHU TIAOSHI PROC ;;;;;;;;;;;;中断子程序 MOV AL,01010000B ; 初始化CNT1 ; MOV DX,0406H OUT DX,AL MOV DX,0402H MOV AL,20 OUT DX,AL JMP PANDUAN ;;;;;;;;;;;;;;;;;;;;;;; RET TIAOSHI ENDP DELAY PROC PUSH CX MOV CX,29h W10MS: LOOP W10MS POP CX RET DELAY ENDP CODES ENDS END START
2021年02月15日
691 阅读
1 评论
2 点赞
2021-02-14
电容、电感、电阻参数测量系统设计
目录一、设计任务和要求1、设计并制作一个元器件参数测量仪。2、电阻阻值测量,范围:100Ω~1MΩ;3、电容容值测量,范围:100pF~10000pF;4、测量精度:±5% ;5、电感参数的测量;6、扩大量程;7、提高测量精度;二、单元电路设计和参数计算1、电阻的检测单元电路设计从而,可以计算得出电阻值的大小。2、电容的检测单元电路设计从而,可以计算得出电容值的大小。3、电感的检测单元电路设计从而,可以计算得出电感值的大小。三、总原理图及元器件清单(2)元器件清单表1 原理图中所使用的元器件清单元件序号 型号 数量 备注U1 STC89C52RC 1 单片机R3 A103J 1 排阻R2,R3,R17,R18 10KΩ 4 电位器X1 11.0592M 1 晶振C3 25V,10uF 1 电解电容C1,C2,C11 103(0.01uF) 3 瓷片电容R1,R13,R18 10KΩ 3 电阻J1,J2,J3,J4 4 按键U2 1602 1 液晶A1,A2 NE555 2 555定时器R4 300Ω 1 电阻R5,R6 510KΩ 2 电阻C4,C5,C6,C7,C8,C9 104(0.1uF) 6 瓷片电容R7,R9 100KΩ 2 电阻C10 50V,22uF 1 电解电容Q1,Q2,Q3 S9108(NPN型) 3 三极管R10 2KΩ 1 电阻R8,R11,R14 1KΩ 3 电阻C12,C13 50V,47uF 2 电解电容R12,R19 39KΩ 2 电阻R15,R16 51Ω 2 电阻C14 25V,470uF 1 电解电容U3 NE55532 1 运放四、附录软件程序//RCL测量仪程序 //初始化 #include <reg52.h> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long #define PI 3.1415926 uchar code table1[8]="Welcome! RCL detector"; uchar table2[16]="f(Hz)="; uchar table3[16]="R(Ohm)="; uchar table4[16]="C(pF)="; uchar table5[16]="L(uH)="; uchar num,a=0,th0,tl0; uint C,L; ulong f,R; sbit lcden=P2^4; //液晶使能端 sbit lcdrs=P2^5; //液晶数据命令选择端 sbit key_R=P1^5; //测量电阻按键 sbit key_C=P1^6; //测量电容按键 sbit key_L=P1^7; //测量电感按键 sbit R_out=P1^2; //测量电阻信号输入 sbit C_out=P1^3; //测量电容信号输入 sbit L_out=P1^4; //测量电感信号输入 //声明子函数 void delayms(uint xms); //延时函数 void write_com(uchar com); //液晶写命令函数 void write_data(uchar date); //液晶写数据函数 void led_init(); //液晶初始化函数 void t_init(); //定时器0初始化函数 void keyscan(); //键盘检测函数(确定被测元件为电阻、电容或电感) void display_f(ulong f); //频率显示函数 void display_R(ulong R); //电阻显示函数 void display_C(uint C); //电容显示函数 void display_L(uint L); //电感显示函数 //主函数 void main() { led_init(); t_init(); keyscan(); write_com(0x01); while(1) { display_f(f); switch(a) { case 1:R=(ulong)(5000000.0/0.6931472/f-150+0.5);display_R(R);break; case 2:C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break; case 3:L=(int)(1000000000000.0/0.1/PI/PI/f/f+0.5);display_L(L);break; } } } //中断函数 void T0_count() interrupt 1 { switch(a) { case 1:while(R_out); while(!R_out); TH0=0; TL0=0; while(R_out); while(!R_out); th0=TH0; tl0=TL0; TR0=0; break; case 2:while(C_out); while(!C_out); TH0=0; TL0=0; while(C_out); while(!C_out); th0=TH0; tl0=TL0; TR0=0; break; case 3:while(L_out); while(!L_out); TH0=0; TL0=0; while(L_out); while(!L_out); th0=TH0; tl0=TL0; TR0=0; break; } f=1000000.0/1.085069/(th0*256+tl0)+0.5; } //延时函数 void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } //液晶写命令函数 void write_com(uchar com) { lcdrs=0; P0=com; delayms(5); lcden=1; delayms(5); lcden=0; } //液晶写数据函数 void write_data(uchar date) { lcdrs=1; P0=date; delayms(5); lcden=1; delayms(5); lcden=0; } //液晶初始化函数 void led_init() { lcden=0; write_com(0x38); //设置16×2显示,5×7点阵,8位数据接口 write_com(0x0c); //设置开显示,不显示光标 write_com(0x06); //写一个字符后地址指针加1 write_com(0x01); //显示清0,数据指针清0 write_com(0x80); //显示欢迎界面 for(num=0;num<8;num++) { write_data(table1[num]); delayms(5); } } //定时器0初始化函数 void t_init() { TMOD=0x01; //设置定时器0工作方式1(M1M0=0x0001) TH0=0; //装初值 TL0=0; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 } //键盘检测函数(确定被测元件为电阻、电容或电感) void keyscan() { if(key_R==0) { delayms(10); if(key_R==0) a=1; } else if(key_C==0) { delayms(10); if(key_C==0) a=2; } else if(key_L==0) { delayms(10); if(key_L==0) a=3; } else while(key_R&&key_C&&key_L); //按键按下时退出死循环 } //频率显示函数 void display_f(ulong f) { uchar count=0; ulong f0; f0=f; while(f) { f=f/10; count++; } for(num=5+count;num>5;num--) { table2[num]=f0%10+48; f0=f0/10; } write_com(0x80); for(num=0;num<6+count;num++) { write_data(table2[num]); delayms(5); } } //电阻显示函数 void display_R(ulong R) { uchar count=0; ulong R0; R0=R; while(R) { R=R/10; count++; } for(num=6+count;num>6;num--) { table3[num]=R0%10+48; R0=R0/10; } write_com(0x80+0x40); for(num=0;num<7+count;num++) { write_data(table3[num]); delayms(5); } } //电容显示函数 void display_C(uint C) { uchar count=0; uint C0; C0=C; while(C) { C=C/10; count++; } for(num=5+count;num>5;num--) { table4[num]=C0%10+48; C0=C0/10; } write_com(0x80+0x40); for(num=0;num<6+count;num++) { write_data(table4[num]); delayms(5); } } //电感显示函数 void display_L(uint L) { uchar count=0; uint L0; L0=L; while(L) { L=L/10; count++; } for(num=5+count;num>5;num--) { table5[num]=L0%10+48; L0=L0/10; } write_com(0x80+0x40); for(num=0;num<6+count;num++) { write_data(table5[num]); delayms(5); } }
2021年02月14日
1,302 阅读
5 评论
3 点赞
2021-02-13
如何判断运放是工作在线性区还是非线性区
一般来说,1.有负反馈的都是在线性区。比如各种同相、反相、差分放大电路都属于这种;2.无反馈(亦称开环),或正反馈工作在非线性区。如比较器、振荡器电路都属于这类。另外多说一句,这二者的区别本质上是由运放的增益非常大(至少上百万)决定的。集成运放工作于线性区时,就是处于闭环状态下,这时候运放的输出电压与输入信号电压之间存在某种特定的线性(函数)关系。集成运放工作于非线性区时,就是处于开环状态下,这时候运放的输出电压会接近工作电源的正电压或负电压,与输入信号电压没有线性关系。(1)有负反馈才可能工作在线性范围.(2)输出不饱和就是在线性范围.积分电路工作在线性范围,而矩形波电路(正反馈)输出不是正饱和就是负饱和,一定是非线性的.通常认为理想的集成运放具有下列特性:开环电压增益 ;差模输入电阻 ;输出电阻 ;共模抑制比 ;上限截止频率 ;差模输入电阻 ,说明输入电压没有损耗。输出电阻 ,说明带负载能力强。共模抑制比 ,说明抑制零点漂移能力强。上限截止频率 ,说明对各段信号,不论是低频、中频、高频都能有效放大。根据理想化条件,理想运放在线性区的特点,当集成运算放大器线性工作时,应满足 ,由于输出电压 为有限值, ,所以输入差模电压 必为0,即 由此得到 ,所以同相输入与反相输入端电压相等。又根据理想条件集成运放的差模输入电阻趋于无穷大,所以流进运放的两输入端电流 ,后面的 和 都用 表示,且。通过以上分析,我们可以得到理想运放的两个重要的特点。一个是虚短,另一个虚断。虚短:由于两输入端之间的电压差为0,相当于两输入端短路,但又不是真正的短路,故称为“虚短”。虚短实际上指的是两输入端的电压相同,也就是 。虚断:由于 ,相当于两输入端开路,但又不是真正的断开,故称为“虚断”,虚断表明两输入端没有电流。显然,理想运放是不存在的,但只要实际运放的性能较好,其应用效果与理想运放很接近,就可以把它近似看成理想运放。下面,我们理想运放的基本应用。集成运放的两种基本电路,一种是反相输入放大电路,一种是同相输入放大电路。要使运放工作在线性放大状态,必须引入负反馈。因为运放的开环增益很大,开环时很小的输入电压,不引入负反馈,运放本身的失调就会使它超出线性范围。
2021年02月13日
4,995 阅读
0 评论
12 点赞
1
...
8
9
10