C51单片机用keil时用某一个口的某一位时必须要先定义位变量吗?

作者&投稿:帅陈 (若有异议请与网页底部的电邮联系)
单片机Keil C51 C语言多文件如何使用全局位变量?跪拜!!~

extern就可以。在一个文件里定义:
bdata m;
sbit x=m^1;
然后在另一个文件里声明:
extern bdata m;(如果不使用m可以不声明。)

extern bit x;
这样就可以使用了。如果变量较多,建议楼上的方法,用全局头文件。

是的,P0口有8个引脚,一次可以设置所有引脚的输出状态,不必去一个一个引脚操作
像sbit P00=P0^0这些定义最好写在头文件中,程序看起来简洁,像STC提供的头文件中已有这些定义了

不一定,在普通的单片机就是在keil能够找到的基本上就不用,因为你可以在程序开始的地方加上对应芯片的头文件,比如Reg52.h等等,
如果是keil里找不到的51内核的单片机,需要根据芯片datasheet修改头文件。主要是P口对应的寄存器地址。
比如 sfr P0 = 0x80; sbit P0_0 =P0^0;
还有定义一个可以位寻址的变量也是同样的原理:
比如:bdata unsigned char LOVE;
sbit love0 =LOVE^0;//这两句定义应放在程序开头
love0 代表的是8位数据的最低那位。

如果你想直接操作位的话,是要先用sbit位定义的,如果你用按位与间接操作的话,可不用。

祝你成功

可以直接赋值。如P1^0=0

不用 keil软件里面已经帮你全部定义好了


小弟正在自学STC51单片机,不知道从哪里下载KeiIc51。哪位大哥教小弟一...
学单片机等上CSDN查询,注册个账号,上面基本都有。下载积分在你评论后返回的

keil uvision4以管理员身份运行的 ERROR R206是怎么回事?
拓展:1、Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision...

仿真一个单片机需要什么文件
2 硬件仿真 网上有卖的51开发板有的支持avr,支持串行烧录如芯片at89s52仿真的时候需要东西:51开发板,atmega8内置,同51单片机的jtag连线,usb _usb公母线,pc机,烧录软件stc的用stc isp at的用avr fighter,编译软件生成十六进制文件的软件,kei c或者ultra edit 3.仿真芯片和2 几乎相同如sst89e58...

