173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

51单片机电路设计教程

htxw 2023-03-14 资讯中心 18 ℃

跪求单片机课程设计 要完全呦

题 目:单片机课程设计报告

目 录

一、设计目的

二、程设计具体要求

三、单片机发展简史

四、8051单片机系统简介

五、8051单片机内部定时器/计数器简介

六、程序电路

七、程序流程

八、程序代码

九 实验总结-要求写出完整的论文以及心得体会

十 参考资料及小结

原 文 : 一.目的

1. 进一步熟悉和掌握8051单片机的结构及工作原理。

2. 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

3. 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。

4. 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。

5. 通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。

二.课程设计的体要求

a) 原理图设计。

1. 原理图设计要符合项目的工作原理,连线要正确,端了要不得有标号。

2. 图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。

3. 原理图要完整,CPU,外围器件,扩器接口,输入/输出装置要一应俱全。

b) 程序调计

1. 根据要求,将总体项能分解成若干个子功能模块,每个功能模块完成一个特定的功能。

2. 根据总体要求及分解的功能模块,确定各功能模块之间的关系,设直出完整的程序流程图。

c) 程序调试将设计完的程序输入,汇编,排除语法错误,生成*OBJ文件。

1. 按所设计的原理图,在实验平台上连线,检查无误。

2. 将汇编后生成的*OBJ文件传送到实验装置的,执行该程序,检查该程序、是否达到设计要求,若未达到,修改程序,直到达到要求为止,

d) 说明书

1. 原理图设计说明

简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。

2. 程序设计说明

对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。

3. 画出工作原理图,程序流程图并给出程序清单。

目前,单片机已广泛应用到图民经济建设和日常生活的许多领域,成为测控技术现代化必不可少的重要工具。下面介绍一本单片机课程设计的好书,介绍了很多实例有兴趣者可以去买哦,价格不贵【图书目录】 - 8051单片机课程设计实训教材

第1章 绪论

1.1 课程设计所需硬件工具

1.2 专题制作所需软件使用工具

1.3 8051程序开发测试平台

1.4 使用免费汇编编译器

1.5 89CXX烧录模拟器操作实例

1.6 自制8051微电脑单板IO51

1.7 IO51操作实例

1.8 以Windows98 工作模式结合DOS模式来执行

第2章 8051单片机课程设计中的基本软硬件设计

2.1 8051各种基本的硬件设计

2.2 工作指示灯LED

2.3 8051延迟时间计算

2.4 基本按键设计

2.5 建立8051通信接口

2.6 简易8051调试界面

2.7 压电喇叭测试

2.8 键盘扫描

2.9 扫描控制七段显示器

2.10 LCD接口控制

2.11 8051定时器模式的工作

2.12 定时器模式0测试

2.13 定时器模式1测试

2.14 定时器模式2测试

2.15 以定时器产生各种频率的声音

2.16 以定时器演奏—段旋律

第3章 带单片机的LCD时钟

第4章 定时闹铃

第5章 定时闹铃LCD

第6章 音乐倒数定时器

第7章 密码锁控制

第8章 可存储式电子琴

第9章 8051八音盒

第10章 红外线遥控器研究

10.1 红外线遥控器动作原理

10.2 如何观察红外线遥控器信号

10.3 红外线遥控器译码功能说明

第11章 红外线家电遥控

第12章 8051伺服机控制

12.1 伺服机工作原理及改装

第1.3章 8051伺服车控制

13.1 功能说明

13.2 伺服车组装及实验

第14章 红外线遥控伺服车

14.1 功能说明

14.2 遥控伺服车组装及实验

14.3 控制电路

14.4 控制程序

第15章 无线电家电遥控

15.1 功能说明

15.2 遥控编码解码控制

第16章 8051声控设计

16.1 声控基本知识介绍

16.2 系统组成

16.3 声控模块介绍

16.4 基本控制电路

16.5 基本控制程序

16.6 声控课题设计

附录H 如何使用KEIL 8051开发系统汇编和编译程序及调试

