求这单片机C语言每句大概意思
这是stc单片机的IO端口设置方式
1, P0M1 = 0;
P1M1 = 0;
是p1口的P1^0这个口为普通双向输入输出方式,
2, P2M0 = 0XFF;
P2M1 = 0;
设置整个p2口为高阻输入状态
3,
P0M0 = 0XFF;因为P0M1没给出是什么,不好确定P1口为什么状态
看下stc单片机手册就很清楚了
void displaystring(unsigned char *s) //此函数用于LCM显示一个字符串。
{
int i = 0;
while( s[i] != '\0' )//表示要显示的一个字符串没有结束的话就继续括号
// 中 的循环
{
DisplayOneChar(i, 1, s[i++]); //这是一个单个字符显示函数
}
}
void WriteDataLCM(unsigned char WDLCM) //给LCM写一个数据的函数
{
ReadStatusLCM(); //检测忙
LCM_Data = WDLCM;
LCM_RS = 1;
LCM_RW = 0;
LCM_E = 0; //若晶振速度太高可以在这后加小的延时
LCM_E = 0; //延时
LCM_E = 1;
}
LCM_RS,LCM_RW,LCM_E都是用于控制LCM显示模块的控制脚,只有像上面这种控制方式,字符数据才能写入LCM模块中,你可以参看LCD1602或者12864的数据资料.LCM翻译成中文就是液晶显示模块的意思
sbit s=P0^0;位定义 S代表P0.0
sbit s1=P3^0; S1代表P3.0
sbit s2=P3^1;
sbit s3=P3^2;
unsigned char msec,sec,m,h,count;定义无符号字符型msec,sec,m,h,count
void delay(unsigned char i)声明自定义函数
{unsigned char j,k;自定义函数体
for(k=0;k<i;k++)
for(j=0;j<255;j++);延时直
}
void T0_INT(void) interrupt 1 T0中断程序
{
TH0=0x3c;赋初值
TL0=0xb0;
msec++;计数器 +1
if(msec==10) 是否等于10 是取反P0口
P0=~P0;P0口取反
if(msec==20)是否等于20 是实行{}里的内容
{P0=~P0;
msec=0;
sec++;
if(sec==60)
{
sec=0;m++;
}
}
if(m==60)
{
m=0;
h++;
if(h==24)
{
h=0;
}
}
}
void main()主函数 程序从此函数开始实行
{
unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};存入字符型数组led
TMOD=0x01;设置T0位16定时器
TH0=0x3c;
TL0=0xb0;初值
TR0=1;启动T0
EA=1;开总中断
ET0=1;开T0中断
P0=0x00;P0口置0
P1=0xff;P1口置1
P2=0xff;P2口置1
P3=0xff;
while(1)不断实行{ }里的内容
{
P2=0x01;P2口的P2.0置1
P1=led[sec%10];将10个数组里的其中sec%10个送P1口
delay(10);延时
P2=0x02;
P1=led[sec/10];将10个数组里的其中seC/10个送P1口
delay(10);
P2=0x04;
P1=led[m%10];将10个数组里的其中m%10个送P1口
delay(10);
P2=0x08;
P1=led[m/10];
delay(10);
P2=0x10;
P1=led[h%10];
delay(10);
P2=0x20;
P1=led[h/10];
delay(10);
if(s1==0)
{
delay(10);
if(s1==0)判断P3.0是否是低电平 是就实行{ }的内容
{count++;
while(!s1);
{TR0=0; }
}
if(count==2)判断count里的内容是否等于2 是就实行{ }里的内容
{
}
if(count==3)
{
TR0=1;
count=0;
}
}
if(count!=0)
{if(s2==0)
{delay(10);
if(s2==0)
{while(!s2);
if(count==1)
{m++;
if(m==60) m=0; }
if(count==2)
{h++;
if(h==24)
h=0;
}
}
}
}
if(s3==0)
{
delay(10);
if(s3==0)
{while(!s3);判断P3.2有高变低就实行 if(count==1)语句没就实行if(count==1)的{ }的下条语句
if(count==1)
{ m--;
if(m==-1) m=59;判断M里的内容是否等于-1 是就实行 m=59;不是就实行 m=59;的下条语句
}
if(count==2)
{h--;
if(h==-1)判断h里的内容是否等于—1 是就实行 h=23;不是就实行 h=23;的下条语句
h=23;
}
}
}
}
}
扯蛋……还每一句话的意思……
哥们你太强大了!
单片机C语言中|=什么意思?
|是一中运算,名称叫做“或”,计算方法是对两个数的二进制进行运算,例如3|5的结果是7|=是赋值运算,例如a|=7语句的意思就是a=a|7
单片机C语言中P3 &=~(1<<6) 什么意思
1<<6是将01h左移六位,由二进制的0000 0001变为0100 0000,即十六进制的40h;符号“~”是按位取反,0100 0000取反后变为1011 1111,符号“&”表示按位与,设P3=01h,1011 1111&0000 0001=0000 0001,最终结果为01h 整条语句意思就是先将01h左移六位,再将结果按位取反,再与p3口的值...
P1 = 1<<(P0 & 7); 单片机C语言 这句话是什么意思
P0与7位与操作,即P0的每一位分别和0000 0111进行逻辑与运算,然后 1左移的P0&7位数。假设P0=1111 1111 那么P0&7=0000 0111=7;那么P1=1<<7=1000 0000
单片机C语言编译后:Program Size: data=10.0 xdata=0 code=95,这几句...
单片机内部 data也就是RAM使用了10B 外部RAM使用了0 也就是你没有使用外部RAM code 内部的ROM使用了95字节
单片机c语言程序里sbit cs_138=P2^6什么意思
它的大概意思是把P2^6口直接赋值给cs_138,也就是说经过这一句语句后,要想操作P2口的第6位,直接读\/写cs_138这个变量就可以了。这样做是为了使代码更直观易记。
单片机C语言这句什么意思 i=(i&0x0f)*10
“&”是按位与,返回的是符号两边的数按二进制位相与,i&oxof就是取i的最低4位。
51单片机c语言中 P2&=0x0F; P2|=(1<<4+c); 是什么意思
P2&=0X0F;就是 P2=P2&0X0F;就是将高4位清空;P2|=(1<<4+c); 等效于:P2=P2|((1<<(4+c));就是将P2的第4+c位 赋值1;
单片机C语言编写共阳0~999,最好解释详细点!
\/***数显秒表,范围0~999***\/ \/***源程序默认硬件环境:52单片机,12MHz晶振,3位共阳数码管,P0 口段选,P10~P12 高电平位选(NPN三极管驱动),P12为最高位数码管***\/ include"reg52.h"\/\/包含52头文件 define TRUE1\/\/定义布尔量'1':真 define FALSE0\/\/定义布尔量'0':假 define uchar ...
单片机c语言a|=BIT(b)是什么意思
a=a|BIT(b) BIT(b)应该是一个有返回值的函数,整个语句代表的是一个数,它与a这个数进行或运算了之后把运算结果赋给a
单片机c语言编程中result = (bit)(P0&0x80);什么意思
这句话的意思是;读取P0口的数据(一般是8位或16位),读取的值与0x80进行位与(&),将所得结果赋予result变量,即读取P0.7引脚上的电平状态,‘0‘为低电平,’1‘为高电平。