51单片机c语言源程序_第1页
51单片机c语言源程序_第2页
51单片机c语言源程序_第3页
51单片机c语言源程序_第4页
51单片机c语言源程序_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——51单片机c语言源程序51单片机c语言源程序(1)

Led,数码管,点阵部分

源程序由东流电子编写,文档由本人整理上传

/********************************************************************

*描述:点亮P1口的一个LED灯该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平*创立人:东流,2023年2月7日*版本号:1.0

***********************************************************************/#include

#defineucharunsignedchar//这里用\代替\,\用来定义无符号字符型数。

#defineuintunsignedint//\用来定义无符号整型数。sbitShow_LED=P0^0;//用来声明P1.0口为程序所要控制的端口,\是KEIL专门用来声明某位IO口

/********************************************************************

*名称:Main()

*功能:实现灯的闪烁*输入:无*输出:无

***********************************************************************/voidMain(void){Show_LED=0;//点亮P1.0对应的LEDwhile(1){}

}/*********************************************************************描述:点亮P1口的一个LED灯该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平*创立人:东流,2023年2月7日*版本号:1.0

***********************************************************************/

#include

#defineucharunsignedchar//这里用\代替\,\用来定义无符号

字符型数。

#defineuintunsignedint//\用来定义无符号整型数。

/*********************************************************************名称:Main()

*功能:实现灯的闪烁*输入:无*输出:无

***********************************************************************/voidMain(void){P0=0xfe;//点亮最终一个LEDwhile(1){}

}/********************************************************************

*描述:点亮P0口的多个LED灯该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平LED1、LED3、LED5、LED7点亮。LED2、LED4、LED6、LED8不亮。您会看到LED美丽的光辉。*创立人:东流,2023年2月7日*版本号:1.0

***********************************************************************/

#include

#defineucharunsignedchar//这里用\代替\,\用来定义无符号字符型数。

#defineuintunsignedint//\用来定义无符号整型数。sbitLED1=P0^0;//用来声明P0.0口为程序所要控制的端口,\是KEIL专门用来声明某位IO口sbitLED2=P0^1;sbitLED3=P0^2;sbitLED4=P0^3;sbitLED5=P0^4;sbitLED6=P0^5;sbitLED7=P0^6;sbitLED8=P0^7;

/*********************************************************************名称:Main()

*功能:实现灯的闪烁

*输入:无*输出:无

***********************************************************************/voidMain(void){LED1=0;LED2=1;LED3=0;LED4=1;LED5=0;LED6=1;LED7=0;LED8=1;while(1){}

}/*********************************************************************文件名:闪烁灯.c

*描述:点亮P0口的多个LED灯该程序是单片机学习中最简单最基础的,通过程序了解如何控制端口的高低电平通过对P1口和P2口的直接赋值,来点亮LEDLED1、LED3、LED5、LED7点亮。LED2、LED4、LED6、LED8不亮。相比前面一个代码,这个代码显得简单的多。假使是多为IO进行控制,建议大家直接对P1--P3进行操作。*创立人:东流,2023年2月7日*版本号:1.0

***********************************************************************/

#include

#defineucharunsignedchar//这里用\代替\,\用来定义无符号字符型数。

#defineuintunsignedint//\用来定义无符号整型数。

/*********************************************************************名称:Main()

*功能:实现灯的闪烁*输入:无*输出:无

***********************************************************************/voidMain(void)

{

P0=0xaa;//相当于二进制0B10101010while(1){}

}/*********************************************************************描述:该程序是一个最简单的单片机代码。实现了一个LED的不停闪烁。每个0.2秒,两灭交替一次。*创立人:东流,2023年2月7日*版本号:1.0

***********************************************************************/

#include

#defineucharunsignedchar//这里用\代替\,\用来定义无符号字符型数。

#defineuintunsignedint//\用来定义无符号整型数。sbitShow_LED=P0^0;//用来声明P1.0口为程序所要控制的端口,\是KEIL专门用来声明某位IO口

