二、Mutisim仿真软件使用

本文介绍了如何使用Multisim软件进行数字电路设计,包括放置VCC、GND、电压脉冲信号源以及MOS管,并详细讲解了层次模块的搭建过程。
摘要由CSDN通过智能技术生成

目录

放置元件

一.VCC、GND放置

二.电压脉冲信号源放置

三.MOS管放置

层次模块搭建


晶体管级数字电路设计专栏目录_LD QM的博客-CSDN博客

放置元件

一.VCC、GND放置

1.选择左上角的“放置源”

2. 组选择Sources,系列选择 POWER_SOURCES,在右侧元件库选择GROUNE和VCC

二.电压脉冲信号源放置

1.选择左上角的“放置源”

2.组选择 Source,系列选择SIGNAL_VOLTAGE_SOURCES,右边元器件选择PULSE_VOLTAGE

 3.双击电压脉冲信号源,在弹出的框中将初始值设置为5V、将脉冲值设置为0V。如果需要多个脉冲电压信号源组成时序电路,需要设置相应的脉冲宽度和周期,脉冲宽度和周期依次缩小一倍

三.MOS管放置

根据赛题要求使用型号为ZVP2106G的PMOS管、型号为ZVN2106G的NMOS管

1.选择左上角的“放置源”

 2.组选择 所有组 元器件分别输入 ZVP2106G、ZVN2106G

层次模块搭建

层次块也就是给一块电路套上一个封装,使得电路看起来显得简洁明了。

1.选择绘制,点击新建层次块 

2.输入层次块名称,输入管脚数量,输出管脚数量

3.如下图所示就是在设计2内的新建层次块,点击左侧设计工具箱内的二输入与非门即可将其打开

4.在新打开的电路图中,左上角为输入连接器,右上角为输出连接器,这几个连接器(局部)仅与其对应的层次块的输入输出管脚连接。与其他层次块内部电路无关(即使命名相同)

       

5.将输入连接器、输出连接器连上相应的电路

 

6.双击连接器,在弹出的框中可以修改连接器的名称

 

在完成名称修改之后,原层次块的对应管脚号的名称也会发生改变(如下图)

    =>       

晶体管级数字电路设计专栏目录_LD QM的博客-CSDN博客

51单片机脉冲传感器(Pulse Sensor)的代码通常用于测量特定物理信号,比如心跳、按键脉冲等。以下是一个基本的示例,假设我们使用的是ADC模块和一个简单的电阻-电容电路作为脉冲传感器: ```c #include <reg52.h> #include <delay.h> // 定义传感器电阻和电容值 #define RESISTOR_VALUE 1000 // 假设为1k欧姆 #define CAPACITOR_VALUE 10000 // 假设为10uF // ADC配置 #define ADC_CHANNEL 0 #define ADC_CONVERSION_TIME 128 // 根据实际单片机型号调整,如128个时钟周期 void pulse_sensor_setup() { ADC_InitStructure.ADC_InitStructure_External中断 = DISABLE; ADC_InitStructure.ADC_InitStructure_ADC_Mode = ADC_Mode_Differential; ADC_InitStructure.ADC_InitStructure_ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_InitStructure_ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_InitStructure_ADC_NbrOfChannel = 1; ADC_InitStructure.ADC_InitStructure_ADC_AnalogFilter = ADC_AnalogFilter_None; ADC_InitStructure.ADC_InitStructure_ADC_DMAAccessMode = DISABLE; ADC_Init(ADC1, &ADC_InitStructure); ADC_Cmd(ADC1, ENABLE); // 设置中断触发条件 EXTI_InitStructure.EXTI_Line = EXTI_Pin_0; // 这里假设传感器连接到P0.0引脚 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); } int16_t get_pulse() { // 清除中断标志 EXTI_ClearITPendingBit(EXTI_Line0); // 开始ADC转换 ADC_Cmd(ADC1, DISABLE); ADC_SoftwareStartSingleConv(ADC1, ADC_CHANNEL); __delay_ms(ADC_CONVERSION_TIME); // 等待转换完成 ADC_Cmd(ADC1, ENABLE); ADC箔中断请求标志清除 ADC_GetConversionValue(ADC1); // 从ADC读取值并计算脉冲宽度 int16_t voltage = ADC_GetValue(ADC_CHANNEL) * (VCC / 32767.0); // VCC为电电压 int pulse_width = (voltage / RESISTOR_VALUE) * CAPACITOR_VALUE; // 简化公式 return pulse_width; } void main(void) { pulse_sensor_setup(); while (1) { int pulse = get_pulse(); // 打印或处理脉冲值 printf("Pulse Width: %d\n", pulse); delay_ms(1000); // 每秒测量一次 } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

㉨㉨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值