程序里有中断,串口等驱动,直接复制即可使用

1-IO输出-点亮1个LED灯方法1

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:点亮P1口的一个LED灯

该程序是单片机学习中最简单最基础的,

通过程序了解如何控制端口的高低电平

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

sbit LED=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,

//LED是自己任意定义且容易记忆的符号

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

//此方法使用bit位对单个端口赋值

LED=1; //将P1.0口赋值 1,对外输出高电平

LED=0; //将P1.0口赋值 0,对外输出低电平

while (1) //主循环

{

//主循环中添加其他需要一直工作的程序

}

}

2-IO输出-点亮1个LED灯方法2

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:点亮P1口的一个LED灯

该程序是单片机学习中最简单最基础的,

通过程序了解如何控制端口的高低电平

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

//此方法使用1个字节对单个端口赋值

P1 = 0xFF; //P1口全部为高电平,对应的LED灯全灭掉,

//ff换算成二进制是 1111 1111

P1 = 0xfe; //P1口的最低位点亮,可以更改数值是其他的灯点亮

//0xfe是16进制,0x开头表示16进制数,

//fe换算成二进制是 1111 1110

while (1) //主循环

{

//主循环中添加其他需要一直工作的程序

}

}

3-IO输出-点亮多个LED灯方法1

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:点亮P1口的多个LED灯

该程序是单片机学习中最简单最基础的,

通过程序了解如何控制端口的高低电平

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,

sbit LED1=P1^1;//LED是自己任意定义且容易记忆的符号

sbit LED2=P1^2;

sbit LED3=P1^3;

sbit LED4=P1^4;

sbit LED5=P1^5;

sbit LED6=P1^6;

sbit LED7=P1^7;

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

//此方法使用bit位对单个端口赋值

LED0=0; //将P1.0口赋值 0,对外输出低电平

LED1=1;

LED2=0;

LED3=1;

LED4=0;

LED5=1;

LED6=0;

LED7=1;

while (1) //主循环

{

//主循环中添加其他需要一直工作的程序

}

}

4-IO输出-点亮多个LED灯方法2

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:点亮P1口的多个LED灯

该程序是单片机学习中最简单最基础的,

通过程序了解如何控制端口的高低电平

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

//此方法使用bit位对单个端口赋值

P1=0x55; //换成二进制是0101 0101

while (1) //主循环

{

//主循环中添加其他需要一直工作的程序

}

}

5-闪烁1个LED

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:点亮P1口的1个LED灯闪烁

该程序是单片机学习中最简单最基础的,

通过程序了解如何控制端口的高低电平

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,

//LED是自己任意定义且容易记忆的符号

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

//此方法使用bit位对单个端口赋值

while (1) //主循环

