首页 单片机最小系统

单片机最小系统

举报
开通vip

单片机最小系统单片机最小系统扩展部分 4.2.1 LED电路 图4.2.1 LED电路图 图4.2.1中主要元件有1K的排阻、LED、。1K的排阻为每个LED的限流电阻。此最小系统提供了8个独立LED,由P1口控制,采用共阳级接法所以只有当P1口输出低电平时LED才会点亮。 时间间隔为1000ms的循环左移流水灯参考程序。 #include #include unsigned char a,b,k,j,x; void delayms(uint x) { for(a=x;a>0;a--) for(b=110;b>0;b--...

单片机最小系统
单片机最小系统扩展部分 4.2.1 LED电路 图4.2.1 LED电路图 图4.2.1中主要元件有1K的排阻、LED、。1K的排阻为每个LED的限流电阻。此最小系统提供了8个独立LED,由P1口控制,采用共阳级接法所以只有当P1口输出低电平时LED才会点亮。 时间间隔为1000ms的循环左移流水灯参考程序。 #include #include unsigned char a,b,k,j,x; void delayms(uint x) { for(a=x;a>0;a--) for(b=110;b>0;b--); } void main() { k=0xfe; while(1) { P1=k; delayms(1000); j=_crol_(k,1); k=j; P1=j; } } 4.2.2 蜂鸣器电路 图4.2.2 蜂鸣器电路图 图4.2.2中蜂鸣器使用的是PNP三极管进行驱动控制的,此蜂鸣器为电磁式有源蜂鸣器。三极管的集电极通过蜂鸣器接5V电源,基极是控制端,发射极接地,当单片机的P2.3输出低电平时,三极管导通,蜂鸣器发声。蜂鸣器为感性原件,也可以在两端并接一个二极管来起到泄放作用。 控制蜂鸣器发出滴滴声的参考程序。 #include unsigned char a,b; sbit beep=P2^3; void delayms(uint x) { for(a=x;a>0;a--) for(b=110;b>0;b--); } void main() { while(1) { delayms(100); beep=0; delayms(100); beep=1; } } 4.2.3 系统的数码管电路 图4.2.3 数码管电路图 如图4.2.3所示,多位数码管的“位选”是可以独立控制的,而“段选”是连接在一起的,可以用作数码管的动态显示和静态显示。图4.2.3中所示的数码管全部为共阴极的数码管。74HC573为所存器,利用单片机可以控制所存器的所存端,进而控制锁存器的数据输出,利用分时控制的方法可以方便地控制任意数码管显示任意数字。 使用软件延时实现0~59秒的计数器。 #include #define uchar unsigned char uchar j,k,i,a,A1,A2,second; sbit dula=P2^6; sbit wela=P2^7; uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void delay(uchar i) { for(j=i;j>0;j--) for(k=125;k>0;k--); } void display(uchar sh_c,uchar g_c) { dula=0; P0=table[sh_c]; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(5); P0=table[g_c]; dula=1; dula=0; P0=0xfd; wela=1; wela=0; delay(5); } void main() { while(1) { second++; if(second==60) second=0; A1=second/10; A2=second%10; for(a=50;a>0;a--) {    display(A1,A2);}; } } 4.2.4 系统的键盘电路 图4.2.4 独立和矩阵键盘电路图 图4.2.4中S2-S3为4个独立按键,与单片机的P3.4-P3.7分别相连。 独立键盘与单片机相连时,每个按键都需要单片机的一个I/O口,若按键较多时,占用的I/O口资源就会过多,为此就引入了矩阵键盘。图4.2.4中是将16个按键排成4行4列,这样一共有8根线,节省了8个I/O口。S6-S21即为16个矩阵键盘,8条线分别与单片机飞P3口相连。 (1)单键识别参考程序 每按一次S2,P1口的LED下移一位。 #include sbit BY1=P3^4; unsigned char count; unsigned char temp; unsigned char a,b; void delay10ms(void) { unsigned char i,j; for(i=20;i>0;i--) for(j=248;j>0;j--); } key()          { if(BY1==0)  { delay10ms(); if(BY1==0)  { count++;    if(count==8) { count=0;    } } while(BY1==0); } } move()        { a=temp<>(8-count); P1=a|b; } main() { count=0; temp=0xfe; P1=0xff; P1=temp; while(1)  { key();    move();  } } (2)矩阵键盘识别 依次按下键盘上的S6~S21,同时在数码管上显示0~F。 #include sbit beep=P2^3; sbit dula=P2^6; sbit wela=P2^7; unsigned char i=100; unsigned char j,k,temp,key; void delay(unsigned char i) { for(j=i;j>0;j--) for(k=125;k>0;k--); } unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; display(unsigned char num) { P0=table[num]; dula=1; dula=0; P0=0xc0; wela=1; wela=0; } void main() { dula=0; wela=0; while(1) { P3=0xfe; temp=P3; temp=temp&0xf0; if(temp!=0xf0) { delay(10); if(temp!=0xf0) { temp=P3; switch(temp) { case 0xee: key=0; break; case 0xde: key=1; break; case 0xbe: key=2; break; case 0x7e: key=3; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; beep=0; } beep=1; display(key); P1=0xfe; } } P3=0xfd; temp=P3; temp=temp&0xf0; if(temp!=0xf0) { delay(10); if(temp!=0xf0) { temp=P3; switch(temp) { case 0xed: key=4; break; case 0xdd: key=5; break; case 0xbd: key=6; break; case 0x7d: key=7; break; } while(temp!=0xf0) {
本文档为【单片机最小系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_421808
暂无简介~
格式:doc
大小:33KB
软件:Word
页数:0
分类:互联网
上传时间:2019-09-04
浏览量:12