Keil与C语言常用程序文件

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在个人的单片机开发板c语言程序及模块设计总结

目录

Keil 软件的使用................................................. 错误!未定义书签。*LED 显示输出* (2)

一. 闪烁灯 (3)

二.广告灯的左移右移 (4)

三. 按键识别 (7)

四.数码管动态显示 (8)

五.4×4 矩阵式键盘识别 (11)

六.按键中断识别 (12)

七.定时器 T0 的应用---9.9 秒计时设计 (14)

八.利用定时器产生乐曲 (16)

九.数摸转换 ADC0804 的应用 (19)

十.摸数转换 DAC0832的应用 (28)

十一.24CO8 的读写操作 (30)

十二.PC 机与单片机通信(RS232 协议) (34)

十三.DS18B20 测量温度系统 (36)

十四.128X64 液晶显示器的基本应用 (40)

十五.标准键盘 PS/2与单片机通信 (43)

十六,128X64无字库液晶4X4键盘输入使用(密码锁) (46)

十七、串口下载线 (53)

*LED 显示输出*

很明显,要点亮使发光二极管,必须使单片机的I/O口P1.0输出低电平。于是我们的任务就是编程序使P1.0输出地电平。

#include /*LED 显示输出具体口输出*/

sbit P1_0=P1^0; /*定义p1.0为p1_0 */

sbit P1_1=P2^1; /*定义p2.1为p1_1 */

sbit P1_2=P3^2;/*定义p3.2为p1_2 */

sbit P1_3=P0^3;/*定义p0.3为p1_3 */

main()

{

P1_0=0;/*输出高电平即:灯亮 */

P1_1=0;

P1_2=0;

P1_3=0;

}

#include /* LED 显示输出整体输出*/

main()

{

P1=0;/*输出高电平 */

P2=0;

P3=0;

P0=0;

AT89S52单片机从简单到复杂程序演示。

一. 闪烁灯

[实验任务]

在 P1.0 端口上接一个发光二极管 L1,使 L1 在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。

[硬件电路]

与上面点亮小灯的连接完全相同。

#include /*闪烁灯*/

del() /*延时0.2秒*/

{

unsigned char i,j,k;

for(i=20;i>0;i--)

for(j=20;j>0;j--)

for(k=248;k>0;k--);

}

sbit P1_0=P1^0;

main()

{

while(1)/*永远为真,一直执行下去*/

{

P1_0=0;

del();

P1_0=1;

del();

}

}

#include "reg52.h"

//#define uchar unsigned char

//#define uint unsigned int

sbit P10=P1^0;

void mDelay(unsigned int Delay)

{ unsigned int i;

for(;Delay>0;Delay--)

{ for(i=0;i<124;i++)

{;}

}

}

void main()

{ for(;;)

{ P10=!P10; //取反 P1.0

mDelay(1000); //延时1秒。如果是2000那么是2秒

}

}

二.广告灯的左移右移

[实验任务]

做广告灯的左移右移,八个发光二极管分别接在单片机的P3.0-P3.7接口

上,输出“0”时,发光二极管亮,开始时P3.0→P3.1→P3.2→P3.3→┅→P3.7 →P3.6→┅→P3.0亮,重复循环。(当然,四个输出口可以同时实现广告灯)[硬件电路]

#include /*广告灯的左移右移*/

unsigned char i;

unsigned char temp;

unsigned char a,b;

delay()//延时程序

{unsigned char m,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

main()

{

while(1)

{

temp=0xfe;

P3=P2=P0=P1=temp;//直接对1/0口p3赋值,使批p3.0输出低电平。delay();//延时

for(i=1;i<8;i++)//实现广告灯的从右到左移动

{

a=temp<

b=temp>>(8-i);

P3=P2=P0=P1=a|b;

delay();

}

for(i=1;i<8;i++)//实现广告灯的从左到右移动

{

a=temp>>i;

b=temp<<(8-i);

P3=P2=P0=P1=a|b;

delay();

}

}

} 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

#include "reg52.h"

#include "intrins.h"

#define uchar unsigned char

#define uint unsigned int

void mDelay(unsigned int Delay)

{ unsigned int i;

for(;Delay>0;Delay--)

{ for(i=0;i<124;i++)

{;}

}

}

void main()

{ unsigned char OutData=0xfe;

for(;;)

{

P1=OutData;

OutData=_crol_(OutData,1); // 循环左移

mDelay(1000); // 1000延时1s

}

}

相关文档
最新文档