1、LED 例1:LED1和LED3点亮
#include<stc15f2k60s2.h>
void main(){
P2=0xA0;P0=0X00;P2=0X80;P0=0XFF;
while(1)
{
P00=0;
P02=0;
}
}
例2:LED1—LED8依次点亮
#include<stc15f2k60s2.h>
#define uchar unsigned char
uchar i;
void delay();
void main(){
P2=0xA0;P0=0X00;P2=0X80;P0=0XFF;
while(1)
{
for(i=0;i<8;i++)
{
delay();
P0=~(0X01<<i);
delay();
}
}
}
void delay(){
int k,j;
for(k=0;k<200;k++)
for(j=0;j<400;j++);
}
例3:LED1—LED8间隔点亮
#include<stc15f2k60s2.h>
#define uchar unsigned char
uchar i;
void delay();
void main(){
P2=0xA0;P0=0X00;P2=0X80;P0=0XFF;
while(1)
{
for(i=0;i<8;i=i+2)
{
delay();
P0=~(0X01<<i);
delay();
}
}
}
void delay(){
int k,j;
for(k=0;k<200;k++)
for(j=0;j<400;j++);
}
2、数码管 例1:位置显示题:DS1第三个位置显示数字9;
#include<stc15f2k60s2.h>
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
P2=0XC0;P0=0X04;P2=0XFF;P0=0XFF;
while(1)
{
P0=0X90;
}
}
例2:位置显示题:DS2第四个位置显示数字8;
#include<stc15f2k60s2.h>
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
P2=0XC0;P0=0X80;P2=0XFF;P0=0XFF;
while(1)
{
P0=0X80;
}
}
例3:DS1第一个位置依次显示数字1到9
#include<stc15f2k60s2.h>
#define uchar unsigned char
uchar code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
uchar i;
void delay();
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
P2=0XC0;P0=0X01;P2=0XFF;P0=0XFF;
while(1)
{
for(i=0;i<10;i++)
{
P0=tab[i];
delay();
}
}
}
void delay(){
int j,k;
for(j=600;j>0;j--)
for(k=600;k>0;k--);
}
3、独立按键 例1:按键S7控制LED实现流水灯
#include<stc15f2k60s2.h>
#define uchar unsigned char
#define uint unsigned int
uchar i;
void delay();
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
while(1){
if(P30==0)
{
for(i=0;i<9;i++)
{
delay();
P0=~(0X01<<i);
}
}
}
}
void delay(){
uint j,k;
for(j=300;j>0;j--)
for(k=300;k>0;k--);
}
例2:按键S7控制LED1,S6控制LED8
#include<stc15f2k60s2.h>
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
while(1){
if(P30==0)
{
P00=0;
P07=1;
}
if(P31==0)
{
P00=1;
P07=0;
}
}
}
4、矩阵按键 例1:S17控制LED1,S9控制LED8
分析:S17位置为(3x4),S9位置为(3x2)
#include<stc15f2k60s2.h>
#define uchar unsigned char
#define uint unsigned int
sbit r1=P3^0;
sbit r2=P3^1;
sbit r3=P3^2;
sbit r4=P3^3;
sbit c1=P4^4;
sbit c2=P4^2;
sbit c3=P3^5;
sbit c4=P3^4;
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
while(1)
{
r3=0;r1=r2=r4=1;
c1=c2=c3=c4=1;
if(!c4)
{
P00=0;
P07=1;
}
if(!c2)
{
P07=0;
P00=1;
}
}
}
5、定时器 例1:LED1到LED8间隔1s点亮
#include<stc15f2k60s2.h>
#define uchar unsigned char
#define uint unsigned int
void init_time0();
uint count=0,i=0;
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
init_time0();
while(1)
{
}
}
void init_time0()
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
ET0=1;
EA=1;
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==20)
{
P0=~(0X01<<i);
count=0;
i++;
if(i==8)
{
i=0;
}
}
}
6、外部中断 例1:使用外部中断INT0控制LED8;
#include<stc15f2k60s2.h>
void INT0_init();
sbit LED8=P0^7;
void main(){
P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
INT0_init();
while(1)
{
}
}
void INT0_init(){
EA=1;
EX0=1;
IT0=1;
}
void INT0_service() interrupt 0
{
LED8=~LED8;
}
|