郭天祥51单片机笔记浅析.docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1) 二极管 导通电流I:3mA-10mA;导通压降v:1.7V。 (排阻计算公式:R = VCC(5V)-v(1.7V)/I(3mA) )。 2) 电源指示灯 开关电源:内部有开关控制电流大小,不稳定。 去耦电容:稳压,去波。 3) 锁存器(74HC573) OE:OutEnable,低电平有效(必须为低电平)。 输入端:OE(1),LE(11锁存端diola),D(D0(2)-D7(9),一般接P1^0-P1^7)。 输出端:Q(1Q-8Q)。 Z:高阻状态,非高非低电瓶。 LE:为高时,Q端与D同变换;为低电平时,Q端保持上次状态。 sbit LED00 = 0x80; //位指针;指针大小占一个字节;指针控制一个位的值; sfr LED0 = 0x80; //字节指针;指针大小占一个字节;指针控制一个字节的值; 4)51库函数 头文件: #include intrins.h 函数: unsigned char _crol_(unsigned char c, unsigned char b); 描述:The _crol_ routine rotates the bit pattern for the character c left b bits. This routine is implemented as an intrinsic function. The _crol_ routine returns the rotated value of c. 5) 蜂鸣器 名称:b:基极;C:集电极;e:发射集; 原理:e极发射电子;当b极接低电平时,ce导通,并且放大电流;当b接高电平时,ce截止。 JPFMQ接P3.6管脚。 分类:有源蜂鸣器;无缘蜂鸣器。(源:震荡源) Proteus:buzzer-有源;sounder、speaker-无源。 端口电压:0.02v。 6) 数码管 P0管脚:没有上拉电阻,所有有三态。 P1、P2、P3管脚:有上拉电阻,没有三态。 分类:共阴极;共阳极。 显示方法:静态,动态。 段选:P0.0-P0.7。 位选:P2.0-P2.7。 7)继电器 接口:P3.7。 D4:引流二极管,防止断电烧坏电炉原件。 8)独立键盘 K1-K4:P3.2-P3.5。 K5-K8:P1.4-P1.7。 独立键盘检测程序: #include reg52.h void main() { while(1) { if(K1 == 0) { delay(20);//大约延时10-20ms if(K1 == 0) { //确独立按键K1按下 } } while(!K1);//确认为一次动作 } } 9)4*4矩阵键盘 行线:P1.0-P1.3。 竖线:P1.4-P1.7。 优点:占用端口少,硬件电路简单。 缺点:编程较复杂。 矩阵键盘的检测方法:扫描法和线反转法。 程序实例: 1) 扫描法 #include reg52.h #define uchar unsigned char #define uint unsigned int uchar i,j,temp_num,num = 16; uchar code scan[] = {0xfe,0xfd,0xfb,0xf7};//1111 1110 - 1111 0111 uchar code coding[][4] = { //扫描码 0xee,0xde,0xbe,0x7e, 0xed,0xdd,0xbd,0x7d, 0xeb,0xdb,0xbb,0x7b, 0xe7,0xd7,0xb7,0x77 }; uchar code num_code[] = { 0xc0,0xf9,0xa4,0xb0,//数码管0-16编码 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e, 0xfe}; void delay(uint k) //延迟函数 { uint data i,j; for(i=0;ik;i++) {for(j=0;j180;j++) {;}} } void main

文档评论(0)

花仙子 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档