您的位置:首页 > 编程语言 > C语言/C++

单片机C语言常用微型程序———万能程序

2008-09-07 21:41 423 查看
1、 万能程序:
#include<reg52.h>
#define uchar unsigned char //宏定义
code uchar led[]={0x00,0x01, 0x05,0x01,0x02,0x03, 0x03};//定义数组
int i;
void delay(void)//延时函数
{for(i=0;i<19500;i++);}//12M晶振延时约19500x1us=0.195s
void main(void)//主程序
{
uchar a,b;
for(a=0;a<3;a++)//定义循环次数
{
for(b=0;b<44;b++)//循环数组内容
{P1=led[b]};//P1口显示
delay();延时
}
}
////////////////////////同上改进//////////////////
#include<reg52.h>
#define uchar unsigned char //宏定义
code uchar led[]={0x00,0x01,0x05,0x01,0x02,0x03,0x03};//定义数组
int i;
void delay()//延时函数
{
for(i=0;i<195;i++);
}//12M晶振延时约19500x1us=0.195s
void main()//主程序
{ while(1)
{
uchar a,b;
for(a=0;a<3;a++)//定义循环次数
{
for(b=0;b<8;b++)//循环数组内容
{
P1=led[b];//P1口显示

delay();
}
}
}
}
2、移位和跳转的使用程序
#include<reg52.h>
unsigned int i;//定义无符号整型
void delay(void)//延时函数
{for(i=0;i<39500;i++);}//12M晶振延时约39500x1us=0.395s
void main(void)//主程序
{
P1=0x7f;
LP: P3=0xfe;//LP加冒号,为跳转目的点
while(1)//表示一直为真,一直循环
{
delay();//延时
P3=P3<<1|P3>>7;//意思为左移一位或右移7位。
if(P3==0xdf)//如果P3等于0xdf,那么goto到LP点
{
delay();
goto LP;
}
}
}
3.8255并行输入输出端口芯片的使用-书28页
#include "reg52.h" //包函8051 内部资源的定义
#include <absacc.h>
#define PA8255 XBYTE[0XFEA0]
#define PB8255 XBYTE[0XFEA1]
#define PK8255 XBYTE[0XFEA3]
unsigned int i;
void delay(void)
{for(i=0;i<39000;i++);}
main()
{
PK8255=0x80;
PA8255=0X7F;
PB8255=0xfe;
while(1)
{
PB8255=PB8255<<1|PB8255>>7;
delay();
}
}
4、分段显示,(如:123456先显示12再显示34最后显示56)
一下为主要程序
while(1)
{
PB8255=PB8255<<1|PB8255>>7;
delay();
}
}

while(1)
{
for(b=0;b<16;b=b+2)
{for(c=1;d<2;d++)
{for(d=0;d<2;d++)
{
if(d==0)
{
P1=tab[b];
P3=0xfe;
}
else
{
P1=tab[b+1];
P3=0xfe;
}
}
}
}
5.数码管左移一组数据程序(书32页)
#include <reg52.h>
#define uchar unsigned char
code uchar led[]={0xff,0xff,0xff,0xff,0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xff,0xff,0xff};
int i,t;
delay(t)
{for(i=0;i<t;i++);}
main()
{
int a,b,c,d;
while(1)
{
for(a=0;a<16;a++)
{for(b=0;b<50;b++)
{P2=0xfe;
for(c=0;c<6;c++)
{P1=led[a+c];
delay(60);
P1=0xff;
P2=P2<<1|P2>>7;
}
}
}
}
}
6.ADC0809转换
#include <reg52.h>
#include <absacc.h>
#define uchar unsigned char
//#define AD0809 XBYTE[0xcfa0]
sbit START=P3^1;
sbit EOC=P3^3;
sbit LED=P3^0;
void main()
{
uchar a=153;
while(1)
{
START=1;
START=0;
while(!EOC);
if(P1>=a)
LED=1;
else
LED=0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