(1)LED

定时器控制LED灯闪烁(定时器1 int main() { Led_Init(); TIM1_Init(); delay_init(); while(1) { } } void TIM1_UP_IRQHandler(void) { TIM_ClearFlag(TIM1,TIM_FLAG_Update); LED = ~LED; }void TIM1_Init(void) { TIM_TimeBaseI... 阅读详情

LED正负极:大红旗——负极,小红旗——正极

如何看原理图电阻/电容值:

eg:

102 = 10 2 = 10 * 10 ^ 2 = 1000
473 = 47 3 = 47 * 10 ^ 3 = 47000

单片机使用TTL电频:高电平(逻辑1)5V 低电平(逻辑0)0V

单片机上电的时候所有的IO口默认都是高电平

LED一端接VCC(正极)一端接芯片P20-P27口,P20-P27口在芯片中由P2寄存器映射,当芯片输出高电平时LED不亮,输出低电平时亮

请添加图片描述

如果只要第一个LED亮则P2寄存器赋值1111 1110最低位为0输出低电平,在代码中使用十六进制表示

#include <REGX52.H>
void main(){
	P2 = 0xfe; // 1111 1110
	while(1){}
}

单片机执行完main函数后会再次重复执行main

Keil -> options for target -> output -> create hex file

HEX文件格式是一种能够烧写到单片机中,被单片机执行的文件格式。可以使用不同的编辑器将C或汇编源文件编译成HEX文件,如IAR,KEIL等

单片机系统频率:12MHz,一秒运行一百万次

通过STC-ISP->软件延时计算器生成延时方法

#include <INTRINS.H>

void Delay500ms()		//@12.000MHz
{
	unsigned char i, j, k;

	_nop_(); // 空语句,INTRINS.H中声明
	i = 4;
	j = 205;
	k = 187;
	do
	{
		do
		{
			while (--k);
		} while (--j);
	} while (--i);
}

请添加图片描述
在单片机里int是16位的(unsigned int: 0 ~ 65535 int:-32768 ~ 32767)

void Delayxms(unsigned int xms) // 指定延时时间ms
{
	unsigned char i, j;

	while(xms--){
		i = 2;
		j = 239;
		do
		{
			while (--j);
		} while (--i);
    }
}

在REGX52.H头文件中定义了各寄存器及其各位

sfr P2      = 0xA0;
/*------------------------------------------------
P2 Bit Registers
------------------------------------------------*/
sbit P2_0 = 0xA0;
sbit P2_1 = 0xA1;
sbit P2_2 = 0xA2;
sbit P2_3 = 0xA3;
sbit P2_4 = 0xA4;
sbit P2_5 = 0xA5;
sbit P2_6 = 0xA6;
sbit P2_7 = 0xA7;

独立按键接MCU的P30-P33口,使用寄存器P3的前四位映射,按下为0,松开为1

请添加图片描述

按键消抖:

由于机械触点的弹性作用,一个开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,所以在开关闭合及断开的瞬间会伴随一连串的抖动。

img

按键的消抖有两种方法:

  1. 加个线,把这个线通过这些电路里面进行一些触发器等等,通过一些电路来进行操作,把这个抖动进行一些过冲,然后再给我们单片机进行点上。比较麻烦!
  2. 通过软件来进行一个延迟函数,把这个消抖进行操作!

独立按键控制LED显示二进制:

使用unsigned char型变量表示寄存器:无符号字符型(所占1字节 = 8bit位)刚好对应着8位二进制的数据

unsigned char p = 0;
while(1){
    if(P3_1 == 0){
        Delayxms(20);
        while(P3_1 == 0);
        Delayxms(20);

        p++;
        P2 = ~p;
    }
}

局部变量定义要放在函数里的第一行,在main函数,for、while、if里面也要放第一行,只要是局部变量的定义都要放在所在函数体内的第一行

软件测试工程师笔试题 这里写目录标题全套软件测试面试笔试题(附答案)二、选折三、添空四、简答(资料是搜集整理的,感谢前辈的解题)1.区别阶段评审的与同行评审2.什么是软件测试3. 简述集成测试的过程4 怎么做好文档测试5 白盒测试有几种方法6 系统测试计划是否需要同行审批,为什么7Alpha 测试与 beta 的区别8 比较负载测试,容量测试和强度测试的区别。性能测试从使用方便的角度来说,9 测试结束的标准是什么?10 描述软件测试活动的生命周期?11 软件的缺陷等级应如何划分? 软件测试工程师笔试题(附答案) 全套软件测试面 阅读详情

相关推荐

Librepilot _64位window10环境下的搭建及一些坑的解决办法

  刚入IT行业的小菜鸟,在window上折腾了四天的librepilot地面控制站的搭建,想着这么辛苦不能白费了,看网上相关资料少得可怜,唯一一个详细教程还是在32位环境下,一大堆坑,所以把自己的经验写下来,供大家一起参考。 参考的原文是:https://www.cnblogs.com/jasonchan1202/p/7809937.html的博客,但是执行下来才发现这个博客对64位系统极其不...

weixin_41426339的博客 2704

试题T-1-19 按键按下LED1 亮,松开LED1

#include <ioCC2530.h> #define uint unsigned int #define uchar unsigned char //定义控制灯的端口 #define LED1 P1_0 //定义LED1为P10口控制 #define LED2 P1_5 //定义LED2为P15口控制 #define LED3 P1_3 //定义LED3为P13...

qq_41975868的博客 964

基于KEY1按下时长,控制LED,若按下达到100ms,则点亮1LED,依此类推,若按下达到600ms,则点亮4个LED

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 997

CC2530定时器1 控制LED闪烁

P1_1作为LED灯使能位 #include <iocc2530.h> #define LED P1_1 #define uint unsigned int uint count=0; void init_T1(){ P1SEL &=0xFD; P1DIR |=0x02; //晶振设为32MHZ CLKCONCMD &= ~0x7F; //等待晶振稳定 while(CLKCONCMD & 0x40); EA=1; T1IE=1; T1

weixin_48657573的博客 3728

定时器 1 控制LED 定时闪烁

#include “ioCC2530.h” #define LED1 P1_0 typedef unsigned int uint; typedef unsigned char uchar; uchar count = 0; void Init_Clock_16MHz(); void Init_Port(); void Timer1_Init(); void main(){ Init_Clock_16MHz(); Init_Port(); Timer1_Init(); while(1){}; } /*=

weixin_45131778的博客 3739

复旦微FM33 MCU 底层开发指南——I2C

本系列基于复旦微FM33LC0系列MCU的DataSheet编写,提供基于寄存器开发指南、应用技巧、注意事项等

冷凝雨 469

学习8051的课程,得到32位单片机的效果!金水32V51编译器简介

对一线教师,金水32V51实现零成本教学升级:无需舍弃原有资源,无需重新学习复杂32位工具,沿用原体系即可完成从8位到32位的过渡;教学质量提升,既保留8051入门优势,又贴合行业前沿;依托RTOS能力,可开展高阶教学,丰富实训内容。对学生,入门难度低,快速建立信心;全程使用32位硬件架构,摒弃老旧8位思维;知识体系连贯,从基础IO到RTOS层层递进;毕业时具备32位架构认知和RTOS开发经验,就业竞争力显著提升。

YangWeiminPHD的博客 181

XL2477 透传 WIFI 模组AT 指令说明

XL2477 是芯岭技术推出的串口 WiFi 透传模组,依靠 AT 指令完成全部功能配置,实现 UART 串口数据与 WiFi 网络数据双向透传,帮助传统串口设备快速接入物联网,无需开发复杂 WiFi 协议栈,兼顾简单易用和丰富的可调参数。

2501_93066128的博客 255

STM32U575RIT6(USART)学习

至少要有两个端,发送端和接收端信息的传递数据的交互。

qq_63858767的博客 473

STM32常用库(标准库与 HAL 库)对比和常用函数全解

标准库是"外设指针 + 配置结构体"两个参数,HAL 是"一个句柄"搞定一切。前者更贴近寄存器、更透明;后者更面向对象、更易移植。

2401_89054280的博客 510

开源 OpenMV:给单片机换上机器视觉大脑

这件事必须上 Linux,还是一块会跑 Python 的相机 MCU 就够?OpenMV 把路走窄了:专注单片机上的机器视觉与执行闭环。窄的好处是,示例脚本、IDE 预览、引脚输出,能把「看见 → 动作」压缩到一个周末能验证的长度。买板 → 装 IDE → 跑通色跟踪或 AprilTag → 把坐标打到串口或 PWM → 再考虑 TinyML 和换镜头。别第一天就追求刷榜模型——多数好玩的项目,其实是阈值调稳的那一下。

buhuidage的博客 327

SA8317E 2.7‑15V 单通道 H 桥电机驱动芯片|消费类低压直流有刷电机方案

SA8317E 是矽塔科技单通道全 NMOS‑H 桥驱动芯片,内置电荷泵栅极驱动,可实现直流有刷电机正转、反转、停止、刹车,支持 PWM 调速。VM 推荐工作电压2.7‑15.0V,最大绝对耐压 18V;ESOP‑8 带裸露散热焊盘封装,持续输出 2.5A,峰值电流 4.0A;H 桥高低桥合计导通电阻典型250mΩ。集成 UVLO 欠压、硬件 OCP 过流、TSD 热关断;INA、INB 同时拉低进入待命待机,待机电流典型 0.5μA;

2601_96747699的博客 329

树莓派 Pico UART 底层全解析:从硬件架构到寄存器操作的硬核指南

树莓派 Pico 上的 UART 串口外设是树莓派 Pico 上的 “串行通信单元”,专门负责 Pico 和其他设备(比如电脑、传感器、显示屏)之间使用串口协议进行通信:

weixin_44719294的博客 186

AiP1640 与 YL1640 LED 驱动芯片详解:两线协议、指令系统、实战案例与问答

AiP1640 是一款 2 线串口、共阴极 8 段 16 位的 LED 驱动控制专用电路,内部集成 MCU 数字接口、数据锁存器与 LED 驱动电路,主要面向电磁炉、电饭煲、空调、电子秤等家电产品的 LED 显示面板。其内置显示 RAM、内置 RC 振荡、内置自动消隐电路,显示辉度可软件调节,仅需 CLK、DATA 两根信号线即可完成显示数据下发。

2608_96116088的博客 692

【proteus仿真】基于 STM32 单片机货架巡检机器人设计(仿真图+程序)

针对仓库货架人工巡检效率低的问题,本文设计一款基于 STM32 的货架巡检机器人,使用 Proteus 完成全套仿真电路搭建与功能验证。系统搭载双路 HC‑SR04 超声波实现障碍物检测,红外循迹完成仓库轨道自主行走,PCF8591 模数采集模块实现货物重量检测;集成 LCD12864 本地显示、蓝牙串口通信、虚拟终端信息输出、模拟摄像头识别、超重声光报警等功能。机器人沿预设轨道自动巡检,实时采集障碍物距离、货物重量数据,将巡检信息通过蓝牙上传,异常时触发报警,可用于单片机课程设计、嵌入式毕设项目参考。

m0_74821307的博客 498

NMOS还是PMOS?工业控制中MOS管选型与驱动

电压驱动、几乎不耗电流,但实际上栅极有结电容、开关过程有损耗、寄生参数一大堆,随便用很容易出问题。)驱动,同样的管子温度低很多。原因就是驱动芯片能提供高达几安培的峰值电流,栅极充放电时间大幅缩短。它的导通电阻大、价格贵、型号少,除了电池保护等场合,一般不推荐使用。管在导通和关断的过程中,电压和电流同时存在,瞬时功率很大。,处于线性区,迅速发热烧毁。更低的管子、加大散热片、降低开关频率、优化驱动速度。后续干货不断,咱们一起在单片机的世界里,共同进步。频率越高,单位时间内开关次数越多,发热越严重。

csg1107的博客 301

网络编程套接字

datagram:数据报DatagramSocket是UDP Socket,用于发送和传输UDP数据报创建一个这样的对象,就相当于在系统内核里创建了一个socket文件,创建socket文件,也会占用文件描述符表的一个位置,用完之后要关闭,否则可能会出现“文件资源泄露”ServerSocket是创建TCP服务端Socket的API。

LYYstudying的博客 348

【proteus仿真】基于 STM32 单片机的智能送药小车设计(仿真图+程序)

本文设计了一款基于 STM32F103C8T6 单片机的智能送药小车,并在 Proteus 平台完成完整仿真。系统集成红外循迹导航、HC-SR04 超声波避障、电位器模拟药物重量检测、K210 视觉识别停靠、OLED12864 状态显示及蜂鸣器声光报警六大模块。文章详细分析了 L298N 电机驱动、PCF8591 ADC 采样、I2C 显示等硬件电路,给出了循迹纠偏、避障转向、重量超限报警、识别到站停车的软件逻辑与调试要点,可作为单片机课程设计与嵌入式毕设的参考方案。

m0_74821307的博客 400

嵌入式调试笔记<5>用CD74HC4067扩展16路ADC采集及两个调试坑

本文记录了CD74HC4067十六路模拟开关扩展ADC的实践:用4个GPIO控制地址线选通16通道,代码实现通道切换与采样,并介绍更省IO的计数器方案,同时提示EN不能悬空、通道切换需延时等调试要点。

w134756的博客 166

步进电机模块——让 Arduino 精确控制旋转

前面我们学了舵机,它能控制角度,但精度有限,而且不能连续旋转很多圈。今天我们要学的,解决了这两个问题——它能,还能,是 3D 打印机、CNC 雕刻机、机器人关节的核心驱动元件。

anew___的博客 341

长虹智能电视刷机升级数据 A7000i、B5000i系列机型 LM38ISD机芯 USB整机升级程序 版本V2.10021

适配机型:3D32A7000i(L47)3D37A7000i(L47)3D42A7000i(L47)3D47A7000i(L47)3D55A7000i(L47)3D32B5000i3D37B5000i3D42B5000i3D47B5000i3D50B5000i3D55B5000i刷机方法:1、T8对应东芝nand flash存储器,M8对应美光nand flash存储器。电视机支持自动匹配升级文件,也可以按菜单键、0816看工厂菜单的最后两位确定用T8还是M8.2、解压后,将PKG文件拷贝到U盘根目录;3、在电视机待机下,把装有升级文件的U盘插到电视机上,按遥控器或者本机电源键开机,自动进入升级状态;4、升级完成后,出现智能引导界面,可跳过;5、到系统设置->网络设置,设置网络。然后选择系统设置->用户管理,选择注册。

上一篇: 项目分析 NiterForum(3)第三方服务与缓存
下一篇: (2)数码管
Falling_Asteroid
博客等级 码龄5年 48粉丝 88原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值