高分求助:kei c如何编程让8位数码管亮
include <REG51.H> define uint unsigned int define uchar unsigned char uchar code DIS_SEG7[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8};uchar code DIS_BIT[8]={0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87};\/***\/ void delay1ms(uint i){ uint j;while(i--)for(j...

简单的单片机程序流水灯试验用定时器和计数器,请问为什么编译是全是no...
你在kei软件的project--》》options for target-->>off-chip code memory-->> start EPROM 填写0x8000 size填写就要看你存储空间大小了 你通过调试应该可以看到程序源代码。

51单片机有多少个引角,18,19用是什么
我们的优点: 1、采用模块化设计(通过短路跳线,连接线可以让各硬件资源快速独立或者用不同的方法快速连接) 例如:通过更改跳线可以立即让另一个IO口去控制继电器或者发声,可以键盘更换IO口等. 2、一套开发板可同时学习51和AVR单片机,这样可降低学习的成本. 3、新增一路继电器控制:继电器是一个最普通的...

这是一个单片机I2C的程序,麻烦高手帮忙指点下;为什么有时显示不行呢...
1、可能延时时间不够,器件读写速度慢,跟不上。void delay(){ ;; } \/\/延迟5毫秒左右;你用多少的晶振?12M的晶振标准51核,只能延时2个微秒。2、write_byte(0xaa);respons();像这种写入数据的操作需要时间比较长,你的等待时间可能不够。查看你器件的datasheet,看它的写入时间需要多久。3、...

proteus仿真,虚拟终端+三态门+单片机 有错
RXD,是串行输入端,应该连接三态门的输出端。TXD,是串行输出端,应该连接三态门的输入端。插图的最后两张,三态门都接反了。TTL 门电路的工作频率可达几兆至几十兆,并不会影响串口的工作速度。

单片机C语言应用100例的目录
1.4实例2:Proteus仿真设计快速入门2.2KeilC51的使用2.2.1单片机最小系统2.2.2实例3:用Kei1C51编写点亮一个发光二极管的程序2.3程序烧录器及烧录软件的使用习题与实验第3章逐步认识单片机基本结构3.1实例4:用单片机控制一个灯闪烁3.1.1实现方法3.1.2程序设计3.1.3用Proteus软件仿真3.1.4...

钦南区17885614568: C51单片机用keil时用某一个口的某一位时必须要先定义位变量吗? -
系爱双黄: 不一定,在普通的单片机就是在keil能够找到的基本上就不用,因为你可以在程序开始的地方加上对应芯片的头文件,比如Reg52.h等等,如果是keil里找不到的51内核的单片机,需要根据芯片datasheet修改头文件.主要是P口对应的寄存器地址.比如 sfr P0 = 0x80; sbit P0_0 =P0^0; 还有定义一个可以位寻址的变量也是同样的原理:比如:bdata unsigned char LOVE; sbit love0 =LOVE^0;//这两句定义应放在程序开头 love0 代表的是8位数据的最低那位.

钦南区17885614568: 89C51用keil c51写程序时要用某一个口的某一位时必须要先定义位变量吗? -
系爱双黄: 看你用什么语言写了,如果用汇编的话不用定义,直接用就行了,如:p1.0、p2.2…… 如果用C编写的话,应该先把头文件加进来,#include,加进来后,如果不定义端口的话:P1、P1^1,这里的P是大写的……当然也可以自己定义了……如:sbit R_A=P2^0;等等……

钦南区17885614568: 如何用keil在C51单片机P2.6口输出串口数据,能给段范例代码吗,波特率是9600,晶振是11.0592MHz -
系爱双黄: #include<reg51.h> sbit dat=P2^6; sbit key=P1^0; void t0isr() interrupt 1 { if(flag){dat=0;flag=0;}//发送起始位 else { dat=(bit)(outd & 0x01) //发送数据 outd=outd>>1; cnt++; if(cnt==8){ TR0=1;outd=1;} //发送结束位 } main() { unsigned char str='A'; ...

钦南区17885614568: 单片机用keil 编程C语言,控制某I/O口通断 -- 通断的循环,公式怎么编,比如循环通断100次,并编写多种延时 -
系爱双黄: 用FOR 循环或 While也可以 for (k=0; k<100; k++){ P1=0; Delay(); // 这里自己加个...

钦南区17885614568: 51单片机中怎样位选一个端口出来单独使用,而不受其它端口的影响? -
系爱双黄: sbit P1_1=P1^1; 选择p1.1出来.

钦南区17885614568: 用keil软件如何实现51单片机二进制数的累加? -
系爱双黄: 用KEIL写51的汇编程序,可以用二进制数字后加“B”表示,比如0x2A = 00101010B 而KEIL的C编译器不支持写二进制数,所以KEIL的C程序不能直接用二进制数表示.但如果你自定义一个#define B00101010 0x2A 这句话,那下面的程序就可...

钦南区17885614568: 请教51单片机高手!我用的是win7,用keil写的程序通过STC写人单片机在步骤3时,要选择com口,但不晓得是哪 -
系爱双黄: 你用的是rs232的USB转串口吧?这个东西是要装驱动的,装完之后才会在设备管理器的端口中显示,如果没装的话可能在USB那个栏里显示为通用usb设备.驱动在网上就有下下试试吧

钦南区17885614568: 如何使用Keil c51 -
系爱双黄: 在target上点右键有个options for target“”,然后选择output项,有个create hex,把前面的勾点上,确定.工具栏上有一个双箭头朝下的图标(rebuild all target files),还有一个单箭头朝下的图标(build target),点哪个都可以,就编译并生成文件了,

钦南区17885614568: 51单片机用定时器从某个I/O口输出一个信号,定时器的编程怎么写 -
系爱双黄: 以前的一个例子:1,首先初始化定时器,送配置参数.void Init_Timer2() { T2CON=0; //使用模式1,16位定时器 ,且工作在计时模式TH2=(65536-45872)/256; //定时50ms TL2=(65536-45872)%256;EA=1; //总中断打开 ET2=1; //定时器2中...

钦南区17885614568: C51用P3口做输入时,一定需要先对该口置1吗? 我P3每个引脚都上拉了一个500欧的电阻的 -
系爱双黄: 没必要置1的,如果IO口驱动能力不足的时候才会用到上拉,一般也不需要上拉的,只有P0口没有上拉电阻,其他几个IO口内部都自带上拉电阻了.51单片机上电默认IO口就是高电平,用软件来完成最简单了,直接写1就行了. 单片机引脚作为输入和输出是由程序来决定的,与外围电路无关. 比如你想做输出,就直接给P3口赋值.P3 = 0xFE; MOV P3,#0FEH 如果你想让P3口做输入,直接读取P3口就行了 A=P3; MOV A,P3 最好把电路发上来,说清楚你想要完成的功能,才能更好的帮你解决.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网