热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

51单片机的C语言基本用法

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

这是之前的视频——51单片机快速入门(中的TXT文件,这里发一下,方便大家来找。

视频中开发板的程序资料:

STC官网:

MDK5(51版)#/DOWNLOAD

51单片机概述:

创建工程的过程

MDK5(51版)

烧录程序的过程

ch340g usb转串口

stc-isp软件 pz-isp软件

单片机的手册

51单片机程序的编写方法

汇编语言(了解即可)

org 0000h

MOV a,#2fh

sjmp $

仿真寄存器的值

C语言

引用头文件(注意格式规范)

#include

某些增强型单片机需要自己寻找头文件,keil中没有提供

学会查看头文件的内容

定义引脚

sbit P10=P1^0;

直接对IO口进行操作

P1=0xff;

粗略的延迟函数

基于12M晶振

us延迟

void delay_us(int n_us)

{

int j,k;

for(j=0;j

for(k=0;k<1;k++);

}

ms延迟

void delay_ms(unsigned int a)

{

int q;

while(a&#8211;){

for(q=400;q>0;q&#8211;);

}

}

led灯的驱动

根据电路判断写1还是写0

仿真方法

PORT2.7

流水灯

P2=0xfe;

循环中写

P2=P2<<1;

开关检测

先写1,后读取

注意分析电路

数码管的驱动原理

字形码

共阴 共阳

0 3F C0

1 06 F9

2 5B A4

3 4F B0

4 66 99

5 6D 92

6 7D 82

7 07 F8

8 7F 80

9 6F 90

A 77 88

B 7C 83

C 39 C6

D 5E A1

E 79 86

F 71 8E

H 76 89

P 73 8C

显示一个数字

P1=0xf1;

P0=0x3f;

扫描显示

写入ROM

unsigned char code DIG_PLACE[4]={0xf1,0xf2,0xf4,0xf8};

unsigned char code DIG_CODE[17] = {

0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

P1=DIG_PLACE[0];

P0=DIG_CODE[4];

delay_us(1);

P1=DIG_PLACE[1];

P0=DIG_CODE[3];

delay_us(1);

P1=DIG_PLACE[2];

P0=DIG_CODE[2];

delay_us(1);

P1=DIG_PLACE[3];

P0=DIG_CODE[1];

delay_us(1);

还有一些专用的数据管驱动芯片

LCD显示屏(学会调用厂家封装的库)

用到的文件移植到自己程序里

中断与定时器

概念

51的定时器

配置

num=65536-nus/1;

TMOD=0x01;

TH0=num/256;

TL0=num%256;

th0=TH0;

tl0=TL0;

EA=1;

ET0=1;

//PT0=1;

TR0=1;

中断服务函数

TIMER0()interrupt 1

{

TH0=th0;

TL0=tl0;

}

外部中断

P3.2 INT0

P3.3 INT1

配置

EA=1;

EX0=1;

//PX0=1;

IT0=1;

中断服务函数

INT0_()interrupt 0

{

//IE0=0;

}


推荐阅读
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 【MySQL】frm文件解析
    官网说明:http:dev.mysql.comdocinternalsenfrm-file-format.htmlfrm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果 ... [详细]
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • 实现系统调用
    实现系统调用一、实验环境​本次操作还是基于上次编译Linux0.11内核的实验环境进行操作。环境如下:二、实验目标​通过对上述实验原理的认识,相信 ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 本文详细介绍如何在SSM(Spring + Spring MVC + MyBatis)框架中实现分页功能。包括分页的基本概念、数据准备、前端分页栏的设计与实现、后端分页逻辑的编写以及最终的测试步骤。 ... [详细]
  • 本文详细介绍如何在 Apache 中设置虚拟主机,包括基本配置和高级设置,帮助用户更好地理解和使用虚拟主机功能。 ... [详细]
  • 网络流24题——试题库问题
    题目描述:假设一个试题库中有n道试题。每道试题都标明了所属类别。同一道题可能有多个类别属性。现要从题库中抽取m道题组成试卷。并要求试卷包含指定类型的试题。试设计一个满足要求的组卷算 ... [详细]
  • 本文详细介绍了Linux系统中信号量的相关函数,包括sem_init、sem_wait、sem_post和sem_destroy,解释了它们的功能和使用方法,并提供了示例代码。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 本问题涉及在给定的无向图中寻找一个至少包含三个节点的环,该环上的节点不重复,并且环上所有边的长度之和最小。目标是找到并输出这个最小环的具体方案。 ... [详细]
  • PHP面试题精选及答案解析
    本文精选了新浪PHP笔试题及最新的PHP面试题,并提供了详细的答案解析,帮助求职者更好地准备PHP相关的面试。 ... [详细]
  • GLiHT数据介绍
    GLiHT数据介绍 ... [详细]
author-avatar
PAISONG_675
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有