//将16进制序列码,转换为16进制数组。
#include
#include
#include
#define uchar unsigned char
void main()
{
//ch 表示16进制 序列码
char ch[]="0123456789ABCDEF";
//ch1 表示 16进制 字符数组
char ch1[8];
char i;
for(i=0;i<8;i++)
{
ch1[i]=toint(ch[2*i])*16+toint(ch[2*i+1]);
}
}
/*
转换结果:
ch1[0]=0x01;
ch1[1]=0x23;
ch1[2]=0x45;
ch1[3]=0x67;
ch1[4]=0x89;
ch1[5]=0xAB;
ch1[6]=0xCD;
ch1[7]=0xEF;
*/
关键字:c51 16进制序列码 16进制数组
引用地址:
c51:将16进制序列码,转换为16进制数组
推荐阅读最新更新时间:2024-03-16 15:15
关于KeilC51的指针
keil中的指针分为两种,一种是普通指针,兼容标准C语言的指针;另一种是我翻译成内存特殊指针(memory-specific pointers,翻译的不好: ) 一、普通指针 普通指针的定义方式如下, char * ptr; 跟标准C的定义方式一样。这种指针占三个字节。第一个字节是标识存储类型,是指针指向的变量的数据类型。 第二个字节是指针存储地址的高位字节。第三个字节是指针存储地址的低位字节。 普通指针默认存储在内部存储器data,即片上RAM。如果想指定指针的存储位置,可以在 * 后加上存储类型,如下面几种定义方式: char * data ptr; //与char * ptr;等价,即默认的定义方
[单片机]
C51单片机中断函数的定义及应用
C51函数声明对ANSI C作了扩展,具体包括: 1.中断函数声明: 中断声明方法如下: void serial_ISR () interrupt 4 [using 1] { /* ISR */ } 为提高代码的容错能力,在没用到的中断入口处生成iret语句,定义没用到的中断。 /* define not used interrupt, so generate “IRET” in their entrance */ void extern0_ISR() interrupt 0{}/* not used */ void timer0_ISR () interrupt 1{}/* not used */ void extern1_IS
[单片机]
单片机c语言教程:C51数据类型
每写一个程序,总离不开数据的应用,在学习 c51 语言的过程中掌握理解数据类型也是 很关键的。先看表 3-1,表中列出了 KEIL uVision2 单片机c语言编译器所支持的数据类型。在标准C语言中基本的数据类型为 char,int,short,long,float 和 double,而在c51编译器中int 和 short 相同,float 和 double 相同,这里就不列出说明了。下面来看看它们的具体定 义: 数据类型 长 度 值 域 unsigned char 单字节 0~255 signed char 单字节 -128~+127 unsigned int
[单片机]
C51单片机学习笔记之密码锁
简介 根据之前学的LCD1602显示器和矩阵键盘实现一个简单的密码锁。 原理图 请翻之前的文章 LCD1602:C51单片机学习笔记之LCD1602 矩阵键盘:C51单片机学习笔记之矩阵键盘 代码部分 LCD1602.c #include reg52.h #include intrins.h sbit RS = P2^0; sbit RW = P2^1; sbit EN = P2^2; #define RS_CLR RS = 0 #define RS_SET RS = 1 #define RW_CLR RW = 0 #define RW_SET RW = 1 #define EN_CLR
[单片机]
Keil C51对C语言的关键词扩展之一: _at_
_at_关键词用于在定义变量时指定变量所在地址。 _at_关键词使用示例如下: struct link { struct link idata *next; char code *test; }; struct link list idata _at_ 0x40; /* 定义位于内部RAM低128字节区0x40地址处的 结构体 */ char xdata text _at_ 0xE000; /* 定义位于外部RAM 0xE000地址处的 数组 */ int xdata i1 _at_ 0x8000; /* 定义位于外部RAM 0x8000地址处的 整型变量 */ volatile char
[单片机]
C51玩8x8LED点阵:PointGame
** 前言 ** 我借同学的光驱把光盘中的文件拷出来后,开始尝试玩一玩单片机。 目前做的比较难的是8X8Led点阵的使用,元件感觉有点多啊。 我用的是普中科技HC6800-ES V2.0的开发板,很多人说什么普中垃圾,我觉得还是他们自己C语言和数电等知识还没弄懂之类的吧。还有老师的教程到8X8LED点阵这里,很多人说有问题,我甚至见过一篇博客写这个教程但是在结果后写:没有显示… dots… 也是,视频里说了有个地方需要短接的,至于是哪里,请往下看! 像以往一样,做个预想,这篇结束时,可以尽量在LED点阵上显示文字等。 ** 8X8LED阵列 ** 我用的单片机中的LED阵列是左边这种。 行,是D7~D0,而列是P0
[单片机]
利用全局及外部变量实现C51无能数化调用A51函数
电子技术应用 2001年第7期发表苟帅的文章“ASM51无参数化调用C51函数的实现”,阐述了ASM51无参数化调用C51 函数的实现原理并给出实例来验证该方法的优越性和可行性。作者在文章中表明这样一种观点:“利用汇编语言对I/O接口、中断向量及程序空间分配的巨大优势,让程序员对MCS51内的每一字节甚至是每一比特(可位寻址空间)全部进行统筹安排,设计好各个程序模块,包括I/O口地址和中断向量地址的处理;同时在具体数据处理、通信等不需要过多与硬件打交道的程序模块中,充分利用C51语言强大高效的编程能力”。上述观点并没有错,但是对I/O接口、中断向量及程序空间分配及MCS-51内的每一个字节甚至是每一比特(可位寻址空间)全部进行统
[单片机]
水箱的温度PID控制系统的C51设计
此系统是基于PID的单片机温度控制系统,我在网上搜到一段完整的程序,并按他的程序做出了相应的proteus硬件仿真,但 是并没有达到预期的效果.待提高。 程序如下: #include<reg51.h #include<intrins.h #include<math.h #include<string.h struct PID { unsigned int SetPoint; // 设定目标 Desired Value unsigned int Proportion; // 比例常数 Proportional Const unsigned int Integral; // 积分常数 Integral Const unsign
[单片机]