附录I EPM89 890XX烧录模拟器特性

附录J 1051 8051 10控制板特性

附录K VCMM声控模块特性

附录L IO51控制板完整电路图

附录M 需要从网站下载的相关资料的使用说明

附录N 硬件接口板版权声明及如何订购

附录A 简易稳压电源制作

附录B 本书实验所需软硬件工具及零件

附录C 8051内部控制寄存器介绍

附录D 8051指令集

附录E 如何自制8051单板

附录F 课程设计报告参考内容

附录G IO51控制板窗口版驱动程序使用说明

用51单片机设计一个电子钟

巧了,国亲无聊做了一个玩玩,给你看看把,其实电子钟挺简单的,下面是程序:

#includereg52.h

#define uchar unsigned char

#define uint unsigned int

sbit ch=P3^2;

sbit key=P3^5;

sbit key1=P3^4;

uchar t0,numn,numy,numr,nums,numf,numm,sw,w,q,b,s,g,sw1,w1,q1,b1,s1,g1,rq,temp,x;

uint u;

void init();

void display(uchar,uchar,uchar,uchar,uchar,uchar);

void delay(uint z)

{

uint x,y;

for(x=z;x0;x--)

for(y=70;y0;y--);

}

void main()

{

init();

while(1)

{

if(rq==1)

{

if(rq==1)

display(sw,w,q,b,s,g);

}

else if(rq==2)

{

if(rq==2)

display(sw1,w1,q1,b1,s1,g1);

}

else if(rq==3)

{

if(rq==3)

display(w,w,w,w,w,w);

}

else if(rq==4)

{

uchar i;

temp=0x01;

for(i=0;i8;i++)

{

P1=~temp;

delay(100);

temp=1;

}

temp=0x80;

for(i=0;i8;i++)

{

P1=~temp;

delay(100);

temp=1;

}

temp=0x01;

for(i=0;i8;i++)

{

P1=temp;

delay(100);

temp=1;

}

temp=0x7F;

for(i=0;i8;i++)

{

P1=temp;

delay(100);

temp=1;

}

}

else

rq=1;

}

}

void init()

{

rq=1;

x=1;

nums=22;

numf=0;

numm=0;

numn=9;

numy=10;

numr=15;

TMOD=0x11;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

IT0=1;

IT0=2;

EA=1;

EX0=1;

EX1=1;

ET0=1;

TR0=1;

ET1=1;//IE=0x82 //CPU开中断,CT0开中断

}

void timer0() interrupt 1

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

t0++;

if(key==0)

{

delay(50);

if(key==0)

{

x++;

while(key==0);

}

}

if(x==2rq==1)

{

//P0=0xf3;

if(key1==0)

{

numf++;

while(key1==0);

}

}

else if(x==3rq==1)

{

// P0=0xfc;

if(key1==0)

{

nums++;

while(key1==0);

}

}

else if(x==2rq==2)

{

// P0=0xcf;

if(key1==0)

{

numr++;

while(key1==0);

}

}

else if(x==3rq==2)

{

// P0=0xf3;

if(key1==0)

{

numy++;

while(key1==0);

}

}

else if(x==4rq==2)

{

// P0=0xfc;

if(key1==0)

{

numn++;

while(key1==0);

}

}

else

{

x=1;

}

if(t0==20)

{

t0=0;

numm++;

}

if(numm==60)

{

numm=0;

numf++;

}

if(numf==60)

{

for(u=500;u0;u--)

{

bell=0;

delay(1);

bell=1;

delay(1);

}

numf=0;

nums++;

}

if(nums==24)

{

nums=0;

numr++;

}

if(numr==30)

{

numr=0;

numy++;

}

if(numy==12)

{

numy=0;

numn++;

}

if(numn==100)

{

numn=0;

}

g=numm%10;

s=numm/10;

b=numf%10;

q=numf/10;

w=nums%10;

sw=nums/10;

g1=numr%10;

s1=numr/10;

b1=numy%10;

q1=numy/10;

w1=numn%10;

sw1=numn/10;

}

