c语言编单片机程序(用C语言进行单片机编程)

本文目录
用C语言进行单片机编程
/*******************************************************************************
*
文件名称:LED流水灯控制实验
*
实验目的:掌握单片机IO口操作的基本方法
*
程序说明:无
*
日期版本:
*******************************************************************************/
#include
"reg52.h"
//定义51单片机特殊功能寄存器
#include
"intrins.h"
//延时函数
void
delay(void)
{
unsigned
char
i,j,k;
for(i=0;
i《20;
i++)
{
for(j=0;
j《20;
j++)
{
for(k=0;
k《248;
k++);
}
}
}
//主函数
void
main(void)
{
unsigned
char
i;
while(1)
{
for(i=0;
i《8;
i++)
{
P2
=
((P2&0x1f)|0x80);
P0
=
~(0x01《《i);
//左移i位,按位取反
P2
&=
0x1f;
delay();
}
}
}
给你一条用c语言编程的流水灯,型号自己选择。
如何用c语言创建单片机的程序吗
1、把C语言编译为编程器支持的语言格式,比如常用的bin,或hex等格式。
2、如果是可在线编程的,可以用ISP直接进行烧录。
3、如果不是可在线编程的,将单片机芯片,放入编程器,然后烧录。
注意:编译和烧录时,都要选择和单片机芯片一致的型号,否则会出错。
如果找不到对应的型号,说明不支持该型号的单片机。
单片机 c语言编写
单片机C语言编写与普通电脑C语言类似,只不过硬件成分更多些。比如:
#include《reg51.h》
#define uchar unsigned char
uchar code ledtab={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9
unsigned char sec=0,min=0,hour=12,scanled;
unsigned char key,time;
unsigned char disdat;
sbit K=P1^0;
void dischg()
{
disdat=sec%10;
disdat=sec/10;
disdat=min%10;
disdat=min/10;
disdat=hour%10;
disdat=hour/10;
}
void t0isr() interrupt 1 //秒计时
{
TR0=0;
TH0=0x3c;
TL0=0xb0;
TR0=1;
time++;
if(time==20)
{
time=0;
sec++;
if(sec》59)
{
sec=0;
min++;
if(min》59)
{
min=0;
hour++;
if(hour》23)hour=0;
}
}
}
dischg();
}
void t1isr() interrupt 3 //显示
{
TH1=0xec;
TL1=0x78;
switch(scanled)
{
case 0:
P2=0x01;
P0=~ledtab;
break;
case 1:
P2=0x02;
P0=~ledtab;
break;
case 2:
P2=0x04;
P0=~ledtab;
break;
case 3:
P2=0x08;
P0=~ledtab;
break;
case 4:
P2=0x10;
P0=~ledtab;
break;
case 5:
P2=0x20;
P0=~ledtab;
break;
default:break;
}
scanled++;
scanled%=6;
}
main()
{
TMOD=0x11;
TH0=0x3c;
TL0=0xb0;
TH1=0xec;
TL1=0x78;
EA=1;
TR1=1;
ET0=1;
ET1=1;
sec=50;
min=59;
hour=23;
scanled=0;
time=0;
key=0;
dischg();
while(1)
{
if(K==0)
{
while(K==0);
key++;
key%=2;
}
switch(key)
{
case 0:
TR0=1;
break;
case 1:
TR0=0;
break;
}
}
}

更多文章:
sqlite格式的视频怎么打开(.sqlite是什么文件,用什么工具打开)
2026年11月7日 05:30
element ui面试题(用element-ui ELDialog和ELTable遇见的坑)
2026年11月7日 04:40
中文自动翻译成英语的输入法(有没有一种输入法能将打出来的中文自动变成英文)
2026年11月7日 02:10
equals to(为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗)
2026年11月7日 01:50
default values(电脑开机后出现all settings was reset to default values.)
2026年11月7日 01:20
structured reviewing翻译(软件测试的英文翻译)
2026年11月7日 00:50



