单片机简单程序

上传人:xzh****18 文档编号:41474384 上传时间:2018-05-29 格式:DOC 页数:16 大小:60.50KB
返回 下载 相关 举报
单片机简单程序_第1页
第1页 / 共16页
单片机简单程序_第2页
第2页 / 共16页
单片机简单程序_第3页
第3页 / 共16页
单片机简单程序_第4页
第4页 / 共16页
单片机简单程序_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《单片机简单程序》由会员分享,可在线阅读,更多相关《单片机简单程序(16页珍藏版)》请在金锄头文库上搜索。

1、* 数码管动态显示 * #include #define uint unsigned int #define uchar unsigned char sbit dula=P37; uchar code table1=0,1,2,3,4,5,6,7; uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71; void delay(uint z); void main() uchar i=0; uchar num=0; while(1) P0=table

2、num; P2=table1i; delay(2); num+; i+; if(i=8) num=0;i=0 ; void delay(uint z) uint x,y; for(x=100;x0;x-) for(y=z;y0;y-); * 数码管静态显示 * #include #define uint unsigned int #define uchar unsigned charsbit dula=P37; sbit wela=P2; void delay(uint z); void main() wela=1; P2=0xf8; wela=0; dula=1; P0=0x71; dula

3、=0; while(1); void delay(uint z) uint x,y; for(x=100;x0;x-) for(y=z;y0;y-); * 流水灯 * #include #include #define uint unsigned int #define uchar unsigned char uchar a; uint i,j; void delay(uint); void main() a=0xfe; P0=a; while(1) a=_crol_(a,1); delay(600); P0=a; delay(600); void delay(uint z) uint x,y

4、; for(x=10;x0;x-) for(y=z;y0;y-); * 跑马灯 *#include #define LED P0 void delay() unsigned int i; for(i=0;i #define uint unsigned int #define uchar unsigned char #define wela P2 sbit dula=P37; sbit led=P00; uchar code table1=0,1,2,3,4,5,6,7; uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x

5、7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;void main() wela=1; P2=0xff; wela=1; dula=1; P0=0x71; dula=0; while(1); /*uchar i,num; while(1) wela=table1i; for(i=0;i #define uint unsigned int #define uchar unsigned char #define wela P2 sbit dula=P37; sbit led=P12; uchar i,num; uchar code table1=0xff,0xfe,0

6、xfd,0xfc,0xfb,0xfa,0xf9,0xf8; uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71; void delay(uint); void main() EA=1; EX0=1; IT0=1; while(1) wela=table1i; dula=1; P0=tablenum; delay(6000); dula=0; num+; i+; if(i=8) i=0; if(num=16) num=0; void delay(u

7、int z) uint x,y; for(x=10;x0;x-) for(y=z;y0;y-); void exter0() interrupt 0 led=0; * 定时器 * #include #define uint unsigned int #define uchar unsigned char #define wela P2sbit dula=P37; sbit led=P12; uchar i,num,tt; uchar code table1=0xff,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8; uchar code table= 0x3f,0x06,

8、0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71; void delay(uint); void main() tt=0; TMOD=0x01;/设置定时器 0 为工作方式 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1;/开定时器 0 中断 TR0=1; while(1) if(tt=4)tt=0;wela=table1i; dula=1; P0=tablenum; dula=0; num+; i+; if(i=8) i=0;

9、 if(num=16) num=0; void delay(uint z) uint x,y; for(x=10;x0;x-) for(y=z;y0;y-); void exter0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; tt+; * 矩阵键盘 * #include #define uint unsigned int #define uchar unsigned char sbit dula=P37; uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x

10、07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0; uchar num,temp,num1; uchar keyscan(); void delay(uint z) uint x,y; for(x=100;x0;x-) for(y=z;y0;y-); void main() num=17; P2=0xff; dula=1; P0=0; dula=0; P0=0xff;while(1) num1=keyscan(); dula=1; P0=tablenum1-1; dula=0; uchar keyscan() P1=0xfe; temp=P1; te

11、mp=temp while(temp!=0xf0) delay(5); temp=P1; temp=temp while(temp!=0xf0) switch(temp) case 0xe0:num=1;break; case 0xd0:num=2;break; case 0xb0:num=3;break; case 0x70:num=4;break; while(temp!=0xf0) temp=P1; temp=temp P1=0xfd; temp=P1; temp=temp while(temp!=0xf0) delay(5);temp=P1; temp=temp while(temp!

12、=0xf0) switch(temp) case 0xe0:num=5;break; case 0xd0:num=6;break; case 0xb0:num=7;break; case 0x70:num=8;break; while(temp!=0xf0) temp=P1; temp=temp P1=0xfb; temp=P1; temp=temp while(temp!=0xf0) delay(5); temp=P1; temp=temp while(temp!=0xf0) switch(temp) case 0xe0:num=9;break; case 0xd0:num=10;break

13、; case 0xb0:num=11;break; case 0x70:num=12;break; while(temp!=0xf0) temp=P1; temp=temp P1=0xf7; temp=P1; temp=temp while(temp!=0xf0) delay(5); temp=P1; temp=temp while(temp!=0xf0) switch(temp) case 0xe0:num=13;break; case 0xd0:num=14;break; case 0xb0:num=15;break; case 0x70:num=16;break; while(temp!

14、=0xf0) temp=P1; temp=temp return num; * 串行通信 * #include unsigned char flag,a; void main() TMOD=0x20;/设置定时器 1 为工作方式 2 TH1=0xfd;TL1=0xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; while(1) /*if(RI=1) RI=0; P0=SBUF; */ if(flag=1) ES=0; flag=0; SBUF=a; while(!TI); TI=0; ES=1; void ser() interrupt 4 RI=0; P0=SBUF; a=SBUF; fla

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号