{

LED0=0; //将P1.0口赋值 0,对外输出低电平

Delay(10000); //调用延时程序;更改延时数字可以更改延时长度;

//用于改变闪烁频率

LED0=1; //将P1.0口赋值 1,对外输出高电平

Delay(10000);

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

6-不同频率闪烁1个LED灯

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:点亮P1口的1个LED灯闪烁

该程序是单片机学习中最简单最基础的,

通过程序了解如何控制端口的高低电平

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,

//LED是自己任意定义且容易记忆的符号

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

//此方法使用bit位对单个端口赋值

unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255

while (1) //主循环

{

for(i=0;i<10;i++) //加入 for循环,表明for循环大括号中的程序循环执行10次

{

LED0=0; //将P1.0口赋值 0,对外输出低电平

Delay(5000); //调用延时程序;更改延时数字可以更改延时长度;

//用于改变闪烁频率

LED0=1; //将P1.0口赋值 1,对外输出高电平

Delay(5000);

}

for(i=0;i<10;i++)

{

LED0=0; //将P1.0口赋值 0,对外输出低电平

Delay(60000); //调用延时程序;更改延时数字可以更改延时长度;

//用于改变闪烁频率

LED0=1; //将P1.0口赋值 1,对外输出高电平

Delay(60000);

}

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

7-不同频率闪烁多个LED灯

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:点亮P1口的多个LED灯闪烁

该程序是单片机学习中最简单最基础的,

通过程序了解如何控制端口的高低电平

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号

sbit LED1=P1^1;

sbit LED2=P1^2;

sbit LED3=P1^3;

sbit LED4=P1^4;

sbit LED5=P1^5;

sbit LED6=P1^6;

sbit LED7=P1^7;

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

//此方法使用bit位对单个端口赋值

unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255

while (1) //主循环

{

for(i=0;i<10;i++) //加入 for循环,表明for循环大括号中

//的程序循环执行10次

{

LED0=0; //将P1.0口赋值 0,对外输出低电平

LED2=1;

LED4=0;

Delay(5000); //调用延时程序;更改延时数字可以更改延时长度;

//用于改变闪烁频率

LED0=1; //将P1.0口赋值 1,对外输出高电平

LED2=0;

LED4=1;

Delay(5000);

}

for(i=0;i<10;i++)

{

LED0=0; //将P1.0口赋值 0,对外输出低电平

LED2=1;

LED4=0;

Delay(60000); //调用延时程序;更改延时数字可以更改延时长度;

//用于改变闪烁频率

LED0=1; //将P1.0口赋值 1,对外输出高电平

LED2=0;

LED4=1;

Delay(60000);

}

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

8-8位LED左移

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:左移,直至LED全部点亮,左移符号 <<

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255

Delay(50000);

P1=0xfe; //赋初始值

for(i=0;i<8;i++) //加入 for循环,表明for循环大括号中的程序循环执行8次

{

Delay(50000);

P1<<=1;

}

while (1) //主循环

{

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

9-8位LED右移

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:右移,直至LED全部点亮,右移符号 >>

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255

Delay(50000);

P1=0x7f; //赋初始值

for(i=0;i<8;i++) //加入 for循环,表明for循环大括号中的程序循环执行8次

{

Delay(50000);

P1>>=1;

}

while (1) //主循环

{

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

10-LED循环左移

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:循环左移,始终一个led点亮,并循环执行流水动作,左移符号 << 逻辑或符号 |

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255

Delay(50000);

P1=0xfe; //赋初始值

while (1) //主循环

{

for(i=0;i<8;i++) //加入 for循环,表明for循环大括号中的程序循环执行8次

{

Delay(50000);

P1<<=1;

P1=P1|0x01; //左移后,最右端自动赋值0,所以需要该语句赋值1

}

P1=0xfe; //重新赋初始值

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

11-LED循环右移

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:循环右移,始终一个led点亮,并循环执行流水动作,右移符号 >> 逻辑或符号 |

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255

Delay(50000);

P1=0x7f; //赋初始值

while (1) , //主循环

{

for(i=0;i<8;i++) //加入 for循环,表明for循环大括号中的程序循环执行8次

{

Delay(50000);

P1>>=1;

P1=P1|0x80; //右移后,最左端自动赋值0,所以需要该语句赋值1

}

P1=0x7f; //重新赋初始值

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

12-查表显示LED灯

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:通过查表获得1个字节的值然后赋值给P1端口,ROM允许情况可以设置更多表格

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

/*------------------------------------------------

查表表格

------------------------------------------------*/

unsigned char code table[]={0x7f,0xbf,0xdf,0xef,

0xf7,0xfb,0xfd,0xfe,

0xff,0xff,0x00,0x00,

0x55,0x55,0xaa,0xaa

};

//rom允许情况可以无限添加

/*------------------------------------------------

函数声明

------------------------------------------------*/

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255

while (1) //主循环

{

for(i=0;i<16;i++) //加入 for循环,表明for循环大括号中的程序循环

//执行16次,表明表格中有16个元素

{

P1=table[i];

Delay(30000);

}

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

13-双灯左移右移闪烁

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:2个led灯先左移,然后右移,然后同时闪烁

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned char i; //定义一个无符号字符型局部变量 i

//取值范围 0~255

unsigned char temp;//定义临时变量用于转换

while (1) //主循环

{

temp=0xfc;

P1=temp;

for(i=0;i<7;i++) //加入 for循环,表明for循环大括号

//中的程序循环执行7次

{

Delay(50000); //调用延时程序;更改延时数字可

//以更改延时长度;用于改变闪烁频率

temp<<=1;

temp=temp|0x01; //也可以直接把temp换成P1

P1=temp; //之所以加入temp做中间变量,转换

//完成后直接赋值到端口,防止直接

//操作端口造成的短暂闪烁

}

temp=0x3f;

P1=temp;

for(i=0;i<7;i++) //加入 for循环,表明for循环大括号

//中的程序循环执行7次

{

Delay(50000); //调用延时程序;更改延时数字可以

//更改延时长度;用于改变闪烁频率

temp>>=1;

temp|=0x80; //等效于 temp=temp|0x80

P1=temp;

}

for(i=0;i<3;i++) //加入 for循环,表明for循环大括号

//中的程序循环执行3次

{

P1=0xff;

Delay(50000);

P1=0x00;

Delay(50000);

} //主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

14-花样灯

/*-----------------------------------------------

名称:IO口高低电平控制

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:花样灯一般有两种方法实现:

1、程序循环执行

2、查表法

这里我们两种都使用一下

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

/*------------------------------------------------

花样表格

------------------------------------------------*/

unsigned char code seg[]={0x7f,0xbf,0xdf,0xef,

0xf7,0xfb,0xfd,0xfe,

0xff,0xff,0x00,0x00,

0x55,0x55,0xaa,0xaa

};//rom允许情况可以无限添加

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

main()

{

unsigned char i; //定义一个无符号字符型

//局部变量 i 取值范围 0~255

while(1)

{

P1=0xFE; //第1个LED亮

for(i=0;i<8;i++)

{

Delay(20000);

P1 <<=1;

}

P1=0x7F; //第8个LED亮

for(i=0;i<8;i++)

{

Delay(20000);

P1 >>=1;

}

P1=0xFE; //第1个LED亮

for(i=0;i<8;i++)

{

Delay(20000);

P1 <<=1;

P1 |=0x01;

}

P1=0x7F; //第8个LED亮

for(i=0;i<8;i++)

{

Delay(20000);

P1 >>=1;

P1 |=0x80;

}

//下面通过查表方法获得花样参数

for(i=0;i<16;i++)//查表可以简单的显示各种花样 实用性更强

{

Delay(20000);

P1=seg[i];

}

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

15-PWM调光

/*-----------------------------------------------

名称:PWM调光

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:通过PWM(脉宽调制)调节LED的亮度

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

sbit LED0=P1^0;// 用sbit 关键字 定义 LED到P1.0端口,LED是自己任意定义且容易记忆的符号

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned int CYCLE=600,PWM_LOW=0;//定义周期并赋值

while (1) //主循环

{

LED0=1;

Delay(60000); //特意加延时,可以看到熄灭的过程

for(PWM_LOW=1;PWM_LOW

//电平时间,这个循环中低电平时长从1累加到CYCLE(周期)的值,即600次

LED0=0; //点亮LED

Delay(PWM_LOW);//延时长度,600次循环中从1加至599

LED0=1; //熄灭LED

Delay(CYCLE-PWM_LOW);//延时长度,600次循环中从599减至1

}

LED0=0;

for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ //与逐渐变亮相反的过程

LED0=0;

Delay(PWM_LOW);

LED0=1;

Delay(CYCLE-PWM_LOW);

}

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

16-共阳数码管静态显示

/*-----------------------------------------------

名称:单个共阳数码管静态显示

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:通过赋值给P1,让数码管显示特定的字符或者数字

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

void main (void)

{

P1=0xc0; //二进制 为 1100 0000 参考数码管排列,

//可以得出0对应的段点亮,1对应的段熄灭,结果显示数字"0"

while(1)

{

}

}

17-1个共阳数码管显示变化数字

/*-----------------------------------------------

名称:单个共阳数码管动态显示变化数字

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:通过循环赋值给P1,让数码管显示特定的字符或者数字

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x77,0x7c,0x39,0x5e,0x79,0x71,};

// 显示数值表0-9

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255

while (1) //主循环

{

for(i=0;i<16;i++) //加入 for循环,表明for循环大括号中的程序循环执行10次

{

P1=dofly_table[i]; //循环调用表中的数值

Delay(60000); //延时,方便观看数字变化

}

//主循环中添加其他需要一直工作的程序

}

}/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

18-单个数码管模拟水流

/*-----------------------------------------------

名称:单个共阳数码管模拟水流

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:通过循环赋值给P1,让数码管显示特定流动样式

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

void Delay(unsigned int t); //函数声明

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

unsigned char i; //定义一个无符号字符型局部变量 i 取值范围 0~255

while (1) //主循环

{

P1=0xfe;

for(i=0;i<6;i++) //加入 for循环,表明for循环大括号中的程序循环执行6次

{

Delay(10000);

P1<<=1;

P1|=0x01;

}

//主循环中添加其他需要一直工作的程序

}

}

/*------------------------------------------------

延时函数,含有输入参数 unsigned int t,无返回值

unsigned int 是定义无符号整形变量,其值的范围是

0~65535

------------------------------------------------*/

void Delay(unsigned int t)

{

while(--t);

}

19-按键控制单个数码管显示

/*-----------------------------------------------

名称:单个共阳数码管动态显示变化数字

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:通过循环检测P1口按键输入值,然后用数码管输出,

没有按键按下时原值不变

------------------------------------------------*/

#include //包含头文件,一般情况不需要改动,

//头文件包含特殊功能寄存器的定义

unsigned char code dofly_table[10]={0xc0,0xf9,0xa4,0xb0,0x99,

0x92,0x82,0xf8,0x80,0x90,};

// 显示数值表0-9

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

{

while (1) //主循环

{

switch(P3) //P3口作为独立按键输入端,检测端口电平并做如下判断

{

case 0xfe:P1=dofly_table[1];break;//0xfe = 1111 1110,

//说明连接在P3.0端口的按键被按下,显示对应的数字然后跳出循环

case 0xfd:P1=dofly_table[2];break;//调用表中的第三个

//元素 0xa4 下标 0 才表示数组中的第一个元素

case 0xfb:P1=dofly_table[3];break;

case 0xf7:P1=dofly_table[4];break;

case 0xef:P1=dofly_table[5];break;

case 0xdf:P1=dofly_table[6];break;

case 0xbf:P1=dofly_table[7];break;

case 0x7f:P1=dofly_table[8];break;

default:break; //如果都没按下,直接跳出

}

//主循环中添加其他需要一直工作的程序

}

}

20-单个数码管指示逻辑电平

/*-----------------------------------------------

名称:单个共阳数码管指示逻辑电平

论坛:www.doflye.net

编写:shifang

日期:2009.5

修改:无

内容:通过循环检测P3.2口电平输入值,然后用数码管输出"H" or "L",

表示该端口现在连接的是高电平还是低电平

m0单片机io口_51单片机50个例程代码相关推荐

  1. m0单片机io口_51单片机独立按键和矩阵按键实现

    独立按键实验 按键是一种电子开关,使用时轻轻按开关按钮就可使开关接通,当松开手时, 开关断开.我们开发板上使用的按键及内部简易图如下图所示 管脚与管脚之间(注意是距离)距离长的是导通状态,短的是接通状 ...

  2. m0单片机io口_51单片机蜂鸣器

    蜂鸣器实验 * 蜂鸣器 蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机.打印机.复印机.报警器.电子玩具.汽车电子设备.电话机.定时器等电子产品中作发声器件.蜂鸣器主要分为压电 ...

  3. 51单片机有几个通用io口_51单片机IO口的四种使用方法

    原标题:51单片机IO口的四种使用方法 传统51单片机IO接口只可以作为标准双向IO接口,如果用其来驱动LED只能用灌电流的方式或是用三极管外扩驱动电路. 灌电流方式 LED正极接VCC,负极接IO口 ...

  4. 51单片机有几个通用io口_51单片机IO端口基础知识及应用

    文章目录 89C51单片机引脚信息单片机IO端口内部结构单片机IO引脚输出应用单片机IO引脚输入应用总结 89C51单片机引脚信息 我们在学习使用任何芯片到时候,可能第一个要注意的就是芯片的引脚信息了 ...

  5. 单片机IO口输入模式

    单片机IO口输入模式 单片机IO口输入输出模式判断 如果判断单片机的此IO口电平是由外电路决定而非单片机本身所决定的,则此IO口就是输入IO口. 如果判断单片机的此IO口电平是由单片机决定而非外电路所 ...

  6. 如何利用单片机IO口产生两倍的电源电压

    简介 在很多情况下,电子系统中需要获得比工作电源高的电压电源,或者负电源.比如在一些功率器件(MOS)的基极驱动信号.扩展运算放大器的动态范围.一些通信信号(UART232). 现在有很多专门的芯片, ...

  7. 想做数码管显示,单片机IO口资源不够?看看WTV890语音芯片能做些啥

    在开发许多产品时许多工程师都会遇到以下问题,如:想驱动4位或10位的LED数码管显示,但是单片机的IO口不够用:要么更换IO口资源更多的MCU来控制,要么更换脚位丰富的单片机,这无疑在MCU上,加了1 ...

  8. IO口多路查理复用:三个单片机IO口控制六个LED

    简 介: 本文介绍了单片机的IO控制 LED 中的复用技术,特别查理复用基本原理和特点进行了介绍.使用一款IS31FL3731可以构成16×9的PWM亮度可控的 LED 矩阵. 关键词: 查理复用,C ...

  9. 测量ATMEGA8单片机IO口的输入输出内阻

    ➤ 01背景 在 电子小帮手电路中电源开关电路分析 中介绍测量模块电路实验原理的时候,对于ATmega系列的 单片机的输出端口进行了内部描述 .特别是对于端口做为IO输出口的时候,它可以等效为通过电阻 ...

  10. 单片机IO口模拟串口程序(发送+接收

    单片机IO口模拟串口程序(发送+接收)[转] qcmc 发表于 - 2011-6-23 0:42:00 前一阵一直在做单片机的程序,由于串口不够,需要用IO口来模拟出一个串口.经过若干曲折并参考了一些 ...

最新文章

  1. ajax更新,AJAX网址更新(AJAX URL update)
  2. 第二十二回  基础才是重中之重~ThreadStatic静态字段在每个线程里的唯一性
  3. Spring Boot 2.4.3、2.3.9 版本发布,你准备好了吗?
  4. html表格颜色sql,如何用SQL语句操作Table
  5. SqlHelper 数据库操作类2
  6. 我的2013 --岁月划过生命线(大二.上)
  7. curviloft插件怎么用_完结篇——你想要的逆天插件系列这里都有
  8. 巴基斯坦国立计算机与新科大学,新加坡四所大学和新科院学费全面上调
  9. 用计算机编码原理解释,编码原理
  10. c语言分号应用,问什么C程序里总是提示缺少分号;,而明明有分号?
  11. 基于Vue实现的魔方矩阵排列效果
  12. Excel双样本T检验之异方差检验
  13. 计算机进入pe快捷键,华硕笔记本电脑快捷键进入u盘启动教程
  14. python读取歌词文本,并显示在图片上,制作视频
  15. 在真正的短信网络钓鱼攻击内部
  16. 基于Web+App的快递公司物流管理信息系统设计与实现
  17. 【实习日记】实习第N天 从零开始搭建一个tiktok puppet(一)
  18. bootstrap导航窗格响应式二级菜单
  19. [CTFSHOW]命令执行
  20. VMware、配置VMware vSphere 6.0 vMotion、DRS、HA和FT

热门文章

  1. python高斯滤波和降噪_高斯滤波器和高斯滤波器中sigma与带宽的关系
  2. 如何准备互联网产品岗面试
  3. 软件人员kpi制定模板_软件科技公司绩效考核办法模板.doc
  4. 数据资料网站_更新......
  5. c++的内存问题---内存碎片
  6. MkDocs项目文档生成器(一)
  7. er ubnt x设置教程_ubnt edgerouter er-x 路由器怎么设置
  8. UCOS操作系统——任务内嵌信号量(十一)
  9. oracle awr报告 开关,【Oracle之AWR报告解析】
  10. Hadoop虚拟机镜像