- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)