单片机实验c语言编程Word文件下载.docx

上传人:b****6 文档编号:20036032 上传时间:2023-01-16 格式:DOCX 页数:14 大小:121.21KB
下载 相关 举报
单片机实验c语言编程Word文件下载.docx_第1页
第1页 / 共14页
单片机实验c语言编程Word文件下载.docx_第2页
第2页 / 共14页
单片机实验c语言编程Word文件下载.docx_第3页
第3页 / 共14页
单片机实验c语言编程Word文件下载.docx_第4页
第4页 / 共14页
单片机实验c语言编程Word文件下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机实验c语言编程Word文件下载.docx

《单片机实验c语言编程Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机实验c语言编程Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。

单片机实验c语言编程Word文件下载.docx

P3=temp;

//直接对I/O口P3赋值,使.P3.0输出低点平。

delay();

//延时

for(i=1;

i<

8;

i++)//实现灯的移动

temp=(temp<

<

1)|0x01;

//P3口I/O轮流低电平

//延时,肉眼可以看到

闪烁灯

发光二极管维持一闪一闪的状态。

regx51.H>

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

第一行是一个"

文件包含"

处理。

所谓"

是指一个文件将另外一个文件的内容全部包含进来,所以这里的程序虽然只有4行,但C编译器在处理的时候却要处理几十或几百行。

这里程序中包含REG51.h文件的目的是为了要使用P1这符号即通知C编译器,程序中所写的P1是指80C51单片机的P1端口而不是其它变量。

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

voiddelay02s(void)//延时0.2秒子程序

unsignedchari,j,k;

//定义3个无符号字符型数据。

for(i=20;

i>

i--)//作循环延时

for(j=20;

j>

j--)

for(k=248;

k>

k--);

voidmain(void)//每一个C语言程序有且只有一个主函数,

P3_0=0;

//I/O口P3.0输出低电平,小灯被点亮。

delay02s();

//延时经过0.2秒。

P3_0=1;

//I/O口P3.0输出高电平,小灯熄灭。

按键识别

按下开关,D1变亮并保持。

再按开关,D1熄灭,并保持。

C语言程序如下:

sbitINT_0=P3^2;

//定义按键的输入端注意此处按键判断使用的是扫

//描方式而表示中断判断方式

sbitD1=P3^0;

//D1小灯定义

voiddelay10ms(void)//延时程序

unsignedchari,j;

i--)

for(j=248;

j--);

key()/按键判断程序

if(INT_0==0)//判断是否按下键盘

delay10ms();

//延时,软件去干扰

if(INT_0==0)//确认按键按下

D1=!

D1;

//D1亮灭交替变化

while(INT_0==0);

//按键锁定,每按一次D1只变化一次.

main()

while

(1)//永远循环,扫描判断按键是否按下

key();

//对于此处CPU对按键判断一直扫描;

 

按键中断识别

一开始显示“0”,每按一次开关,显示的数字就加1。

AT89X51.H>

unsignedcharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

unsignedchardispcount=0;

//计数

sbitgewei=P3^1;

//个位选通定义

sbitshiwei=P3^0;

//十位选通定义

voidDelay(unsignedinttc)//延时程序

while(tc!

=0)

unsignedinti;

for(i=0;

i<

100;

i++);

tc--;

voidExtInt0()interrupt0//中断服务程序

dispcount++;

if(dispcount==100)

{dispcount=0;

}

voidLED()//LED显示函数

if(dispcount>

=10)//显示两位数

shiwei=1;

P2=table[dispcount/10];

Delay(8);

shiwei=0;

gewei=1;

P2=table[dispcount%10];

Delay(5);

gewei=0;

else//显示一位数

P2=table[dispcount];

voidmain()

{TCON=0x01;

//INT0为0电平触发为1负边沿触发

IE=0x81;

//开总中断和允许INT0外部中断

while

(1)//循环执行

{LED();

}//调用显示函数

4矩阵式键盘识别

按下不同的按键将显示不同的内容,从右到左,从上到下,按键分别代表 0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F.

regX51.H>

unsignedcharcodeseg7code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsignedchark;

voidGetch()

unsignedcharX,Y,Z;

P2=0xff;

P2=0x0f;

//先对P2置数行扫描

if(P2!

=0x0f)//判断是否有键按下

=0x0f)//确认按键按下;

X=P2;

//保存行扫描时有键按下时状态

P2=0xf0;

//列扫描

Y=P2;

//保存列扫描时有键按下时状态

Z=X|Y;

//取出键值

switch(Z)//判断键值(那一个键按下)

case0x77:

k=0;

break;

//对键值赋值

case0x7b:

k=1;

case0x7d:

k=2;

case0x7e:

k=3;

case0xb7:

k=4;

case0xbb:

k=5;

case0xbd:

k=6;

case0xbe:

k=7;

case0xd7:

k=8;

case0xdb:

k=9;

case0xdd:

k=10;

break;

case0xde:

k=11;

case0xe7:

k=12;

case0xeb:

k=13;

case0xed:

k=14;

case0xee:

k=15;

voidmain(void)

while

(1)

{P2=0xff;

Getch();

P3=seg7code[k];

//查表LED输出

P1=0xf0;

//输出相同的四位数据。

数码管动态显示

液晶显示器显示“1234”。

XX文库-让每个人平等地提升自我sbitqian=P1^0;

sbitbai=P1^1;

sbitshi=P1^2;

sbitge=P1^3;

codeunsignedcharseg7code[10]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f};

//显示段码

=0)//如果tc为0则终止延时

//局部正整数变量i

//执行400次将耗时1毫秒

//tc计数减一

voidLed(intdate)//显示函数

qian=0;

//P1.0输出低电平,选通千位数

P3=seg7code[date/1000];

//取出千位数,查表,输出。

Delay(10);

qian=1;

//销隐

bai=0;

//P1.1输出低电平,选通百位数

P3=seg7code[date%1000/100];

//取出百位数,查表,输出。

bai=1;

shi=0;

//P1.2输出低电平,选通十位数

P3=seg7code[date%100/10];

//取出十位数,查表,输出。

shi=1;

ge=0;

//P1.3输出低电平,选通十位数

P3=seg7code[date%10];

//取出个位数,查表,输出。

ge=1;

intdisplay_date=1234;

//定义并赋值要显示的数据

Led(display_date);

//调用显示函数显示数据display_date

数码管静态显示

液晶显示器最左边第一位将显示“4”

sbitGE=P1^3;

codeunsignedcharseg7code[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,

0x7d,0x07,0x7f,0x6f};

unsignedchardisplay_date=4;

P3=seg7code[display_date];

//查表,输出

GE=0;

//P1^3为低电平,相当于把数码管的4H端接地

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1