void exert0() interrupt 0

{

delay(50);

rq++;

while(ch==0);

}

void t0int() interrupt 3

{

TR1=0;

bell=!bell;

TH1=timer0h;

TL1=timer0l;

TR1=1;

}

void exert1() interrupt 2

{

rq=100;

}

void display(uchar sw,uchar w,uchar q,uchar b,uchar s,uchar g)

{

P2=tabdu[sw];

P0=tabwe[0];

delay(5);

P0=0xff;

P2=tabdu[w];

P0=tabwe[1];

delay(5);

P0=0xff;

P2=tabdu[q];

P0=tabwe[2];

delay(5);

P0=0xff;

P2=tabdu[b];

P0=tabwe[3];

delay(5);

P0=0xff;

P2=tabdu[s];

P0=tabwe[4];

delay(5);

P0=0xff;

P2=tabdu[g];

P0=tabwe[5];

delay(5);

P0=0xff;

}

下面这个是电路图,图我没有画啊,不过我用仿真去做,应该跟电路图差不多了,你可以参考下,可以实现流水灯,闹铃,日期,时间,等功能,上面给你的是按照你的要求,另外我懒得改了所以多了个功能就是可以看日期,你看上面的程序,第一个按钮ch,按一下查看日期,再按一下查看温度(被删了,随机现在是随机显示一个数字),再按一下是流水灯,再按一下又回到时间,另外两个键key/key1;按key是选择锁定分还是时,如果你当前显示的是日期的话就是顺序锁定日,月,年,按key1调整,图上显示的是22点00分09秒,就这样了

设计方案的话..........呵呵,AT89S52+6个数码管+11.0592晶振+2个30P电容+3个按钮+1个10UF电容如图连接,你自己去写方案把,分数给那么少,就只帮你那么多了

51单片机时钟程序设计

朋友以下是本人历时一个月殚精竭虑自主开发的一个8位51单片机时钟程序,望吾之兄弟姐妹习之,此程序乃采用一键控制,通过感知按下键持续时间的长短来进行调整时间,闹铃,6只共阳数码管输出显示,此外还包括整点铃声功能,在看程序之前我先交代一下运行该程序的硬件要求:12M晶振,P0端口驱动显示,P2.0到P2.5控制显示扫描,P2.7输出铃声,注意:铃声功放三极管应采用pnp管。以下是该程序:

ORG 00H

SETB TR0

JMP START

ORG 000BH

LJMP T0

START: MOV IE,#82H

MOV TMOD,#01H

MOV DPTR,#TAB

MOV SP,#60H

MOV 20H,#0

MOV R0,#0

MOV R1,#0

MOV R2,#0

MOV R3,#0

MOV R4,#0

MOV R5,#0

MOV R6,#0

MOV R7,#0

MOV 50H,#0

MOV 51H,#0

MOV 52H,#0

MOV 53H,#0

MOV 54H,#0

MOV 55H,#0

MOV A,TL0

ADD A,0B5H

MOV TL0,A

MOV TH0,#3CH

LOOP: ANL 20H,#08H

UNSV: MOV R1,#0

LCALL DISPLAY

JB 03H,LOP1

LCALL SOUND

LCALL HDLY

LOP1: MOV P3,#0FEH ;按键监视

MOV A,P3

CJNE A,#0FEH,LOP2

MOV R1,#0

JMP LOOP

LOP2: MOV R1,#2 ;误按判断

LOP3: LCALL HD

DJNZ R1,LOP3

JNB 04H,LOOP

CLR 04H

LOP4: INC R1

MOV C,00H ;调秒

CPL C

MOV 00H,C

LCALL HDLY

CJNE R1,#40,LOP5

JMP LOOP

LOP5: JNB 05H,LOP4

CLR 05H

MOV R1,#0

LCALL HD

CLR 00H

JB 04H,TF

MOV R2,#0

MOV R3,#0

JMP LOP4

TF: CLR 04H

LOP6: INC R1

MOV C,01H ;调分

CPL C

MOV 01H,C

LCALL HDLY

