1)auto这个关键字用于声明变量的生存期为自动,即将不在任何类、结构、枚举、联合和函数中定义的变量视为全局变量,而在函数中定义的变量视为局部变量。这个关键字不怎么多写,因为所有的变量默认就是auto的。(2)register这个关键字命令编译器尽可能的将变量存在CPU内部寄存器中而不是通过内存寻址访问以提高[详细]
在C51中,函数返回值传递的规则是什么?答:(1)调用时参数的传递分三种情况:少于等于3个参数时通过寄存器传递(寄存器不够用时通过存储区传递),多于3个时有一部分通过存储区传递,对于重入函数参数通过堆栈传递。通过寄存器传递速度最快。(2)函数返回值的传递当函数有返回值时,其传递都是通过寄存器 [详细]
/* 名称:闪烁的 LED说明:LED 按设定的时间间隔闪烁*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit LED=P1^0;//延时void DelayMS(uint x){uchar i;while(x--){for(i=0;i<[详细]
如何在C51文件和汇编语言文件中相互调用对方文件中的函数?答:汇编语言文件中对于函数的调用方法,与调用汇编语言中的函数一样,如:LCALL DISPLAY在C语言文件中调用汇编语言中的函数,必须先声明再调用。声明格式如下:extern 返回值类型 函数名(参数表);例如: extern unsigned char right_shift ( char,[详细]
1. 无论什么时候我们都要以实际应用的角度去考虑程序的编写。2. 无论什么时候都不要让CPU白白浪费等待,尤其是延时(超过1MS)这样的地方。3.设计相应驱动电路时候,应该仔细阅读芯片的数据手册,了解每个引脚的驱动能力,以及整个芯片的驱动能力。4.最重要的是,如何去释放CPU(如果是led每500ms闪烁一次,那么[详细]
1 简 述所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断。在设计引脚中断程序时,有三个需要特别注意的地方。一是,在清除P0RTB中断标志位RBIF之前,必须安排一条必不可少的,[详细]
1.编写一C51函数,把从键盘输入的5位十进制数数转换成一个无符号整型数(假设未超出整型数范围)。设从键盘输入的数存放在一无符号数组中,低位数为低下标元素。unsigned char data key_buffer[5];unsigned int trans_int(void){ unsigned char data i; unsigned in[详细]
/* 名称:8 只 LED 左右来回点亮说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//延时void DelayMS(uin[详细]
(1)这两天一直在受一个问题的干扰,那就是做单片机串口通信的时候,有些数据总是传得不对:当显示0~f这些数字的时候,显示没有错误,而显示其它8位数据的时候都错了,发送11(16进制)时,到单片机上居然是49(十进制),这显然是不对的,一直怀疑是程序的问题,反复地检查和修改之前编的一个数码管动态显示子程序[详细]
曾在某个论坛上看过这样一句话——给每个模块都分配一个时间,这样才能写好汇编。当时觉着有些道理,却不能很深地体会。记得刚学单片机汇编的时候,印象最深的莫过于循环点亮一排led.。先点亮一个、延时、计数值不为零则移位(寄存器)点亮下一个......十分类似于c中的while(n--){//...led=1;dela[详细]
//ADS1.2下编译使用void TestFun(char* fmt,...){int ch;char selch = 0;va_list ap = NULL;va_start(ap, fmt);do{selch = *fmt;if (selch!='%'){putchar(*fmt);}else{selch = *++fmt;switch(selch){case 'c':ch = va_arg(ap, int);printf("%c",ch);break;case 'd':ch = va_[详细]
/* 名称:从左到右的流水灯说明:接在 P0 口的 8 个 LED从左到右循环依次点亮,产生走马灯效果*/#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int //延[详细]
/* 名称:花样流水灯说明:16 只 LED 分两组按预设的多种花样变换显示*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar code Pattern_P0[]={0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7[详细]
/* 名称:K1-K4 按键状态显示说明:K1、K2 按下时 LED 点亮,松开时熄灭,*/ K3、K4 按下并释放时 LED 点亮,再次按下并释放时熄灭; #include<reg51.h>#define uchar unsigned char#define&nb[详细]
/* 名称:数码管显示拨码开关编码说明:系统显示拨码开关所设置的编码 000~255 */#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int//各数字的数码管段码(共阴)uchar code DSY_CO[详细]
/* 名称:外部 INT0 中断控制 LED说明:每次按键都会触发 INT0 中断,中断发生时将 LED 状态取反,产生 LED 状态由按键控制的效果*/#include<reg51.h>#define uchar unsigned char#define uint unsigned intsbit L[详细]
做了好一段时间的msp430单片机的编程,随意想一点点东西写下来,也算是给岁月增加一圈年轮。我做msp430的编程使用IAR,用C语言来说。在调试和编程中经常遇到一些个问题,如下:1、中断中断是单片机很重要的一个问题,也是难处理的一个问题。在调试中经常遇到问题。1)打开了中断开关,但是忘了写中断服务程序[详细]
/* 名称:LED 模拟交通灯说明:东西向绿灯亮若干秒,黄灯闪烁 5 次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁 5 此后变红灯,东西向变绿灯,如此重复。*/#include<reg51.h>#define uchar unsigned char#define u[详细]

扫码关注我们
0755-82591179
邮箱:ivy@yingtexin.net
地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A09

Copyright © 2014-2025 颖特新科技有限公司 All Rights Reserved. 粤ICP备14043402号-4