单片机学习总结Word格式文档下载.docx
- 文档编号:22732148
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:27
- 大小:628.94KB
单片机学习总结Word格式文档下载.docx
《单片机学习总结Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机学习总结Word格式文档下载.docx(27页珍藏版)》请在冰豆网上搜索。
ORG0000H
MOVA,#0FEH
MAIN:
MOVP2,A
RRA
DJNZR1,L2
RET
流水灯从左到右,再从两边到中间,中间到两边:
MOVR2,#08
MOVR3,#08
LT1:
RLA
DJNZR2,LT1
LT2:
RRA
MOVP2,A
DJNZR3,LT2
MOVA,#07EH
MOVA,#0BDH
MOVA,#0DBH
MOVA,#0E7H
MOVA,#081H
MOVR0,#200
MOVR1,#200
定时器:
ORG0000H
AJMPMAIN
ORG001BH
AJMPTIME
ORG0030H
MOVA,#0FEH
MOVR1,#20
MOVTMOD,#10H
MOVTH1,#3CH
MOVTL1,#0B0H
SETBEA
SETBET1
SETBTR1
SJMP$
TIME:
DJNZR1,TIM
TIM:
MOVTH0,#3CH
MOVTL0,#0B0H
RETI
蜂鸣器实验:
ORG0000H
ORG0003H
CPLP1.0
CALLDELAY
JMPMAIN
DELAY:
MOVR0,#200H
MOVR1,#200H
C语言编程:
小灯从两边到中间,再从中间到两边:
voidmain(){init();
while
(1){if(a==20)
{D8=0;
}
if(a==40){
D7=0;
if(a==60){
D6=0;
if(a==80){
D5=0;
if(a==120){
D4=0;
if(a==140){
D3=0;
}if(a==160){
D2=0;
}if(a==180){
D1=0;
}if(a==200){
D1=1;
}if(a==240){
D2=1;
}if(a==280){
D3=1;
}if(a==320){
D4=1;
}if(a==340){
D5=1;
}if(a==360){
D6=1;
}if(a==400){
D7=1;
}if(a==420){
D8=1;
}
if(a==440)
{D5=1;
D4=1;
D6=1;
D3=1;
D7=1;
D2=1;
D8=0;
D1=10;
if(a==460){
D7=0;
D2=0;
D8=1;
D1=1;
if(a==480){
D6=0;
D3=0;
if(a==500){
D4=0;
if(a==520){
if(a==540){
}if(a==560){D1=0;
}
if(a==580){a=0;
}}}
voidtember0()interrupt1
{TH0=0x3C;
TL0=0xB0;
a++;
小灯从左到右,右到左,两边到中间,中间到两边:
#include"
reg52.h"
#include"
intrins.h"
unsignedinti,j,temp,aa;
voidDelay_ms(unsignedintz)
{
unsignedintx,y;
for(x=z;
x>
0;
x--)
for(y=123;
y>
y--);
voidmain()
{
aa=200;
while
(1)
{P2=0xfe;
Delay_ms(aa);
P2=0xfd;
P2=0xfb;
P2=0xf7;
P2=0xdf;
P2=0xbf;
P2=0x7f;
P2=0xfe;
P2=0x07;
P2=0xBD;
P2=0xDB;
P2=0xE7;
P2=0x7E;
P2=0x81;
}
//#include"
INIT.h"
#defineuintunsignedint
#defineucharunsignedchar
sbitD8=P2^7;
uinta,b;
voidinit()
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
init();
{
if(a==20)
{
//a=0;
D8=0;
}
if(a==40)
a=0;
D8=1;
}
voidtimer0()interrupt1
74HC164的使用:
74HC164的驱动和应用
74HC164的几点说明:
1.74HC164是串行输入,并行输出的;
2.它的并行输出其实是有延时的,只是延时时间小,可以认为是并行输出;
74hc164封装和真值表:
真值表中文解释说明:
H-高电平L-低电平X-任意电平↑-低到高电平跳变(上升沿有效)
QA0,QB0,QH0-规定的稳态条件建立前的电平
QAn,QGn-时钟最近的↑前的电平
看真值表的第三条和第五条:
就可以知道,在保持clear为Hclock为↑状态下,AB都为H时,移位寄存器移入H,而当移位寄存器移入L时,必须令B为L,而A不受约束。
所以可以把AB断相连再接入单片机数据端口。
还有一种是A脚直接接高电平,B脚连入单片机数据端(P2_7)
电路仿真图:
#include<
regx51.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
ucharch;
sbitDAT=P2^7;
sbitCLK=P2^6;
charcodeseg[16]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee};
如:
00000011移位以后为11000000*/
voiddelay(uintms)
uchari;
for(;
ms!
=0;
ms--)
for(i=0;
i<
250;
i++)
_nop_();
voidsendchar(ch)
uchari;
8;
i++){
DAT=ch&
0x01;
//P2_7=0000000x
CLK=0;
CLK=1;
ch>
>
=1;
voidmain(void)
uintm=0;
while
(1)
{
sendchar(seg[m]);
if(++m==11)m=0;
delay(200);
ULN2003使用:
高耐压、大电流达林顿管IC—ULN2003
概述与特点
ULN2003是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成。
编辑本段特点
该电路的特点如下:
ULN2003的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTL和CMOS电路
直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还
可以在高负载电流并行运行。
ULN2003采用DIP—16或SOP—16塑料封装。
方框图
ULN2003芯片引脚图
ULN2003芯片引脚介绍
引脚1:
CPU脉冲输入端,端口对应一个信号输出端。
引脚2:
CPU脉冲输入端。
引脚3:
引脚4:
引脚5:
引脚6:
引脚7:
引脚8:
接地。
引脚9:
该脚是内部7个续流二极管负极的公共端,各二极管的正极分别接各达林顿管的集电极。
用于感性负载时,该脚接负载电源正极,实现续流作用。
如果该脚接地,实际上就是达林顿管的集电极对地接通。
引脚10:
脉冲信号输出端,对应7脚信号输入端。
引脚11:
脉冲信号输出端,对应6脚信号输入端。
引脚12:
脉冲信号输出端,对应5脚信号输入端。
引脚13:
脉冲信号输出端,对应4脚信号输入端。
引脚14:
脉冲信号输出端,对应3脚信号输入端。
引脚15:
脉冲信号输出端,对应2脚信号输入端。
引脚16:
脉冲信号输出端,对应1脚信号输入端
reg51.h>
ucharcodetable[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
ucharcodetable1[]={0xfc,0x60,0xda,0xf2,0x66};
uintNum,Num1,Num2;
sbitK1=P2^0;
sbitK2=P2^1;
sbitK3=P2^2;
sbitK4=P2^3;
sbitCLK=P1^5;
sbitDBA=P1^6;
voidSend(ucharDAT)
{uintx;
for(x=8;
{DBA=DAT&
DAT=DAT>
1;
voidTime0_Init()
{TMOD=0x01;
{K1=0;
K2=0;
K3=0;
K4=0;
Time0_Init();
while
(1);
voidtime0()interrupt1
{TH0=(65536-50000)/256;
Num++;
if(Num>
20)
{Num1++;
Send(table1[Num2]);
Send(table[Num1]);
if(Num1>
10)
{Num2++;
if(Num2==1){K1=1;
K2=0;
K3=0;
K4=0;
if(Num2==2){K1=0;
K2=1;
if(Num2==3){K1=0;
K3=1;
if(Num2==4){K1=0;
K4=1;
if(Num2>
3)
{Num2=0;
}
Num1=0;
Num=0;
}}
数码管动态分析:
#defineuncharunsignedchar
sfrScand_Com=0x09;
sfrScand_Com=0xA0;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}
uintNum,Num1;
voidDelay_ms(uintz)
{ucharx,y;
for(x=z;
for(y=110;
voidwrite_date(ucharadd,uchardate)
{scan_com=add;
Date_com=table[date];
{Time0_Init();
{write_Date(0x01,Num);
Delay_ms(100);
write_Date(0x02,Num);
write_Date(0x03,Num);
write_Date(0x04,Num);
write_Date(0x05,Num);
write_Date(0x06,Num);
write_Date(0x07,Num);
write_Date(0x08,Num);
}}
voidTime0()interrupt1
if(Num=19)
if(Num1==9)
{Num1=0;
数码管定时间:
#include<
reg52.h>
sfrScan_Com=0x90;
sfrDate_Com=0xA0;
ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uintNum,Num1,Num2,Num4,Num5,Num7,Num8,Num9;
uintx,y;
for(y=110;
voidWrite_Date(ucharadd,uchardate)
Scan_Com=add;
Date_Com=table[date];
Num8=1,Num7=4,Num5=0,Num4=4,Num2=0,Num1=0;
{
Write_Date(0x01,Num1);
Delay_ms
(2);
Write_Date(0x02,Num2);
Scan_Com=0x04;
Date_Com=0x40;
Write_Date(0x08,Num4);
Write_Date(0x10,Num5);
Scan_Com=0x20;
Write_Date(0x40,Num7);
Write_Date(0x80,Num8);
if(Num>
20){Num1++;
Num=0;
9){Num2++;
Num1=0;
if(Num2>
5){Num4++;
Num2=0;
if(Num4>
9){Num5++;
Num4=0;
if(Num5>
5){Num7++;
Num9++;
Num5=0;
if(Num7>
9){Num8++;
Num7=0;
if(Num9==24){Num8=0;
Num9=0;
接触开关:
#defineuintunsignedint
#defineucharunsignedchar
sbitLed=P2^0;
sbitK2=P1^1;
voidDelay_ms(uint
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 学习 总结