/*********************************************************************名称:Delay()

*功能:延时,延时时间为10ms*del。这是通过软件延时,有一定误差。*输入:del*输出:无

***********************************************************************/voidDelay(uintdel){uinti,j;for(i=0;i

#defineucharunsignedchar//这里用\代替\,\用来定义无符号字符型数。

#defineuintunsignedint//\用来定义无符号整型数。sbitShow_LED=P0^0;//用来声明P1.0口为程序所要控制的端口,\是KEIL专门用来声明某位IO口

/*********************************************************************名称:Delay()

*功能:延时,延时时间为10ms*del。这是通过软件延时,有一定误差。*输入:del*输出:无

***********************************************************************/voidDelay(uintdel){uinti,j;for(i=0;i

Show_LED=1;

Delay(20);//Delay(del)中的数为延时的时间参数,延时时间为10ms*del.Show_LED=0;Delay(20);}

}/*********************************************************************描述:本试验,让8个LED不停显示依照规律轮番显示。首先,8个LED分别两次间隔显示。然后高4位显示和低4位显示。最终间隔全亮、全灭两次。*创立人:东流,2023年2月7日*版本号:1.0

***********************************************************************/

#include

#defineucharunsignedchar#defineuintunsignedint

/*********************************************************************名称:Delay()

*功能:延时,延时时间为10ms*del*输入:del*输出:无

***********************************************************************/voidDelay(uintdel){uinti,j;for(i=0;i

#defineucharunsignedchar#defineuintunsignedint

ucharcodetable[10]={0xaa,0x55,0xcc,0x33,0x0f,0xf0,0x00,0xff,0x00,0xff};

/********************************************************************

*名称:Delay()

*功能:延时,延时时间为10ms*del*输入:del*输出:无

***********************************************************************/voidDelay(uintdel){uinti,j;for(i=0;i

#defineucharunsignedchar#defineuintunsignedint

/*********************************************************************名称:Delay()

*功能:延时,延时时间为10ms*del*输入:del*输出:无

***********************************************************************/voidDelay(uintdel){uinti,j;for(i=0;i

#defineucharunsignedchar

#defineuintunsignedint

//数码管的段码编码uchartable[16]

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

=

//下一行的数组可以显示数值外,还可以显示数码管的点uchartable_d[16]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};

/*********************************************************************名称:Main()*功能:主函数*输入:无*输出:无

***********************************************************************/voidmain(){uchari=0;P2=6;//通过74HC138来控制数码管的位选,P2=0或1,2,3,4,5,6,7点亮相应的数码管P0=table[5];//显示5,大家可以修改里面的数据。while(1){}}

/*********************************************************************文件名:数码管显示.c

*描述:该程序为数码管静态显示程序。程序实现了最右边数码管的显示一个5,大家可以在程序中修改相应的值而在数码管上显示相应的数字。*创立人:东流,2023年2月7日*版本号:1.0

***********************************************************************/#include

#defineucharunsignedchar#defineuintunsignedint

//数码管的段码编码uchartable[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//下一行的数组可以显示数值外,还可以显示数码管的点uchartable_d[16]=

{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};

/*********************************************************************名称:Main()*功能:主函数*输入:无*输出:无

***********************************************************************/voidmain(){uchari=0;P2=7;//数码管的最终一位显示P0=table_d[5];//显示5,大家可以修改里面的数据。while(1){}}

/*********************************************************************描述:用单个数码管来模拟流水灯。*创立人:东流,2023年2月7日*版本号:1.0

***********************************************************************/#include

#defineucharunsignedchar#defineuintunsignedint

//数码管的段码编码uchartable[16]

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//下一行的数组可以显示数值外,还可以显示数码管的点uchartable_d[16]

{0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1};

/*********************************************************************名称:Delay()

*功能:延时,延时时间为10ms*del*输入:del*输出:无

***********************************************************************/voidDelay(uintdel){uinti,j;

=

=

for(i=0;i

#defineucharunsignedchar#defineuintunsignedint

ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x

*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay(uinti){uintx,j;for(j=0;j

#defineucharunsignedchar

#defineuintunsignedint

ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodeLED_W[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay(uinti){ucharx,j;for(j=0;j

#defineucharunsignedchar#defineuintunsignedint

ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay(uinti){uintx,j;for(j=0;j=3)//当大于3毫秒的时,执行括号中的语句{j-=1;//延时时间自减1毫秒

}}}

/*********************************************************************文件名:动态显示.c

*描述:八位数码管依次显示0,1,2,3,4,5,6,7*创立人:东流,2023年2月7日*版本号:1.0

***********************************************************************/#include

#defineucharunsignedchar#defineuintunsignedint

ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay(uinti){ucharx,j;for(j=0;j

#defineucharunsignedchar#defineuintunsignedint

ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay(uinti){uintx,j;for(j=0;j

#defineucharunsignedchar#defineuintunsignedint

ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodeLED_W[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};uintLED_temp=0;

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay(uinti){ucharx,j;for(j=0;j

#defineucharunsignedchar#defineuintunsignedint

ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};uintLED_temp=0;

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay(uinti){ucharx,j;for(j=0;j

#defineucharunsignedchar#defineuintunsignedint

//数码管的段码编码uchartable[16]

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

/*********************************************************************名称:Delay()

*功能:延时,延时时间为10ms*del*输入:del*输出:无

***********************************************************************/voidDelay(uintdel){

=

uinti,j;for(i=0;i

#defineucharunsignedchar#defineuintunsignedint

//数码管的段码编码uchartable[16]

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

=

***********************************************************************/voidDelay_1ms(uinti)//1ms延时{ucharx,j;for(j=0;j

#defineucharunsignedchar#defineuintunsignedint

//数码管的段码编码uchartable[16]

{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay_1ms(uinti)//1ms延时{ucharx,j;for(j=0;j

#defineucharunsignedchar#defineuintunsignedint

//ucharcodetable[8]={0x00,0x00,0x00,0x00,0x73,0x77,0x6d,0x6d};//显示PASS编码ucharcodetable[8]={0x00,0x00,0x00,0x76,0x79,0x38,0x38,0x3f};//显示HELL0编码ucharcodeLED_W[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay(uinti){ucharx,j;for(j=0;j

#defineucharunsignedchar#defineuintunsignedint

ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodeLED_W[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

sbitKEY1=P3^2;

sbitLOCKDuan=P3^7;

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay(uinti){uintx,j;for(j=0;j

#defineuintunsignedint#defineucharunsignedchar//心形显示

unsignedcharcodetabP0[]={0x0c,0x12,0x22,0x44,0x22,0x12,0x0c,0x00};unsignedcharcodetabP2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};

//圆形显示

//unsignedcharcodetabP0[]={0x00,0x3c,0x42,0x42,0x42,0x42,0x3c,0x00};

//unsignedcharcodetabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};

//菱形显示

//unsignedcharcodetabP0[]={0x00,0x08,0x14,0x22,0x41,0x22,0x14,0x08};

//unsignedcharcodetabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};

//叉形显示

//unsignedcharcodetabP0[]={0x00,0x41,0x22,0x14,0x08,0x14,0x22,0x41};

//unsignedcharcodetabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};

//中字显示

//unsignedcharcodetabP0[]={0x00,0x1e,0x12,0x12,0x7f,0x12,0x12,0x1e};

//unsignedcharcodetabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay_1ms(uchari)//1ms延时{ucharx,j;for(j=0;j

#defineuintunsignedint#defineucharunsignedchar//心形显示

unsignedchartabP0[]={0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x00,};unsignedchartabP2[]={0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};unsignedcharTEMP[8];

//圆形显示

//unsignedcharcodetabP0[]={0x00,0x3c,0x42,0x42,0x42,0x42,0x3c,0x00};

//unsignedcharcodetabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};

//菱形显示

//unsignedcharcodetabP0[]={0x00,0x08,0x14,0x22,0x41,0x22,0x14,0x08};

//unsignedcharcodetabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};

//叉形显示

//unsignedcharcodetabP0[]={0x00,0x41,0x22,0x14,0x08,0x14,0x22,0x41};

//unsignedcharcodetabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};

//中字显示

//unsignedcharcodetabP0[]={0x00,0x1e,0x12,0x12,0x7f,0x12,0x12,0x1e};

//unsignedcharcodetabP2[]={0x7F,0xBF,0x0DF,0x0EF,0x0F7,0x0FB,0x0FD,0x0FE};

/*********************************************************************名称:Delay_1ms()

*功能:延时子程序,延时时间为1ms*x*输入:x(延时一毫秒的个数)*输出:无

***********************************************************************/voidDelay_1ms(uchari)//1ms延时{ucharx,j;for(j=0;j

#defineuintunsignedint#defineucharunsignedchar

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论