新概念
51单片机C语言教程
----入门、提高、开发、拓展全攻略
郭天祥编著
电子工业出版社
例2.2.1 编写程序,点亮第一个发光二极管(part2_1.c P27 )
#include <reg52.h> //52系列单片机头文件
sbit led1=P1^0; //声明单片机P1口的第一位
void main() //主函数
{
led1=0; /*点亮第一个发光二极管*/
}
例2.2.2 编写程序,点亮P1口的若干二极管(part2_2.c P39 )
#include <reg52.h> //52系列单片机头文件
void main() //主函数
{
P1=0xaa;
//while(1);
}
例2.5.1利用for语句延时特性,编写第一个发光二极管以间隔1S亮灭闪动的程序(part2_3.c P42)
#include <reg52.h> //52系列单片机头文件
#define uint unsigned int //宏定义
sbit led1=P1^0; //声明单片机P1口的第一位
uint i,j;
void main() //主函数
{
while(1) //大循环
{
led1=0; /*点亮第一个发光二极管*/
for(i=1000;i>0;i--) //延时
for(j=110;j>0;j--);
led1=1; /*关闭第一个发光二极管*/
for(i=1000;i>0;i--) //延时
for(j=110;j>0;j--);
}
}
例2.6.1编写程序使第一个发光二极管以间隔500ms亮灭闪动。(part2_4.c P48)
#include <reg52.h> //52系列单片机头文件c编程网
#define uint unsigned int //宏定义
sbit led1=P1^0; //声明单片机P1口的第一位
void delay1s(); //声明子函数
void main() //主函数
{
while(1) //大循环
{
led1=0; /*点亮第一个发光二极管*/
delay1s(); //调用延时子函数
led1=1; /*关闭第一个发光二极管*/
delay1s(); //调用延时子函数
}
}
void delay1s() //子函数体
{
uint i,j;
for(i=500;i>0;i--)
for(j=110;j>0;j--);
}
例2.7.1编写程序使第一个二极管以亮200ms、灭800ms的方式闪动。(part2_5.c P49)
#include <reg52.h> //52系列单片机头文件
#define uint unsigned int //宏定义
sbit led1=P1^0; //声明单片机P1口的第一位
void delayms(uint); //声明子函数
void main() //主函数
{
while(1) //大循环
{
led1=0; /*点亮第一个发光二极管*/
delayms(200); //延时200毫秒
led1=1; /*关闭第一个发光二极管*/
delayms(800); //延时800毫秒
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}
例2.8.3利用C51自带库_crol_(),以间隔500ms,实现流水灯程序(part2_6.c P53)
#include <reg52.h> //52系列单片机头文件
#include <intrins.h>
#define uint unsigned int //宏定义
#define uchar unsigned char
void delayms(uint); //声明子函数
uchar aa;
void main() //主函数
{
aa=0xfe; //赋初值
while(1) //大循环
{
P1=aa;
delayms(500); //延时500毫秒
aa=_crol_(aa,1); //将aa循环左移1位后再赋给aa
}
}
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--) //i=xms即延时约xms毫秒
for(j=110;j>0;j--);
}
例3.2.1编写程序使第一个数码管显示8(part2.1_.1c P59)
#include <reg52.h> //52系列单片机头文件
sbit dula=P2^6; //申明U1锁存器的锁存端
sbit wela=P2^7; //申明U2锁存器的锁存端
void main()
{
wela=1; //打开U2锁存器
P0=0xFE; //送入位选信号
wela=0; //关闭U2锁存器
dula=1; //打开U1锁存器
P0=0x7F; //送入段选信号
dula=0; //关闭U2锁存器
while(1); //程序停止到这里
}
例3.2.2让实验板上6个数码管同时点亮,依次显示0到F,时间间隔为0.5ms,循环下去。(part2.1_2.c P61)
#include <reg52.h> //52系列单片机头文件
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6; //申明U1锁存器的锁存端
sbit wela=P2^7; //申明U2锁存器的锁存端
uchar num;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论