Keil与C语言常用程序文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
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
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
}
}