登录/注册

单片机编程代码大全两种以上

更多

以下是两种以上常见的单片机编程代码示例(以51单片机为例,使用C语言和汇编语言):


示例1:C语言控制LED闪烁(51单片机)

#include <reg51.h>  // 包含51单片机寄存器定义

void delay_ms(unsigned int ms) { // 延时函数
    unsigned int i, j;
    for(i=0; i<ms; i++)
        for(j=0; j<120; j++);
}

void main() {
    while(1) {
        P1 = 0x00;      // P1口所有LED亮(低电平驱动)
        delay_ms(500);
        P1 = 0xFF;      // P1口所有LED灭
        delay_ms(500);
    }
}

示例2:汇编语言控制LED闪烁(51单片机)

ORG 0000H       ; 程序起始地址
START:
    MOV P1, #00H    ; 点亮所有LED
    ACALL DELAY     ; 调用延时
    MOV P1, #0FFH   ; 熄灭所有LED
    ACALL DELAY
    SJMP START      ; 循环

DELAY:              ; 延时子程序
    MOV R2, #200
DELAY_LOOP:
    MOV R3, #250
    DJNZ R3, $      ; 等待250个机器周期
    DJNZ R2, DELAY_LOOP
    RET
END

示例3:C语言按键控制LED(中断方式)

#include <reg51.h>

sbit LED = P1^0;    // 定义LED引脚
sbit KEY = P3^2;    // 定义按键引脚(外部中断0)

void EX0_ISR() interrupt 0 { // 外部中断0服务函数
    LED = ~LED;     // 按键触发时翻转LED状态
}

void main() {
    IT0 = 1;        // 设置外部中断0为边沿触发
    EX0 = 1;        // 使能外部中断0
    EA = 1;         // 全局中断使能
    LED = 0;        // 初始状态LED灭

    while(1);       // 主循环等待中断
}

示例4:PWM调光控制LED亮度(C语言)

#include <reg51.h>

sbit LED = P1^0;    // LED连接P1.0

void main() {
    unsigned char duty = 50; // 占空比50%

    while(1) {
        LED = 0;            // LED亮
        for(int i=0; i<duty; i++);

        LED = 1;            // LED灭
        for(int i=0; i<100-duty; i++);
    }
}

示例5:串口通信(C语言)

#include <reg51.h>

void UART_Init() { // 串口初始化
    TMOD = 0x20;   // 定时器1工作在模式2
    TH1 = 0xFD;    // 波特率9600 (11.0592MHz)
    TR1 = 1;       // 启动定时器
    SCON = 0x50;   // 串口模式1,允许接收
}

void UART_Send(char dat) {
    SBUF = dat;    // 数据放入发送缓冲区
    while(!TI);    // 等待发送完成
    TI = 0;        // 清除发送标志
}

void main() {
    UART_Init();
    while(1) {
        UART_Send('A'); // 持续发送字符'A'
    }
}

总结

  1. C语言:开发效率高,可读性强,适合复杂逻辑。
  2. 汇编语言:直接控制硬件,执行效率高,适合时序敏感场景。
  3. 中断应用:处理实时事件(如按键检测)。
  4. PWM控制:用于LED调光、电机调速等。
  5. 外设驱动:如串口、ADC、定时器等。

提示:实际开发中需根据单片机型号修改寄存器名称和引脚定义。推荐使用Keil或SDCC编译器。

单片机编程和plc编程有什么区别

单片机编程和PLC编程是两种不同的嵌入式系统开发领域。在这篇文章中,我们

2024-02-22 10:23:35

8051单片机和STM32单片机编程环境对比

比较流行的单片机环境有keil和IAR,这两种环境可以覆盖市面上90%的单片机型号,而且都提供了函数库。根据

2023-12-25 10:01:20

单片机编程实例大全

单片机编程实例大全

2023-09-06 11:09:18

单片机c语言编程实例大全

单片机c语言编程实例大全_18

资料下载 jf_28180279 2025-04-30 16:11:28

51单片机外部中断的两种触发方式资料下载

电子发烧友网为你提供51单片机外部中断的两种触发方式资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计

资料下载 王平 2021-04-20 08:51:36

单片机编程100实例大全

本文档的主要内容详细介绍的是单片机编程实例100例大全。

资料下载 佚名 2021-01-19 17:41:15

使用单片机实现流水灯的两种代码免费下载

本文档的主要内容详细介绍的是使用单片机实现流水灯的两种代码免费下载。

资料下载 佚名 2019-07-23 17:37:00

如何使用51单片机进行步进电机的控制两种方法资料和源代码免费下载

给大家介绍两种利用51单片机控制步进电机的小程序。首先我们要如何使电机转动呢,源程序如下:

资料下载 佚名 2019-06-12 17:45:00

单片机状态编程详解

玩单片机还可以,各个外设也都会驱动,但是如果让你完整的写一套代码时,却无逻辑与框架可言。这说明编程还处于比较低的水平,你需要学会一

2022-08-29 09:34:28

单片机C语言编程宝典大全,初学必备

单片机C语言编程宝典大全,初学必备:1. 51单片机入门教程 2. 初学

2022-04-18 10:04:16

简单谈谈两种复位电路的工作原理

单片机最小系统,即单片机能正常工作的最简单的电路。复位电路是单片机最小系统的组成部分之一。对于不同

2022-01-17 08:52:21

STC12系列单片机的定时器有两种计数速率

STC12系列单片机的定时器有两种计数速率:一种是12T模式,每12个时钟加1,与传统8051

2021-11-25 06:13:44

两种单片机IO扩展的方法和代码免费下载

本文档的主要内容详细介绍的是两种单片机IO扩展的方法和代码免费下载。

2020-08-09 14:13:00

单片机常用的两种延时控制方式

单片机中常用的延时控制方式有两种。一种是采用编程的方式达到延时的目的,另

2020-07-17 10:22:44

单片机起振的两种判断方法

 如何判断单片机是否起振,我分为两种情况。

2019-10-19 09:34:03

7天热门专题 换一换
相关标签