CJNE R1,#40,LOP7

JMP LOOP

LOP7: JNB 05H,LOP6

CLR 05H

MOV R1,#0

LCALL HD

CLR 01H

JB 04H,TS

INC R4

MOV R1,#0

CJNE R4,#10,LOP6

MOV R4,#0

INC R5

CJNE R5,#6,LOP6

MOV R5,#0

JMP LOP6

TS: CLR 04H

LOP8: INC R1

MOV C,02H ;调时

CPL C

MOV 02H,C

LCALL HDLY

CJNE R1,#40,LOP9

JMP LOOP

LOP9: JNB 05H,LOP8

CLR 05H

MOV R1,#0

LCALL HD

CLR 02H

JB 04H,TN

INC R6

CJNE R7,#2,NO2

CJNE R6,#4,LOP8

MOV R7,#0

MOV R6,#0

NO2: CJNE R6,#10,LOP8

MOV R6,#0

INC R7

JMP LOP8

TN: CLR 04H ;调闹铃

SETB RS0

CLR RS1

MOV R2,#0

MOV R3,#0

MOV R4,#0

MOV R5,#0

MOV R6,#0

MOV R7,#0

NS: INC R1 ;闹铃秒调整

MOV C,00H

CPL C

MOV 00H,C

LCALL HDLY

CJNE R1,#40,NS1

JMP NH2

NS1: JNB 05H,NS

CLR 05H

MOV R1,#0

LCALL HD

CLR 00H

JB 04H,NF

INC R2

CJNE R2,#10,NS

MOV R2,#0

INC R3

CJNE R3,#6,NS

MOV R3,#0

JMP NS

NF: CLR 04H ;闹铃分

NF1: INC R1

MOV C,01H

CPL C

MOV 01H,C

LCALL HDLY

CJNE R1,#40,NF2

LJMP NH2

NF2: JNB 05H,NF1

CLR 05H

MOV R1,#0

LCALL HD

CLR 01H

JB 04H,NH

INC R4

CJNE R4,#10,NF1

MOV R4,#0

INC R5

CJNE R5,#6,NF1

MOV R5,#0

JMP NF1

NH: CLR 04H ;闹铃时调整

NH1: INC R1

MOV C,02H

CPL C

MOV 02H,C

LCALL HDLY

CJNE R1,#40,NH3

NH2: MOV 50H,R2

MOV 51H,R3

MOV 52H,R4

MOV 53H,R5

MOV 54H,R6

MOV 55H,R7

CLR RS0

CLR RS1

LJMP LOOP

NH3: JNB 05H,NH1

CLR 05H

MOV R1,#0

LCALL HD

CLR 02H

JB 04H,NH2

INC R6

CJNE R7,#2,NOT2

CJNE R6,#4,NH1

MOV R6,#0

MOV R7,#0

JMP NH1

NOT2: CJNE R6,#10,NH1

MOV R6,#0

INC R7

JMP NH1

;子程序区

TIMES: CJNE R0,#20,LOOP16

MOV R0,#0

INC R2

CJNE R2,#10,LOOP16

MOV R2,#0

INC R3

CJNE R3,#6,LOOP16

MOV R3,#0

ADMINI: INC R4

CJNE R4,#10,LOOP16

MOV R4,#0

INC R5

CJNE R5,#6,LOOP16

MOV R5,#0

HOUR: INC R6

LCALL SOUND ;整点铃声

CJNE R7,#2,LOOP14

CJNE R6,#4,LOOP16

MOV R6,#0

MOV R7,#0

JMP LOOP16

LOOP14: CJNE R6,#10,LOOP16

MOV R6,#0

INC R7

LOOP16: RET

DISPLAY:MOV P2,#0FFH

MOV A,R2

MOVC A,@A+DPTR

MOV P0,A

MOV C,00H

MOV P2.0,C

MOV P2,#0FFH

MOV A,R3

MOVC A,@A+DPTR

MOV P0,A

MOV P2.1,C

MOV P2,#0FFH

MOV A,R4

