51单片机用C语言或者汇编程序如何实现定时1秒?如何设定初始值?如何计算?如何输出方波?如何对外部?
使用定时器实现1秒定时; 初始值要看单片机配置的晶振频率了,若12M晶振,初始值为TH0=0x3c;TL0=0xb0; 这才是50ms,还要一个单元做计数器,计数20次才是1秒 方波?在定时中断里求反一次。
对外输出?就对端口(比如P1.0)求反 如何计算?常用的,记熟了,你自己看书请问单片机89C51中C语言int和char类型跟占用多少字节?谢谢?
对于该款单片机,int类型的变量占据2个字节,char类型的占据1个字节。
不过一般大家为了节约空间,大部分会使用char类型,同时89C51是一款8位的单片机,所以推荐使用char类型的变量进行运算,即使我们在代码中写入int类型的变量进行运算,也是编译器编译成为了8位的运算模式进行运算的。
体现不了硬件的优势。
51单片机C语言IF语句除了嵌套,怎么写同时满足3个条件才执行循环体的语句?
楼主这个问题。。。可以用与运算来实现啊。。
例如:
int a,b,c;
if(a==0&&b==1&&c=0)
{
.......
}
这里就是同时满足a为0,b为1,c为0的时候才执行语句。。。
希望能帮到你。。。
单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)?
单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)源代码如下:
#include <reg51.h>
#define uchar unsigned char // 定义无符号的字符
#define uint unsigned int // 定义无符号的整数
void delay(uint); // 声明延时函数
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01;
for(i=0;i<8;i++) //8个流水灯逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp<<=1;
}
temp=0x80;
for(i=0;i<8;i++) //8个流水灯反向逐个闪动
{
P1=~temp;
delay(100); //调用延时函数
temp>>=1;
}
temp=0xFE;
for(i=0;i<8;i++) //8个流水灯依次全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp<<=1;
}
temp=0x7F;
for(i=0;i<8;i++) //8个流水灯依次反向全部点亮
{
P1=temp;
delay(100); //调用延时函数
temp>>=1;
}
void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}
拓展资料:
单片机又称单片微控制器,它不是执行特定逻辑功能的芯片,而是将计算机系统集成到芯片上的芯片,相当于一个微型的计算机。与计算机相比,单片机缺少I/O设备。
总的来说,是一块芯片变成了一台计算机。它体积小、重量轻、价格低廉、为学习、应用和开发都提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的一个最佳选择。
还没有评论,来说两句吧...