关键词:
intrins.h
在C51单片机编程中,头文件INTRINS.H的函数使用起来,就会让你像在用汇编时一样简便.
内部函数 描述
_crol_ 字符循环左移
_cror_ 字符循环右移
_irol_ 整数循环左移
_iror_ 整数循环右移
_lrol_ 长整数循环左移
_lror_ 长整数循环右移
_nop_ 空操作8051 NOP 指令
_testbit_ 测试并清零位8051 JBC 指令
reg51.h
at89x51.h文件中对P1.1的操作是写成P1_1
reg51.h文件中对P1.1的操作是写成P1^1
表示方法不一样而已。
1 //Time:2017-2-11 2 //Project Name:reg51.h 3 //write by:cyt 4 /*--------------------------------------------------------- 5 REG51.H 6 Header file for generic 80C51 and 80C31 microcontroller. 7 Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. 8 All rights reserved. 9 ------------------------------------------------------------*/ 10 #ifndef __REG51_H__ 11 #define __REG51_H__ 12 /* BYTE Register */ 13 sfr P0 = 0x80; 14 sfr P1 = 0x90; 15 sfr P2 = 0xA0; 16 sfr P3 = 0xB0; 17 sfr PSW = 0xD0; 18 sfr ACC = 0xE0; 19 sfr B = 0xF0; 20 sfr SP = 0x81; 21 sfr DPL = 0x82; 22 sfr DPH = 0x83; 23 sfr PCON = 0x87; 24 sfr TCON = 0x88; 25 sfr TMOD = 0x89; 26 sfr TL0 = 0x8A; 27 sfr TL1 = 0x8B; 28 sfr TH0 = 0x8C; 29 sfr TH1 = 0x8D; 30 sfr IE = 0xA8; 31 sfr IP = 0xB8; 32 sfr SCON = 0x98; 33 sfr SBUF = 0x99; 34 /* BIT Register */ 35 /* PSW */ 36 sbit CY = 0xD7; 37 sbit AC = 0xD6; 38 sbit F0 = 0xD5; 39 sbit RS1 = 0xD4; 40 sbit RS0 = 0xD3; 41 sbit OV = 0xD2; 42 sbit P = 0xD0; 43 /* TCON */ 44 sbit TF1 = 0x8F; 45 sbit TR1 = 0x8E; 46 sbit TF0 = 0x8D; 47 sbit TR0 = 0x8C; 48 sbit IE1 = 0x8B; 49 sbit IT1 = 0x8A; 50 sbit IE0 = 0x89; 51 sbit IT0 = 0x88; 52 /* IE */ 53 sbit EA = 0xAF; 54 sbit ES = 0xAC; 55 sbit ET1 = 0xAB; 56 sbit EX1 = 0xAA; 57 sbit ET0 = 0xA9; 58 sbit EX0 = 0xA8; 59 /* IP */ 60 sbit PS = 0xBC; 61 sbit PT1 = 0xBB; 62 sbit PX1 = 0xBA; 63 sbit PT0 = 0xB9; 64 sbit PX0 = 0xB8; 65 /* P3 */ 66 sbit RD = 0xB7; 67 sbit WR = 0xB6; 68 sbit T1 = 0xB5; 69 sbit T0 = 0xB4; 70 sbit INT1 = 0xB3; 71 sbit INT0 = 0xB2; 72 sbit TXD = 0xB1; 73 sbit RXD = 0xB0; 74 /* SCON */ 75 sbit SM0 = 0x9F; 76 sbit SM1 = 0x9E; 77 sbit SM2 = 0x9D; 78 sbit REN = 0x9C; 79 sbit TB8 = 0x9B; 80 sbit RB8 = 0x9A; 81 sbit TI = 0x99; 82 sbit RI = 0x98; 83 #endif
定义,sbit 的用法有三种:
第一种方法:sbit 位变量名=地址值
第二种方法:sbit 位变量名=SFR 名称^变量位地址值
第三种方法:sbit 位变量名=SFR 地址值^变量位地址值
如定义PSW 中的OV 可以用以下三种方法:
sbit OV=0xd2 (1)说明:0xd2 是OV 的位地址值
sbit OV=PSW^2 (2)说明:其中PSW 必须先用sfr 定义好
sbit OV=0xD0^2 (3)说明:0xD0 就是PSW 的地址值
因此这里用sfr P1_0=P1^0;就是定义用符号P1_0 来表示P1.0 引脚,如果你愿意也可以起P10 一类的名字,只要下面程序中也随之更改就行了。
常见的51单片机头文件都有哪些?(reg52除外)
...文件是只定义了几个宏,以确定各存储空间的绝对地址。单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、... 查看详情
51单片机+ds1302+lcd1602时钟示例+proteus仿真(代码片段)
51单片机+DS1302+LCD1602时钟示例+Proteus仿真Proteus仿真示例主程序代码 #include<reg52.h> //调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义 变量范围0~255< 查看详情
单片机关键字sfr和sbit的理解
在单片机C语言编程中,扩充了两个关键字sfr和sbit。sfr(SpecialFunctionRegister特殊功能寄存器的缩写),sbit(特殊功能寄存器位),与定义一般的int、char型变量不同,这两个字定义的并不是变量,而作为特殊功能寄存器的引用,或许可... 查看详情
怎么在51单片机中读取文件如何在keilc51使用fopen函数也就是如何在c51中编写能打开文件程序
我想在单片机上放上一个TXT文件(放在ROM中吧)让后在把它读出来关键是如把文件读出来我不会在学c语言的时候有fopen函数可以方便打开文件但是51单片机没有文件系统KeilC51也没法实现fopen函数请问大侠们怎么在51中读取文件我... 查看详情
基于51单片机通过点击移位按键移位修改lcd1602字符型液晶显示器显示时分秒个位十位数值的计时项目工程(代码片段)
1#include<reg52.h>//单片机头文件2#defineucharunsignedchar//宏定义,用uchar表示unsignedchar,叫无符号字符型数据类型,取值范围为:0到255。3#defineuintunsignedint//宏定义,用uint表示unsignedint,叫无符号整数型数据类型,取值范围为:0到65535... 查看详情
vscodeplatformiostc单片机开发头文件制作与添加方法(代码片段)
【VSCodePlatformIO】STC单片机开发头文件制作与添加方法本着授人以鱼不如授人以渔的精神,今天教大家如何制作基于VSCodePlatformIO平台开发STC系列单片机头文件制作以及添加方法。STC系列头文件准备STC系列头文件获取途径:... 查看详情
单片机成长之路(51基础篇)-015关于sdcc的多文件编译范例二(代码片段)
在实际的工作中,单片机的头文件和功能函数不可能同全部放在同一个文件夹下面,我们把单片机成长之路(51基础篇)-009关于sdcc的多文件编译范例的代码进行从新拆分,然后把头文件归类到一个文件夹(include/)下面,便于... 查看详情
如何让能让程序烧到51单片机
51单片机芯片烧程序进去怎么弄?先在KEIL中编译生成HEX文件(如果编译完了目录内没有找到HEX文件,在项目设置里,C51项中,勾上生成HEX文件选择)再用COM51来烧。(这个参照软件说,较简单。一般先载入HEX文件再点个AUTO就可以... 查看详情
单片机成长之路(51基础篇)-009关于sdcc的多文件编译范例(代码片段)
...delay.c,makefile)4个文件组成,sdcc的编译环境搭建参照:单片机成长之路(51基础篇)-006在Linux下搭建51单片机的开发烧写环境,废话不多,进入主题:main.c(主函数)1#include"8051.h"2#include"delay.h"3#defineuintunsignedint4#defineucharunsigned 查看详情
单片机关于startup.a51
...含这个文件,但是我现在有一个程序没有这个文件下载到单片机中就不能运行,这是怎么回事,STARTUP.51这个文件有什么用,请高手指点指点,用包含一词好像有点不妥,当在kielC中新建项目时,会问:Copystandard8051StarupCodetoProjectF... 查看详情
stc15系列之sdccstc15系列sdcc专用头文件内容分享(代码片段)
...5系列SDCC专用头文件内容分享如果使用VSCodePlatformIO开发STC单片机,所提供的型号的头文件很有限,除非自己添加,像STC系列单片机一些型号的头文件还没有只能依赖8052头文件使用,而8052的头文件所提供的的特殊... 查看详情
51单片机汇编111条指令汇总
https://kdocs.cn/l/clExisNDxDdT?f=201[文件]51单片机汇编语言111条指令.pdf可复制链接到WPS Office中打开文档 查看详情
51单片机仿真开发环境构建实验(代码片段)
51单片机仿真开发环境构建实验目录实验目的一、实验步骤Step1:之前Debug,USE里面没有ProteusVSMMonitorDriverStep2:把VDM51.dll复制到Proteus8Professional\\MODELS文件夹下和Keil\\MDK\\C51\\BIN文件夹下。Step3:keil的设置Step4:Proteus的设置。Step5... 查看详情
51单片机通过定时器实现pwm输出(代码片段)
51单片机通过定时器实现PWM输出Proteus仿真定时器0实现代码/*-----------------------------------------------名称:定时器0内容:通过定时让LED灯闪烁------------------------------------------------*/#include<reg52.h>//包含头文件,一般情况不需要改动... 查看详情
51单片机的最小系统
自己焊的51单片机的最小系统包括:CUP(STC89C52),晶振与谐振电容(22pF,晶振加电容的主要目的是滤波,这样可以使得晶振输出的波形更加平滑),复位电路(最简单的复位电路:电解电容10uF、25V正极接VCC,负极接单片机Reset... 查看详情
基于51单片机的智能小车系统设计
原理图: 程序运行图:部分程序:/********************************************************************************文件名称:main.c *说明:本文件为小车控制的主函数*功能:1.看门狗 查看详情
51单片机的启动代码里面都有啥?
...注+星标公众号,不错过精彩内容来源| 老马识途单片机在我们使用keic51创建一个51单片机项目时,会有如下图所示的提示:keil创建新项目时,提示是否添加启动文件一般情况下,需要选择“是”。当然... 查看详情
基于51单片机pwm调速数码管显示测速l298芯片控制直流电机正反运转的项目工程(代码片段)
1#include"reg52.h"//单片机头文件2#defineucharunsignedchar//宏定义,用uchar表示unsignedchar,叫无符号字符型数据类型,取值范围为:0到255。3#defineuintunsignedint//宏定义,用uint表示unsignedint,叫无符号整数型数据类型,取值范围为:0到65535。4sbi... 查看详情