MOVC A,@A+DPTR

MOV P0,A

MOV C,01H

MOV P2.2,C

MOV P2,#0FFH

MOV A,R5

MOVC A,@A+DPTR

MOV P0,A

MOV P2.3,C

MOV P2,#0FFH

MOV A,R6

MOVC A,@A+DPTR

MOV P0,A

MOV C,02H

MOV P2.4,C

MOV P2,#0FFH

MOV A,R7

MOVC A,@A+DPTR

MOV P0,A

MOV P2.5,C

MOV P2,#0FFH

RET

HDLY: MOV 40H,#2

HDL1: MOV 41H,#25

HDL2: MOV 42H,#100

HDL3: DJNZ 42H,HDL4

DJNZ 41H,HDL2

DJNZ 40H,HDL1

JMP HDOT

SOUT: SETB 05H

HDOT: RET

HDL4: MOV P3,#0FEH

MOV A,P3

CJNE A,#0FEH,SOUT

CLR 05H

LCALL DISPLAY

JMP HDL3

HD: MOV 30H,#5

HD1: MOV 31H,#50

HD2: MOV 32H,#100

HD3: LCALL DISPLAY

DJNZ 32H,HD4

DJNZ 31H,HD2

DJNZ 30H,HD1

SETB 04H ;计满标志位

JMP HDOUT

HD4: MOV P3,#0FEH

MOV A,P3

CJNE A,#0FEH,HD3

MOV 33H,#50

HD5: MOV 34H,#100

DJNZ 34H,$

DJNZ 33H,HD5

MOV P3,#0FEH

MOV A,P3

CJNE A,#0FEH,HD3

CLR 04H

HDOUT: RET

SOUND: MOV 30H,#10

SO1: MOV 31H,#100

SO2: MOV 32H,#3

MOV C,P2.7

CPL C

MOV P2.7,C

SO3: MOV 33H,#25

DJNZ 33H,$

DJNZ 32H,SO3

DJNZ 31H,SO2

DJNZ 30H,SO1

RET

T0: PUSH PSW

PUSH ACC

CLR RS1

CLR RS0

MOV A,TL0

ADD A,#0B5H

MOV TL0,A

MOV TH0,#3CH

INC R0

LCALL TIMES

MOV A,R2

CJNE A,50H,TO

SETB 03H

MOV A,R3

CJNE A,51H,TO

MOV A,R7

CJNE A,55H,TO

MOV A,R6

CJNE A,54H,TO

MOV A,R5

CJNE A,53H,TO

MOV A,R4

CJNE A,52H,TO

MOV A,R2

ADD A,R3

ADD A,R4

ADD A,R5

ADD A,R6

ADD A,R7

JZ TO

CLR 03H

TO: POP ACC

POP PSW

RETI

TAB: DB 0C0H 0F9H 0A4H 0B0H 099H

DB 092H 082H 0F8H 080H 090H

END

51单片机怎么控制大功率的直流电机,麻烦给下电路图,谢啦。主要是驱动那怎么设计

看了这么多回答的,还是我给你一个答案吧!

答案见插图。解释如下:

1:你说的大功率直流电机,用三极管肯定驱动不了,必须要大功率的MOSFET或者IGBT去驱动,IGBT或者MOSFET可以买Infineon的。主电路结构最好采用H桥电路,可以双极性正反调速。

2:H桥的上管可以用IR2110来驱动,这个芯片自己提供了一个自举功能,上管MOSFET(或IGBT)的源极电压是浮动的,自举电路可以保证上管的栅源之间的电压在开启电压阈值之上。

3:你想要用51单片机实现调速,只需要用51单片机的P0~P3口产生两组互相反相的PWM波(注意两组之间要有死区),输出到IR2110的HIN和LIN。至于程序,就很简单了,不用我多说,你懂的。呵呵……

c51单片机按键控制数码管循环加1、减1电路设计

设计程序之前,要先确定电路。

我的百度空间,有这样的电路和程序,可供参考。

51单片机电路设计教程的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:51单片机电路设计教程

<