#include #include unsigned moveright(unsigned value, int n);unsigned moveleft(unsigned value, int n);main(){unsigned a;int n;SCON = 0x50;TMOD |= 0x20;TH1 = 0xf3;TR1 = 1;TI = 1;printf("请数入一个8进制数
1、将要生成库文件的代码新建一个工程,比如LibExample,然后把代码加到其中,在Option for target中的Output里选择Create Library,编译通过生成库文件。如下2图2、将生成的库文件(LibExample.lib)拷贝到新项目(H
C51 中的变量定义 C51可支持图5-1所列的数据类型,但80C51单片机的CPU是一个8位微控制器。用8位字节(如:char和unsigned char)的操作比用整数或长整数类型的操作更有效。对于C这样的高级语言,不管使用什么样的数据
在Keil C51 中使用printf ,首先需要重新实现 putchar(char c)函数。此函数在charputchar(charc){ES=0;SBUF=c;while(TI==0);TI=0;ES=1;return0;}我们先分析一下上面这个程序哈,关闭串口中断发送单字节数据等待发送完
一、全局变量和局部变量全局变量和局部变量的区别在于作用域的不同。此外还有静态全局变量和静态局部变量。全局变量作用域为全局,在一个源文件中定义,其他的源文件也可以应用。在其他的源文件中使用extern加以声明
C51的指针,试验,===结果:成功/*********************************************************************//* 试指针,假设TL0存在20H,TH0存在21H,下一个TL0存在22H,TH0存在23H, 共存4组。计算这4组数据的4次
一 课题目标本课题是用51系列单片机来实现频率计,并利用LCD1602液晶显示器来显示所测频率值。二 课题分析LCD频率计是利用十进制数字显示被测信号频率的数字测量仪器。根据定义,频率就是在1s内信号变化的周期数。在
◆测试代码:#includevoid main(void){TMOD = 0x01;//定时器T0 工作方式1 16位定时TH0=0x3c;//50ms65536-50000usTL0=0xb0;ET0 = 1;//允许定时器T0中断EA = 1;//开启总中断断点:TR0 = 1;//启动定时器,可以随便放置^_^
/*************晶体为11.0592M,波特率9600bps***************学习型红外线遥控程序*******/#include void Ewen(void);void Ewds(void);void Delay(void);void Irda(void);void Study(void);void Output(unsigned int
#include#define uint unsigned int#defineuchar unsigned charsbit beep = P1^5;uchar code SONG_TONE[]={212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,159,169,190,119,119,126,159,142,159,
第一节 绝对地址访问C51提供了三种访问绝对地址的方法:1. 绝对宏:在程序中,用“#include”即可使用其中定义的宏来访问绝对地址,包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD具体使用可看一看ab
Accessing Absolute Memory Locations绝对存储器访问C编程语言并不支持明确地提定一个静态或全部变量的存储位置。有三种方法可以明确地参考存储器位置:(1)绝对存储器访问宏(2)连接器位置控制(3)关键字_at_Abs
ps2key.c/*============================================================使用1602液晶显示和PS/2键盘的示例 明浩 2004/2-------------------------------------------------http://www.cdle.net http://bbs.cdle.n
方法有很多的,给你一个,你可以调试一下,你可以通过不同的晶振去计算定时器初值,如果你懂定时器这部分很好调通的#includesbit p1_0=P1^0;int i; //全局变量void timing(void)//晶振为3.6864M{ TMOD|=0x01; /
一.相关换算1、1s=10^3ms(毫秒)=10^6μs(微秒)=10^9ns(纳秒)=10^12ps(皮秒)=10^15fs(飞秒)=10^18as(阿秒)=10^21zm(仄秒)=10^24ym(幺秒)2、物质在1秒内完成周期性变化的次数叫做频率,常用f表示。 物理中频率的单位
Function Declarations函数声明Cx51对标准C进行了一定的扩展,使用这些扩展可以:(1)把一个函数声明为一个中断过程(2)选择使用的寄存器组(3)选择存储器模式(4)声时可重入(5)声明外部函数在函数声中包含这些
//键盘扫描处理,无按键返回0,有按键返回键值,键值对应于keycode[]下标值。8条(以P2为例)口线24按键 //键盘码也可定义为局部数组变量 unsigned char code keycode[]= {0x00,0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0
Register Usage寄存器应用汇编程序可以在改变当前寄存器组中所有寄存器和ACC,B,DPTR以及PSW中的内容。当在汇编程序中调用C函数时,要注意这些寄存器都有可能被C函数改变。Overlaying Segments段覆盖如果程序在连接
C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51的库函数系统。第一节 本征库函数(intrinsic routines)和非本征证库函数C
#ifndef _DELAY_51_H_#define _DELAY_51_H_#include #define uint unsigned int#define uchar unsigned char//nus延时void delay_nus( uchar n );//nms延时void delay_nms( uchar n );//2us延时void delay_2us( ucha