📄 中原.txt
字号:
#include<at89x51.h>
#include<stdio.h>
#define p3_2 p3.2
unsigned char data segg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(unsigned int k);
unsigned g;
unsigned a,b,c,d,e,f;
void delay(unsigned k)
{unsigned i,j;
for(i=0;i<k;i++)
{
for(j=0;j<k;j++)
{;}
} }
void int0() interrupt 0
{
delay(200);
if(P3^2==0){g++;};
if(g==2){a++;g=0;};
if(a==10){b++;a=0;};
if(b==10){c++;b=0;};
if(c==10){d++;c=0;};
if(d==10){e++;d=0;};
if(e==10){f++;e=0;};
if(f==10){f==0;}
again:if(P3^2==0)
{goto again;}
}
void main()
{
a=0,b=0,c=0,d=0,e=0,f=0,g=0;
P3^2==1;
EA=1;
EX0=1;
while(1)
{
P1=segg[a];P3=0xfe;
delay(2);
P1=segg[b];P3=0xfd;
delay(2);
P1=segg[c];P3=0xf7;
delay(2);
P1=segg[d];P3=0xe;
delay(2);
P1=segg[e];P3=0xdf;
delay(2);
P1=segg[f];P3=0x7f;
delay(2);
}
}
------------------------c程序学习----------------------------------------------------------
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit P10=P1^0;
//sbit是单片机C语言中引入的新的关键字,用途是定义位变量。
void Delay(uint i)//延时程序,i是参数
{ uint j;
for(;i>0;i--)
for(j=0;j<125;j++)
{;}
}
void main()
{
for(;;)
{ P10=1; //close lamp
Delay(500);// delay 0.5S
P10=0; //open lamp
Delay(500); //delay 0.5S
}
}
------------------------------------------------------第二课程------------------------------
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
uchar Left(uchar temp); //申明函数头
void Delay(uint i) //延时程序
{ uint j;
for(;i>0;i--)
for(j=0;j<125;j++)
{;}
}
void main()
{ uchar Lamp=0xfe; //定义一个变量,用来存数 0xfe即11111110
for(;;)
{ Lamp=Left(Lamp);//调用函数,实现左移
P1=Lamp; //输出
Delay(500); //延时
}
}
以上是C语言的主函数
PUBLIC _Left
LEFTP SEGMENT
CODE RSEG LEFTP
_Left: MOV A,R7 ;第一个参数在R7中
RL A
MOV R7,A ;返回值也在R7中
RET
END
以上是汇编语言写的子程序
------------------------------------------第三课-----------------------------------------------------------
由上面我们可以学到C语言中位的表示方法,即用sbit可以进行可位寻址对象的编程,方法是先定义好一个可位寻址对象的字节或字,然后用sbit表示。
例:bdata int ibase; //ibase 定义为bdata整型变量
bdata char bary[4];//bary[4]定义为bdata型数组
sbit mybit0=ibase^0;
sbit ary07=bary[0]^7;
sbit定义要求基址对象(即前面的ibase,bary[4])对象的存贮类型为bdata。
这是指定某一特定的位,如果是一般性的位变量,则可以用keil c引入的新的bit关键字来定义,如:
bit a,b;
注意:位变量不能定义成一个指针,如不能定义:bit *bit_pointer;
不存在位数组,如不能定义:bit b_array[];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -