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;
}
}
}

更多文章:
数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)
2026年9月7日 17:00
springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)
2026年9月7日 14:00
display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)
2026年9月7日 11:00
timestamp without time zone(Postgresql中to_date()函数使用问题)
2026年9月7日 09:40






