文档详情

2014年AT89C51单片机开发板程序.doc

发布:2017-09-02约1.18万字共23页下载文档
文本预览下载声明
AT89C51单片机开发板程序 1个LED数码管静态显示(0-9) includereg52.h #define uchar unsigned char #define uint unsigned int uchar i; uchar code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delay(uint z); void main() { while(1) { for(i=0;i10;i++) { P2=0xfe; P0=a[i]; delay(1000); } } } void delay(uint z) { uint x,y; for(x=z;x0;x--) for(y=122;y0;y--); } LED数码管显示(0-99) #includereg52.h unsigned char count,num; unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void main() { P2=0xfe; IE=0x82; TMOD=0x01; TCON=0x30; while(1); } void TOINT() interrupt 1 { TH0=0xd8;TL0=0xf0; if(P21)P1=table[num/10];else P1=table[num%10]; P2^=3; if(++count100)return; count=0; if(++num99)num=0; } 定时控制一只闪亮的灯 #includereg51.h #define uchar unsigned char #define uint unsigned int uint n; sbit led=P0^0; void main () { TMOD=0xf1; TMOD|=0x01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET0=1; TR0=1; while(1) { } } void timer0() interrupt 1 { TH0=(65536-10000)/256; TL0=(65536-10000)%256; n++; if(n==100) { n=0; led=~led; } } 用独立键盘显示LED数码管(1-4) #includereg52.h #define uchar unsigned char #define uint unsigned int uchar code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0xff}; void delay(uint z); void main() { uchar b,c; c=5; while(1) { P0|=0x0f; b=P0; b=0x0f; if(b!=0x0f) { delay(20); P0|=0x0f; b=P0; b=0x0f; if(b!=0x0f) { switch(b) { case 0x0e:c=1;break; case 0x0d:c=2;break; case 0x0b:c=3;break; case 0x07:c=4;break; default:c=0; } } } P1=0xfe; P2=a[c]; } } void delay(uint z) { uint x,y; for(x=z;x0;x--) for(y=122;y0;y--); } 用矩阵键盘显示LED数码管(0-9,A-F) #includereg52.h #define uint unsigned int #define uchar unsigned char uchar code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; void delay(uint z); sbit hang1=P0^3; sbit hang2=P0^2; sbit hang3=P0^1; sbit hang4=P0^0; void main() { uchar b,c; c=16; while(1) { hang1=0; hang2=1; hang3=1; hang4=1; P0|=0xf0; b=P0; b=0xf0; if(b!=0xf0) { delay(10); P0|=0xf0; b=P0; b=0xf0;
显示全部
相似文档