搜档网
当前位置:搜档网 › 基于51单片机的四足机器人课件.doc

基于51单片机的四足机器人课件.doc

基于51单片机的四足机器人课件.doc
基于51单片机的四足机器人课件.doc

深圳大学期末考试试卷

开/闭卷开卷A/B 卷N/A

课程编号1303270001

1303270002 课程名称EDA 技术与实践(2)学分2.0

命题人(签字) 审题人(签字) 2015 年10 月20 日

题号一二三四五六七八九十基本题

总分

附加题

得分

评卷人

设计考试题目:完成一个集成电路或集成系统设计项目

基本要求:2-3 位同学一组,完成一个完整的集成电路设计项目或是一个集成系统设计

项目。

规格说明:

1. 题目自定。

1) 集成电路设计项目

i. 若为IC 设计项目需要完成IC 设计的版图。

ii. 若采用FPGA 实现数字集成电路设计,需要进行下板测试。

2) 集成系统设计项目,需使用FPGA 开发板或嵌入式开发板,完成一个完整的集成

系统作品。

3) 作品需要课堂现场演示,最后提交报告,每个小组单独一份报告,但需阐述各个

成员的工作。

2. 评分标准:

评价好较好一般未完成完成度40 30 25 15

演示效果30 25 20 15

报告评分30 25 20 15

《EDA 技术与实践(2)》试卷 1 卷第 1 页共28 页

2015 年第二学期,建议作品内容:

完成一个行走机器人,基本要求

o 2-8 只脚

o 能行走

o 可以用单片机,嵌入式,FPGA 方案

一、设计目的:

通过设计一个能够走动的机器人来增加对动手能力,和对硬件电路设计的

能力,增强软件流程设计的能力和对设计流程实现电路功能的能力,在各

个方面提升自己对电子设计的能力。

二、设计仪器和工具:

本设计是设计一个能走动的机器人,使用到的仪器和工具分别有:sg90 舵

机12 个、四脚机器人支架一副、单片机最小系统一个、电容电阻若干、

波动开关一个、超声遥控模块一对、杜邦线若干、充电宝一个。

三、设计原理:

本次设计的机器人是通过51 单片机控制器来控制整个电路的。其中,舵

机的控制是通过产生一个周期为20 毫秒的高电平带宽在0.5 到2.5ms 之间的pwm 信号来控制。12 路Pwm 信号由单片机的定时器来产生。51 单片机产生12 路pwm 信号的原理是:以20 毫秒为周期,把这20 毫秒分割成

8 个 2.5ms,因为,每个pwm 信号的高电平时间最多为 2.5ms,然后在前

六个2.5ms中分别输出两个pwm 信号的高电平,例如,在第一个 2.5ms中输出第一个和第二个pwm 信号的高电平时,首先开始时,把信号S1、S2 都置1,然后比较两个高电平时间,先定时时间短的高电平时间,把高电平时间短的那个信号置0,再定时两个高电平时间差,到时把高电平时间长的按个信号置0,然后,定时( 2.5-较长那个高电平时间),在第二个

2.5ms 开始时,把S3、S4 置1,接下来和上面S1、S2 一样,以此类推,

在六个2.5ms 中输出12 路pwm 信号来控制舵机。原理图如图 1.

第一个2.5ms

0 2.5

通过超声模块来控制机器人前进、后退、向前的左转、向前的右转、向后的左

转、向后的右转几个动作。

《数字系统设计》试卷 1 卷第 2 页共28 页

控制模块电路,D0,D1,D2,D3 分别为超声接受模块的输出,输出为高电平,要加NPN 作为开关。

《EDA 技术与实践(2)》试卷 1 卷第 3 页共28 页

四、设计步骤:

1、设计好硬件电路,焊接51单片机的最小系统和各个硬件电路。

2、设计好软件的流程图,如图2。

3、写产生12 路控制舵机的pwm 信号的程序并在proteus 中测试,如

图3。

4、设计出行走步态,四脚机器人的步态是采用对角的相互前进来实现

的,如图4。

5、写出流程图中各个模块的软件,包括前进函数、后退函数、左转和

右转的函数,并逐个烧到单片机中测试。

6、按流程图把各个函数组合到主函数中,完成所有软件的编写,并烧

到单片机中测试,并不断的调试。

开始

初始化

扫描控制

按键

处理控制

按键

机器人

行走

结束

图 2.流程图

《数字系统设计》试卷 1 卷第 4 页共28 页

图3.在proteus里测试并调试pwm 信号

初始状态:

先迈一对脚迈另一对并

另一对支撑身体前进

图4,行走步态

五、遇到的问题及解决:

1、此设计的pwm 信号输出使用定时器来产生每个信号的高电平和低

电平,每次定时时间到,都会会关掉定时器并执行中断函数,在此过

程中会消耗一定的时间,等到给定时器赋值下一次定时时间并开始定

时时,就会产生一定的时间延时,造成每次高电平时间都会变长一

点,且总的加起来会使20ms 周期变长,因此,需要稍微减小高电平的

定时时间,并结合proteus仿真确定最准确值。

2、由于机器人的四个脚都是自己组装的,可能会有存在不平衡和对

称,当对角的两只脚同时向前迈同一个角度时,会使机器人向一个方

向偏转而不沿直线前进,这时要结合实际测试来调整机器人的各个脚

的前迈角度来使机器人平衡的沿直线前进,比如,一只脚迈多点,另

一边的脚迈少点。

《EDA 技术与实践(2)》试卷 1 卷第 5 页共28 页

六、心得与体会:

通过这次设计,我更加的熟悉基本的硬件电路和软件的设计,特别是软件的流程图设计。更加熟悉软硬件电路结合的测试与调试。

六、实验实物图:

《数字系统设计》试卷 1 卷第 6 页共28 页

《EDA 技术与实践(2)》试卷 1 卷第7 页共28 页

设计代码:

#include

#define uchar unsigned char

#define uint unsigned int

uint pwm[12],p_min1,p_max1,p_min2,p_max2,p_min3,p_max3,p_min4,p_max4,p_min5,p_max5, p_min6,p_max6,p1,p2,p3,p4,p5,p6,p11,p21,p31,p41,p51,p61;// 高电平带宽

sbit s0=P2^0;//12 路输出信号

sbit s1=P2^1;

sbit s2=P2^2;

sbit s3=P2^3;

sbit s4=P2^4;

sbit s5=P2^5;

sbit s6=P2^6;

sbit s7=P2^7;

sbit s8=P0^6;

sbit s9=P0^4;

sbit s10=P0^2;

sbit s11=P0^0;

sbit up=P1^0;

sbit right=P1^4;

sbit left=P1^2;

sbit down=P1^6;

uchar s_num,f,b,r,l,back_flag;forward_flag;

void back();// 后退

void forward(); //前进

void back_right(); //后右转、前左转

void back_left(); //后左转、前右转

void scan_key();// 遥控监控

void labor_init();// 机器人的初始状态

void delay(uint i) // 延时函数,延时一秒

《数字系统设计》试卷 1 卷第8 页共28 页

{

uint j;

for(i;i>0;i--)

for(j=110;j>0;j--);

}

void init(void)// 中断初始函数

{

TMOD=0x01;

TR0=1;

ET0=1;

EA=1;

}

void rate(uint p[12])//pwm 的排序函数

{

p_min1=(p[0]<=p[1]?(p[0]):(p[1]))-40;

p_max1=p[0]>p[1]?(p[0]):(p[1]);

p_min2=(p[2]<=p[3]?p[2]:p[3])-64;

p_max2=p[2]>p[3]?p[2]:p[3];

p_min3=(p[4]<=p[5]?p[4]:p[5])-64;

p_max3=p[4]>p[5]?p[4]:p[5];

p_min4=(p[6]<=p[7]?p[6]:p[7])-64;

p_max4=p[6]>p[7]?p[6]:p[7];

p_min5=(p[8]<=p[9]?p[8]:p[9])-64;

p_max5=p[8]>p[9]?p[8]:p[9];

p_min6=(p[10]<=p[11]?p[10]:p[11])-64;

p_max6=p[10]>p[11]?p[10]:p[11];

p1=p_max1-p_min1-21;

p2=p_max2-p_min2-42;

p3=p_max3-p_min3-42;

p4=p_max4-p_min4-42;

p5=p_max5-p_min5-42;

p6=p_max6-p_min6-42;

p11=2400-p_max1;

《EDA 技术与实践(2)》试卷 1 卷第9 页共28 页

p21=2400-p_max2;

p31=2400-p_max3;

p41=2400-p_max4;

p51=2400-p_max5;

p61=15500-p_max6;

TH0=-p_min1/256;

TL0=-p_min1%256;

s_num=0;

s0=1;

s1=1;

init();

}

void scan_key()

{

if(P1!=0xff)

{

delay(5);

if(up==0)

{

f=0;

}

if(down==0)

b=0;

if(right==0)

r=0;

if(left==0)

l=0;

}

}

void time0() interrupt 1 //中断产生12 路pwm 信号

{

《数字系统设计》试卷 1 卷第10 页共28 页

TR0=0;

switch(s_num)

{

case 0:if(pwm[0]<=pwm[1])

{

if(pwm[0]==pwm[1])

{s0=0;s1=0;s_num++;TH0=-(p1-0)/256;TL0=-(p1-0)%256;break;} else

s0=0;

}

else

s1=0;

TH0=-p1/256;

TL0=-p1%256;

s_num++;

break;

case 1:if(pwm[0]>pwm[1])

s0=0;

else

s1=0;

TH0=-p11/256;

TL0=-p11%256;

s_num++;

break;

case 2:s2=1;

s3=1;

TH0=-p_min2/256;

TL0=-p_min2%256;

s_num++;

break;

case 3:if(pwm[2]<=pwm[3])

{

if(pwm[2]==pwm[3])

{s2=0;s3=0;s_num++;TH0=-p2/256;TL0=-p2%256;break;}

else

《EDA 技术与实践(2)》试卷 1 卷第11 页共28 页

s2=0;

}

else

s3=0;

TH0=-p2/256;

TL0=-p2%256;

s_num++;

break;

case 4:if(pwm[2]>pwm[3])

s2=0;

else

s3=0;

TH0=-p21/256;

TL0=-p21%256;

s_num++;

break;

case 5:s4=1;

s5=1;

TH0=-p_min3/256;

TL0=-p_min3%256;

s_num++;

break;

case 6:if(pwm[4]<=pwm[5])

{

if(pwm[4]==pwm[5])

{s4=0;s5=0;s_num++;TH0=-p3/256;TL0=-p3%256;break;} else

s4=0;

}

else

s5=0;

TH0=-p3/256;

TL0=-p3%256;

s_num++;

break;

《数字系统设计》试卷 1 卷第12 页共28 页

case 7:if(pwm[4]>pwm[5])

s4=0;

else

s5=0;

TH0=-p31/256;

TL0=-p31%256;

s_num++;

break;

case 8:s6=1;

s7=1;

TH0=-p_min4/256;

TL0=-p_min4%256;

s_num++;

break;

case 9:if(pwm[6]<=pwm[7])

{

if(pwm[6]==pwm[7])

{s6=0;s7=0;s_num++;TH0=-p4/256;TL0=-p4%256;break;} else

s6=0;

}

else

s7=0;

TH0=-p4/256;

TL0=-p4%256;

s_num++;

break;

case 10:if(pwm[6]>pwm[7])

s6=0;

else

s7=0;

TH0=-p41/256;

TL0=-p41%256;

s_num++;

break;

《EDA 技术与实践(2)》试卷 1 卷第13 页共28 页

case 11:s8=1;

s9=1;

TH0=-p_min5/256;

TL0=-p_min5%256;

s_num++;

break;

case 12:if(pwm[8]<=pwm[9])

{

if(pwm[8]==pwm[9])

{s8=0;s9=0;s_num++;TH0=-p5/256;TL0=-p5%256;break;} else

s8=0;

}

else

s9=0;

TH0=-p5/256;

TL0=-p5%256;

s_num++;

break;

case 13:if(pwm[8]>pwm[9])

s8=0;

else

s9=0;

TH0=-p51/256;

TL0=-p51%256;

s_num++;

break;

case 14:s10=1;

s11=1;

TH0=-p_min6/256;

TL0=-p_min6%256;

s_num++;

break;

case 15:if(pwm[10]<=pwm[11])

{

《数字系统设计》试卷 1 卷第14 页共28 页

if(pwm[10]==pwm[11])

{s10=0;s11=0;s_num++;TH0=-p6/256;TL0=-p6%256;break;}

else

s10=0;

}

else

s11=0;

TH0=-p6/256;

TL0=-p6%256;

s_num++;

break;

case 16:if(pwm[10]>pwm[11])

s10=0;

else

s11=0;

TH0=-p61/256;

TL0=-p61%256;

s_num++;

break;

case 17:

s0=1;

s1=1;

s_num=0;

TH0=-p_min1/256;

TL0=-p_min1%256;

break;

}

scan_key();

TR0=1;

}

void motor_init1()// 给所有信号都设高电平时间为 1.5 毫秒

{

《EDA 技术与实践(2)》试卷 1 卷第15 页共28 页

for(i=0;i<12;i++)

pwm[i]=1500;

}

void labor_init()// 机器人的初始状态

{

motor_init1();

l=1;

f=1;

r=1;

b=1;

back_flag=0;

forward_flag=0;

rate(pwm);

//delay(200);

while(1)

{

if(r==0)

{

r=1;

back_right();

}

if(l==0)

{

l=1;

back_left();

}

if(f==0)

{

f=1;

forward();

}

《数字系统设计》试卷 1 卷第16 页共28 页

{

b=1;

back();

}

}

}

void back()

{

back_flag=1;

forward_flag=0;

motor_init1();

pwm[8]=pwm[8]+300;

pwm[9]=pwm[9]-250;

pwm[2]=pwm[2]+150;

pwm[3]=pwm[3]-150;

pwm[7]=pwm[7]+50;

//pwm[0]=pwm[0]-80;

//pwm[5]=pwm[5]+80;

//pwm[11]=pwm[11]-30;

rate(pwm);

delay(500);

pwm[3]=pwm[3]+320;

pwm[8]=pwm[8]-200;

pwm[4]=pwm[4]+600;

pwm[5]=pwm[5]+600;

pwm[6]=pwm[6]+600;

pwm[7]=pwm[7]+600;

rate(pwm);

delay(300);

pwm[4]=pwm[4]-600;

pwm[5]=pwm[5]-600;

pwm[6]=pwm[6]-600;

《EDA 技术与实践(2)》试卷 1 卷第17 页共28 页

pwm[7]=pwm[7]-600;

rate(pwm);

delay(300);

while(1)

{

if(r==0)

{

r=1;

back_right();

}

if(l==0)

{

l=1;

back_left();

}

if(f==0)

{

f=1;

forward();

}

if(b==0)

b=1;

pwm[3]=pwm[3]-320;

pwm[8]=pwm[8]+200;

pwm[2]=pwm[2]-270;

pwm[9]=pwm[9]+320;

pwm[1]=pwm[1]-600;

pwm[0]=pwm[0]-600;

pwm[10]=pwm[10]-600;

pwm[11]=pwm[11]-600;

rate(pwm);

delay(300);

pwm[1]=pwm[1]+600;

pwm[0]=pwm[0]+600;

pwm[10]=pwm[10]+600;

《数字系统设计》试卷 1 卷第18 页共28 页

pwm[11]=pwm[11]+600;

rate(pwm);

delay(500);

pwm[2]=pwm[2]+270;

pwm[9]=pwm[9]-320;

pwm[3]=pwm[3]+320;

pwm[8]=pwm[8]-200;

pwm[4]=pwm[4]+600;

pwm[5]=pwm[5]+600;

pwm[6]=pwm[6]+600;

pwm[7]=pwm[7]+600;

rate(pwm);

delay(300);

pwm[4]=pwm[4]-600;

pwm[5]=pwm[5]-600;

pwm[6]=pwm[6]-600;

pwm[7]=pwm[7]-600;

rate(pwm);

delay(500);

if(P1!=0xff)

forward();

}

}

void back_right()

{

motor_init1();

pwm[8]=pwm[8]+50;

pwm[9]=pwm[9]-50;

//pwm[2]=pwm[2]+150;

//pwm[3]=pwm[3]-150;

pwm[7]=pwm[7]+100;

//pwm[0]=pwm[0]-80;

《EDA 技术与实践(2)》试卷 1 卷第19 页共28 页

//pwm[5]=pwm[5]+80;

//pwm[11]=pwm[11]-30;

rate(pwm);

delay(300);

pwm[3]=pwm[3]-70;

pwm[8]=pwm[8]-70;

pwm[4]=pwm[4]+600;

pwm[5]=pwm[5]+600;

pwm[6]=pwm[6]+600;

pwm[7]=pwm[7]+600;

rate(pwm);

delay(300);

pwm[4]=pwm[4]-600;

pwm[5]=pwm[5]-600;

pwm[6]=pwm[6]-600;

pwm[7]=pwm[7]-600;

rate(pwm);

delay(300);

while(1)

{

if(r==0)

{

if(back_flag==1)

{

r=1;

back_right();

}

if(forward_flag==1)

{

r=1;

back_left();

}

}

《数字系统设计》试卷 1 卷第20 页共28 页

AT89C51单片机简易计算器的设计

AT89C51单片机简易计算器的设计 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于51系列单片机来进行的数字计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除六位数范围内的基本四则运算,并在LCD上显示相应的结果。设计电路采用AT89C51单片机为主要控制电路,利用MM74C922作为计算器4*4键盘的扫描IC读取键盘上的输入。显示采用字符LCD静态显示。软件方面使用C语言编程,并用PROTUES仿真。 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数

值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图: 二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

AT89C51单片机的基本结构和工作原理

AT89C51单片机的主要工作特性: ·内含4KB的FLASH存储器,擦写次数1000次; ·内含28字节的RAM; ·具有32根可编程I/O线; ·具有2个16位可编程定时器; ·具有6个中断源、5个中断矢量、2级优先权的中断结构; ·具有1个全双工的可编程串行通信接口; ·具有一个数据指针DPTR; ·两种低功耗工作模式,即空闲模式和掉电模式; ·具有可编程的3级程序锁定定位; AT89C51的工作电源电压为5(1±0.2)V且典型值为5V,最高工作频率为24MHz. AT89C51各部分的组成及功能: 1.单片机的中央处理器(CPU)是单片机的核心,完成运算和操作控制,主要包括运算器和控制器两部分。

(1)运算器 运算器主要用来实现算术、逻辑运算和位操作。其中包括算术和逻辑运算单元ALU、累加器ACC、B寄存器、程序状态字PSW和两个暂存器等。 ALU是运算电路的核心,实质上是一个全加器,完成基本的算术和逻辑运算。算术运算包括加、减、乘、除、增量、减量、BCD码运算;逻辑运算包括“与”、“或”、“异或”、左移位、右移位和半字节交换,以及位操作中的位置位、位复位等。 暂存器1和暂存器2是ALU的两个输入,用于暂存参与运算的数据。ALU的输出也是两个:一个是累加器,数据经运算后,其结果又通过内部总线返回到累加器;另一个是程序状态字PSW,用于存储运算和操作结果的状态。 累加器是CPU使用最频繁的一个寄存器。ACC既是ALU处理数据的来源,又是ALU运算结果的存放单元。单片机与片外RAM或I/O扩展口进行数据交换必须通过ACC来进行。 B寄存器在乘法和除法指令中作为ALU的输入之一,另一个输入来自ACC。运算结果存于AB寄存器中。 (2)控制器 控制器是识别指令并根据指令性质协调计算机内各组成单元进行工作的部件,主要包括程序计数器PC、PC增量器、指令寄存器、指令译码器、定时及控制逻辑电路等,其功能是控制指令的读入、译码和执行,并对指令执行过程进行定时和逻辑控制。AT89C51单片机中,PC是一个16位的计数器,可对64KB程序存储器进行寻址。复位时PC的内容是0000H. (3)存储器 单片机内部的存储器分为程序存储器和数据存储器。AT89C51单片机的程序存储器采用4KB的快速擦写存储器Flash Memory,编程和擦除完全是电器实现。 (4)外围接口电路 AT89C51单片机的外围接口电路主要包括:4个可编程并行I/O口,1个可编程串行口,2个16位的可编程定时器以及中断系统等。 AT89C51的工作原理: 1.引脚排列及功能 AT89C51的封装形式有PDIP,TQFP,PLCC等,现以PDIP为例。 (1)I/O口线 ·P0口 8位、漏极开路的双向I/O口。 当使用片外存储器及外扩I/O口时,P0口作为低字节地址/数据复用线。在编程时,P0口可用于接收指令代码字节;程序校验时,可输出指令字节。P0口也可做通用I/O口使用,但需加上拉电阻。作为普通输入时,应输出锁存器配置1。P0口可驱动8个TTL负载。 ·P1口 8位、准双向I/O口,具有内部上拉电阻。 P1口是为用户准备的I/O双向口。在编程和校验时,可用作输入低8位地址。用作输入时,应先将输出锁存器置1。P1口可驱动4个TTL负载。 ·P2 8位、准双向I/O口,具有内部上拉电阻。 当使用外存储器或外扩I/O口时,P2口输出高8位地址。在编程和校验时,P2口接收高字节地址和某些控制信号。 ·P3 8位、准双向I/O口,具有内部上拉电阻。 P3口可作为普通I/O口。用作输入时,应先将输出锁存器置1。在编程/校验时,P3口接收某些控制信号。它可驱动4个TTL负载。 (2)控制信号线

基于AT89C51单片机的多音阶电子琴的设计

重庆三峡学院 单片机课程设计报告书 学院: 年级专业: 学号: 学生姓名: 指导教师: 教师职称: 成绩: 制作日期2012年11月29日

基于AT89C51单片机的多音阶电子琴的设计 重庆三峡学院 摘要 单片机是电子、计算机及机电专业的一门重要的必修课程。要求我们掌握单片机的基本组成和工作原理、会变程序的一般编写方法、常用接口电路的软硬件设计方法,具备基本的单片机系统应用与开发能力。 随着科技的快速发展,单片机的应用日益普遍。单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本单片机系统设计应用单片机控制技术,用AT89C51单片机为核心控制元件根据本学期所学的单片机知识结合设计了一套单片机控制的电子琴系统。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,它在现代音乐扮演着重要的角色。 本次设计首先对单片机设计简易电子琴仔细分析,接着制作硬件电路和编写软件的程序,最后进行软硬件的调试运行。并且从原理图,主要芯片,各模块的原理和各个模块的程序调试来阐述。利用单片机产生不同频率来获得我们要求的音阶,实现高、中、低共21个音符的发音和显示和音乐播放时的控制显示,并且能自动播放程序中编排的音乐。系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比高等,具有一定的使用和参考价值。 关键词:单片机、电子琴、AT89C51、独立键盘、

目录 第 1 章引言......................................................................................................................... 1. 1. 1 设计背景 (1) 1.2 设计任务 (1) 1.3 设计目的 (1) 1.4 设计思路 (1) 第 2 章方案论证 (1) 2.1 方案论证 (1) 第 3 章硬件系统设计 (2) 3.1时钟电路 (2) 3.2 复位电路 (3) 3.3 原理框图 (3) 3. 4 显示部分设计 (3) 3.5 按键部分设计 (4) 3.6 发音部分设计 (5) 第 4 章软件系统设计 (5) 4.1 系统分析 (5) 4.2 参数计算 (7) 4.3 程序设计 (8) 第 5 章实验结果 (10) 5.1硬件调试 (10) 5.2 软件调试 (10) 5.3 仿真结果 (10) 5.4 结果分析 (11) 第 6 章总结 (11) 附录一:系统整体电路图 (12) 附录二:元器件清单 (12) 附录三:源程序代码 (13) 参考文献 (19)

AT89C51单片机简介

4.1 AT89C51 简介: AT89C51(如图2-10所示)是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51单片机示 意图(4-2-1) VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指钟写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态, 8051的初始态(4-2-2)

AT89C51单片机设计的音乐倒数计数器解析

塔里木大学《单片机原理与外围电路》课程论文基于单片机设计的音乐倒数计数器 姓名:古再丽努尔·阿卜来提 学号: 5021212125 班级:通信工程16-1

摘要:单片机技术是一门不可或缺的技术,对我们将来的工作以及生活和学习都有很密切的联系。近年来,随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。 单片机由CPU、一定容量的RAM和ROM构成,定时、计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习、应用,从而达到学习、设计、开发软、硬的能力。 本设计利用AT89C51单片机结合字符型LCD显示器设计一个简易的倒数计数器。用4个按键操作来设置当前想要倒计数的时间。做一小段时间倒计数,当倒计数为0时,则发出一段音乐声响,通知倒计数终了,该做应当做的事。应用Proteus的ISIS软件和Keil uVision3来实现该计数器的设计与仿真。该方法仿真效果真实、准确,节省了硬件资源。 该多功能计数器可以应用于一般的生活和工作中,也可以通过改装,提高性能,增加新功能,从而给人们的生活和工作带来更多的方便。 关键词:AT89C51,计数器,键盘控制,LCD显示,protues,Keil 。

目录 1绪论 (4) 1.1课题背景及研究意义 (4) 1.2国内外现状 (4) 1.3课题的设计目的 (4) 1.4课题的主要工作 (4) 2系统概述 (5) 2.1方案论证 (5) 2.2系统设计原理 (5) 3系统硬件设计 (5) 3.1主控电路设计 (5) 3.2LCD液晶显示器接口电路设计 (6) 4系统软件设计 (6) 4.1主程序设计 (6) 4.2硬件调试 (8) 4.3仿真结果 (16) 结论 (16) 参考文献 (17) 系统整体电路.......................................................................................... 错误!未定义书签。全部程序清单. (8) - III -

基于89C51单片机的秒表课程设计讲解

《单片机技术》 课程设计报告 题目:基于MCU-51单片机的秒表设计班级: 学号: 姓名: 同组人员: 指导教师:王瑞瑛、汪淳 2014年6月17日

目录 1课程设计的目的 (3) 2 课程设计题目描述和要求 (3) 2.1实验题目 (3) 2.2设计指标 (3) 2.3设计要求 (4) 2.4增加功能 (4) 2.5课程设计的难点 (4) 2.6课程设计内容提要 (4) 3 课程设计报告内容 (4) 3.1设计思路 (4) 3.2设计过程 (5) 3.3 程序流程及实验效果 (6) 3.4 实验效果 (13) 4 心得体会 (14)

基于 MCS-51单片机的秒表设计 摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计内容为以 8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计内容以硬件电路设计,软件设计和 PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。 关键词:秒表;8051;定时器;计数器 1 课程设计的目的 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的内容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 2 课程设计题目描述和要求 2.1实验题目 开始时,显示“00.0”,第一次按下按钮后开始从0-99.9s计时,显示精度为0.1s;对用有4个功能按键,第1个按键复位00.0,第2个按键正计时开始按钮,第3个按键复位99.9,第4个按钮倒计时开始。 2.2设计指标 了解8051芯片的的工作原理和工作方式,使用该芯片对 LED 数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起

AT89C51单片机的概述

AT89C51单片机的概述 (1)AT89C51单片机的结构 AT89C51单片机是美国Atmel公司生产低电压,高性能CMOS 8位单片机,片内含4k bytes 的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存取技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元,功能强大[3]。AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。 上图为AT89C51单片机的基本组成功能方块图。由图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。下面介绍几个主要部分。 外中断控制并行口串行通信 AT89C51 功能方块图 (2)AT89C51的管脚说明 ATMEL公司的AT89C51是一种高效微控制器。采用40引脚双列直插封装形式。AT89C51单片机是高性能单片机,因为受引脚数目的限制,所以有不少引脚具有第二功能。 VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管

脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0 口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL 门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入1后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: P3口管脚备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断0) P3.3 INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE 的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令时ALE才起作用。 PSEN:外部程序存储器的选通信号端。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

毕业设计AT89C51单片机的研究

本科生毕业设计(论文)基于AT89C51单片机 系统的研究 学院、系:电气与信息工程学院专业:电子信息工程 学生姓名: 班级:电信学号 指导教师姓名:职称教授 职称助教 最终评定成绩 年6月

摘要 湿度检测在工业、农业、国防等行业有着广泛的应用。利用单片机技术的湿度检测系统以其体积小,可靠性高而被广泛采用。本文对湿度检测系统进行了分析设计。首先,对湿度检测技术的应用领域和发展状况做了简单的介绍,同时,列举了目前湿度检测所常用方法以及各自所具有的特点。本文重点在于对该系统的硬件和软件设计。在硬件设计过程中,详细介绍了各部分电路的功能和特点。接下来,对系统中所用的湿度传感器HM1500和A/D转换芯片TLC1549作了简单的介绍。在软件设计过程中,绘制了各个程序模块的流程图,详细介绍了各个模块的作用。经过对程序反复的修改,完善了软件系统。最后,完成了对整个系统的设计。本系统具有灵敏度高、反映时间短等特点,并且具有智能化、可编程、小型便携等优点,相信本系统具有广泛的应用领域。 关键词:单片机,湿度检测,硬件系统,软件系统

ABSTRACT The humidity examination which is widely used in industry, agriculture, national defense and so on .the humidity examination which is widely used because that the system which uses microcontroller technology is volume small and reliability. This article has carried on the analysis design to the humidity examination system. First, the application and development condition of the humidity examination technology is made a simple introduction. And then, the humidity examination of commonly used method which has enumerated the characteristic as well as each one .The point of the article is the design of the hardware and software. In the process of hardware designing, the function and the characteristic of each part of electric circuits which has made a simple introduction in detail. Meanwhile, the humidity sensor HM1500 and the chip of the A/D transformation to the system in TLC1549 have been made the simple introduction. In the process of software designing, I have drawn up each program module flow chart, and introduced each module function in detail. Then to the procedure repeatedly revision, it has been consummated the software system. Finally, I has completed the over all system designing. This system have the characteristic of sensitivity high and the reflection time is short, and so on .It has the intellectualization, and programmable and small, then takes along short, and so on. It believed that this system has the widespread application . Keywords: MCU, humidity examination,software system, hardware system

AT89C51单片机C实现简易计算器

AT89C51单片机简易计算器的设计 一、总体设计 根据功能和指标要求,本系统选用MCS-51系列单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:(1)由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。 (2)另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、清除键和等号键,故只需要16 个按键即可,设计中采用集成的计算键盘。 (3)执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。 (4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD 上提示错误。 系统模块图:

二、硬件设计 (一)、总体硬件设计 本设计选用AT89C51单片机为主控单元。显示部分:采用LCD 静态显示。按键部分:采用4*4键盘;利用MM74C922为4*4的键盘扫描IC,读取输入的键值。 总体设计效果如下图:

(二)、键盘接口电路 计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4×4个。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。 矩阵键盘的工作原理: 计算器的键盘布局如图2所示:一般有16个键组成,在单片机中正好可以用一个P口实现16个按键功能,这种形式在单片机系统中也最常用。 图 2 矩阵键盘布局图 矩阵键盘内部电路图如图3所示:

89C51单片机课程设计之秒表设计实验报告.

这里可以加学校LOGAL 单片机课程设计报告 院系:12级物信系 班别:光信息科学与技术7班 课程名称:秒表设计 姓名:龚俊才欧一景 学号:1210407033 1210407041 指导老师:张涛 2011.12.23

目录 1课程设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2课程设计思路及描述 1.3 课程设计任务和要求 2硬件与软件的设计流程 2.1系统硬件方案设计 2.2软件方案设计 3 程序编写流程及课程设计效果3.1源程序及注释 3.2原理图分析 3.3课程设计效果 4 心得体会 5 相关查阅资料

1. 课程设计的目的和任务 1.1单片机秒表课程设计的概述 一、课程设计题目 秒表系统设计——用STC89C52RC设计一个4位LED数码显示“秒表”,显示时间为 00.00~99.99秒,每10毫秒自动加一,每1000毫秒自动加一秒。 二、增加功能 增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 三、课程设计的难点 单片机电子秒表需要解决三个主要问题,一是有关单片机定时器的使用;二是如何实现LED 的动态扫描显示;三是如何对键盘输入进行编程。 四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有两个开关按键:其中key1按键按下去时开始计时,即秒表开始键(同时也用作暂停键),key2按键按下去时数码管清零,复位为“00.00”. 五、课程设计的意义 1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步 的了解。 2)掌握定时器、外部中断的设置和编程原理。 3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的 计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 六、课程设计仪器 a) 集成电路芯片8051,七段数码管,89C51单片机开发板 b) MCS-51系列单片机微机仿真课程系统中的软件(Keil uvision2)。

(完整版)基于89C51单片机的秒表设计

《单片机原理与应用》课程设计报告基于89C51单片机的秒表设计 专业: 学号: 姓名: 2015-12-25

一、课题名称 基于89C51单片机的秒表设计 二、任务要求 1、计时范围:0~59分59.59秒,整数四位数和小数两位数显示; 2、计时精度10毫秒; 3、复位按钮,计时器清零,并做好下次计时准备; 4、可以对两个对象(A、B)计时,具有启/停控制; 3、设开始、停止A、停止B、显示A、显示B、复位按钮。 三、任务分析 1、设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动和停表电路等。主控制器采用单片机89C52显示电路采用共阳极LED数码管显示计时时间。 2、利用89C52单片机的定时器/计数器定时和记数的原理,使其能精确计时。 3、P0口输出段码数据,P2.0-P2.4口作列扫描输出,P1.1、P3.2、P3.3、P2.5口接四个按钮开关,分别实现开始、暂停、清零和查看上次计时时间功能。 4、利用中断系统使其能实现开始暂停的功能。 四、设计方案 1、硬件方案 工作原理:计时采用定时器T0中断完成,定时溢出中断周期为1ms,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对毫秒计数单元进行加一,达到10次就对十毫秒位进行加一,依次类推,直到99.99秒重新复位。 再看按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法来识别。复位键和查看主要功能在于数值复位和查询上次计时时间,对于时间的要求不是很严格。而开始和停止键则是用于对时间的锁定,需要比较准确的控制。因此可以对复位和查看按键采取扫描的方式。而对开始和停止键采用外部中断的方式。

基于89C51单片机的直流电机控制系统设计

目录 摘要 (3) 关键词: (3) 1直流电动机 (3) 1.1直流电动机的工作原理 (3) 1.1.1直流电动机的运动特性与优点 (4) 1.2直流串励电动机 (5) 1.2.1串励电动机的特点 (5) 1.3直流他励电动机 (5) 1.3.1他励电动机的特点 (6) 2设计概要 (6) 2.1硬件设计概要 (7) 2.2程序设计流程图 (7) 3硬件设计 (8) 3.1.1电机驱动电路 (8) 3.1.2单片机及控制电路 (10) 3.1.3单片机介绍 (12) 3.1.3.3管脚说明 (14) 4程序设计 (16) 4.1主程序设计 (19) 4.1.1定义说明程序 (19) 4.1.2执行主程序 (20) 4.2子程序设计 (22) 4.2.1定义延时程序函数 (22) 4.2.2定时器1中断服务程序 (22)

4.2.3定时器2中断服务程序 (23) 4.3调速原理 (23) 4.3.1PWM(脉冲宽度调制)原理 (23) 4.3.2PWM(脉冲宽度调制)特点 (24) 5调试与仿真 (25) 参考文献 (25) 附录 (26)

摘要 通过单片机改变输出脉冲波的宽度井陉调节,以便实现直流电的起动、正反转、加速、减速功能,在这种调速方法下,可以有效的减少其损耗功率。 关键词:单片机;直流电机;调速 1直流电动机 直流电动机主要由静止的定子和旋转的转子组成。定子由主磁极、换向极、电刷装置和机座组成。主磁极铁芯上套有线圈,通入直流励磁电流便会产生磁场,即主磁场。换向极也由铁芯及套在上面的线圈组成,其作用是产生附加磁场。以减弱换向片与电刷之间的火花,避免烧蚀。机座除作电动机的机械支架外,还作为各磁极间磁的通路。转子由转子铁芯、转子绕组、换向器、轴和风扇组成。转子铁芯用来安装转子绕组,并作为电动机磁路的一部分。转子绕组的主要作用是产生感应电动势并通过电流,以产生电磁转矩。换向器由换向片组成,换向片按一定规律与转子绕组的绕组元件连接。 1.1直流电动机的工作原理 直流电动机包括俩个在空间固定的永久磁铁,一个为N极,另一个为S极。在磁极的中间,装有一个可以转动的线圈,它的首末两端分别接到两片圆弧形的换向片(铜片)上,两个换向片之间、换向片与转轴(与线圈一起旋转)之间均相互绝缘,为了把电枢绕组和外电路接通,在换向器上安置了两个固定不动的电刷。由于电刷和电源固定连接,因此无论线圈怎样转动,总是上半边的电流向里,下半边的电流向外。由左手定则可知,通电线圈在磁场中受到逆时针方向的力矩作用。虽然电流方向是交替变化的,但所受的电磁力的方向不改变,因此线圈可以连续地按逆时针方向旋转。这就是直流电动机的工作原理。

89C51单片机硬件结构和原理

第1部分 89C51单片机硬件结构和原理 1. 89C51单片机片内包含哪些主要逻辑功能部件? 答:89C51单片机是个完整的单片微型计算机。芯片内部包括下列硬件资源: (1)8位CPU; (2)4KB的片内Flash ROM。可寻址64KB程序存储器和64KB外部数据存储器;(3)256B内部 RAM/SFR; (4)21个 SFR; (5)4个8位并行I/O口P0~P3(共32位I/O线); (6)一个全双工uart的异步串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通讯; (7)两个16位定时器/计数器; (8)5个中断源,两个中断优先级; (9)内部时钟发生器。 2. 89C51的EA端有何用途? 答:作外部程序存储器地址允许输入端和固化编程电压输入端。 3. 89C51的存储器分哪几个空间?如何区别不同空间的寻址? 答:89C51存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间: (1)64KB的程序存储器地址空间:0000H~FFFFH,其中0000H~0FFFH为片内4KB的Flash ROM地址空间,1000H~FFFFH为外部ROM地址空间; (2)256B的内部数据存储器地址空间,00H~FFH,分为两大部分,其中00H~7FH(共128B单元)为内部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域; (3)64KB的外部数据存储器地址空间:0000H~FFFFH,包括扩展I/O地址空间。 MCS-51单片机存储器三类空间地址存在重叠,单片机设计了不同的数据传送指令符号来区分:CPU访问片内、片外ROM指令用MOVC,访问片外RAM指令用MOVX,访问片内RAM 指令用MOV。 4. 简述89C51片内RAM的空间分配。 答:89C51内部256B的数据RAM区,包括有工作寄存器组区、可直接位寻址区和数据缓冲区、特殊功能寄存器组区。各区域的特性如下: (1)00H~1FH为工作寄存器组区,共分4组,每组占用8个RAM字节单元,每个单元作为一个工作寄存器,每组的8个单元分别定义为8个工作寄存器 R0~R7。当前工作寄存器组的选择是由程序状态字PSW的RS1、RS0两 位来确定。如果实际应用中并不需要使用工作寄存器或不需要使用4组

#基于单片机89c51的电子时钟设计

目录 摘要 ............................................................. 错误!未定义书签。 1 电子时钟 (2) 1.1电子时钟简介 (2) 1.2电子时钟的基本特点 (2) 1.3电子时钟的原理 (2) 2 单片机的相关知识 (3) 2.1单片机简介 (3) 2.2 PROTEUS软件简介 (3) 2.3单片机的特点 (3) 2.489C51单片机介绍 (3) 3 控制系统的硬件设计 (5) 3.1单片机型号的选择 (5) 3.2数码管显示工作原理 (5) 3.3键盘电路设计 (5) 3.4整个电路原理图 (5) 4 控制系统的软件设计 (6) 4.1程序设计 (6) 4.2程序流程图 (11) 4.3仿真图 (13) 4.4仿真结果分析.................................................... 错误!未定义书签。 5 结束语 (14) 6 附录 (15) 参考文献 ........................................................... 错误!未定义书签。 摘要:单片计算机即单片微型计算机。由RAM ,ROM,CPU构成,定时,计数和多种接口于一 体的微控制器。它体积小,成本低,功能强,广泛使用于智能产业和工业自动化上。而51系列 单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,使用,从而 达到学习、设计、开发软、硬件的能力。本设计主要设计了一个基于AT89C51单片机的电子时钟。 并在数码管上显示相应的时间。并通过一个控制键用来实现时间的调节和是否进入省电模式的转换。使用Proteus的ISIS软件实现了单片机电子时钟系统的设计和仿真。该方法仿真效果真实、 准确,节省了硬件资源。 关键字:单片机;子时钟;键盘控制 1.电子时钟

STC89C51单片机的数字音乐盒设计(含代码)

HEFEI UNIVERSITY FPGA综述报告 系别电子信息与电气工程系任课教师汪济洲 班级 姓名 成绩 日期

数字音乐盒设计 摘要:本设计是一个基于STC89C51系列单片机的音乐盒,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个多功能音乐盒。该音乐盒主要由按键电路、复位电路、时钟电路以及蜂鸣器组成。使用两个按键控制音乐盒,一个用来切换歌曲,另一个用来切换8路LED的变化花样,本音乐盒共有两首歌曲,花样灯花样共计4种。播放歌曲时,蜂鸣器发出某个音调,与之对应的LED亮起。本设计利用KEIL编程软件对音乐盒源程序进行编程并调试,配合PROTEUS仿真软件对硬件进行仿真调试,节约了设计时间。 关键字:音乐盒 STC89C51单片机 KEIL PROTEUS 音调

目录 1概述 (3) 1.1设计方案 (3) 1.2研究内容 (3) 1.3音乐盒的功能结构图 (3) 2硬件设计 (4) 2.1总体设计框图 (4) 2.2各部分硬件设计及其原理 (4) 2.2.1 STC89C51简介 (4) 2.2.2 LED显示电路设计与原理 (5) 2.2.3 时钟振荡电路 (5) 2.3硬件电路图及功能 (6) 3软件设计 (7) 3.1音调、节拍以及编码的确定方法 (7) 4.1.1 音调的确定 (7) 4.1.2 节拍的确定 (8) 4.1.3 编码 (9) 4.2软件程序设计 (10) 4.2.1 程序流程图及相应代码块 (10) 4.2.2 程序源代码(见附录A) (14) 5调试 (14) 5.1检查硬件连接 (14) 5.2检查软件系统 (14) 5.3测试结果 (14) 5.3.1.总体运行图 (14) 5.3.2.花样灯4种花样图 (15) 参考文献 (16) 附录A 程序源代码及注释 (16)

基于AT89C51单片机的最小系统设计

基于AT89C51单片机的最小系统设计 组员:田竹、王维、袁倍明 摘要: 本次实验课题为设计一个基于AT89C51单片机的最小系统。用P1口设计流水灯,用P2口和P0口分别作段选和位选设计了六位数码管的静动态显示和简易的电子钟,用P3口设计了一个4*4的矩阵键盘,并用蜂鸣器实现了唱歌功能和键盘按下的声响,用62256扩展内部RAM,还扩展并实现了LCD1602的静动态显示,最后通过ADC0809和DAC0832分别实现了A/D、D/A转换功能。 一、系统电源 用MC7805集成稳压器将输入电压转为+5V稳压给系统供电。 二、晶振(12MHZ)及复位电路 采用12MHz的外部晶振,给系统提供时钟信号。并采用了按键复位电路。

三、流水灯 功能描述:让8个led灯循环闪烁 源程序: 流水灯 ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV A,#11111110B LOOP:MOV P1,A;给P1口送值LCALL DLY RL A ;循环左移 LJMP LOOP DL Y:MOV R7,#250 ;延时子程序DLY1: MOV R6,#200 DJNZ R6,$ DJNZ R7,DLY1 RET END 四、数码管 功能描述:数码管动态显示1~6 源程序: ORG 0000H LJMP START ORG 0100H START: MOV P0,#0 MOV P2,#0F9H SETB P0.0 LCALL DELAY CLR P0.0 MOV P2,#0C4H

SETB P0.1 LCALL DELAY CLR P0.1 MOV P2,#0D0H SETB P0.2 LCALL DELAY CLR P0.2 MOV P2,#99H SETB P0.3 LCALL DELAY CLR P0.3 MOV P2,#92H SETB P0.4 LCALL DELAY CLR P0.4 MOV P2,#82H SETB P0.5 LCALL DELAY CLR P0.5 LJMP START DELAY: MOV R5,#10 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END 五、4*4矩阵键盘和蜂鸣器 功能描述:通过按键让数码管显示0-F,按键按下时,蜂鸣器响一下。

AT89C51单片机

第一章绪论 随着微电子技术和计算机技术的迅速发展,特别是单片微机的出现和发展,使传统的电子测量仪器在原理、功能、精度及自动化水平等方面都发生了巨大的变化,形成一种完全突破传统概念的新一代测量仪器。频率计广泛采用了高速集成电路和大规模集成电路,使仪器在小型化、耗电、可靠性等方面都发生了重大的变化。对石英晶体振荡器,各种信号发生器,各种倍频和分频电路输出信号的频率需要测量;广播,电视,电讯,微电子技术等现代化的科学领域,更需要进行频率测量。 采用不同的测量原理,可以设计出不同结构的频率测量仪器,所以按测量原理来分,数字频率计可分为谐振式,比较式和计数式三类;按选用电路形式来分,它又可以分为模拟式和数字式两类。 通常能对频率和时间两种以上功能测量的数字化测量仪器,称为数字频率计,有时也称为通用计数器或电子计数器。当前较多采用的是数字频率计。计数式频率计是基于时间或频率的A/D转换原理,并依赖于数字计数技术发展起来的一类新型数字仪器。与其他电子仪器一样,数字频率计也经历了电子管,晶体管和集成电路等几个阶段,其性能日臻完善,功能不断扩大,若配以适当的插件或传感器,还可以对多种电量和非电量进行测量。 1.1 频率计的概述 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器。它是一种用十进制数字显示被测信号频率的数字测量仪器。它的基本功能是测量正弦信号,方波信号及其他各种单位时间内变化的物理量。在进行模拟、数字电路的设计、安装、调试过程中,由于其使用十进制数显示,测量迅速,精确度高,显示直观,经常要用到频率计。 本数字频率计将采用定时、计数的方法测量频率,采用一个1602A LCD显示器动态显示6位数。测量范围从1Hz—10kHz的正弦波、方波、三角波,时基宽度为1us,10us,100us,1ms。用单片机实现自动测量功能。 1.2 频率计的主要性能 1.2.1. 测试功能 它表明数字频率计所具备的全部测试功能,一般包括测频,周期,累计脉冲数,频率比,时间间隔及自较等功能。 1.2.2. 测量范围 它说明不同功能的有效测量范围。如测频率时,测量范围是数字频率计处于正常工作条件下,被测信号的频率范围,一般用频率的上,下限值表示,低端大部分从10HZ开始;高端因不同的频率计而异。因此高端频率是确定低,中,高速计数器的依据。在测量周期时,测量范围常用周期的最大值,最小值表示。 1.2.3. 输入特性 数字频率计一般有2~3个输入通道,测试不同项目时,被测信号可经不同的通道输入仪器。输入特性是表明数字式频率计于被测信号源相连的一组特性参数,通常包括以下几个方面。(1)输入灵敏度。通常指仪器能正常工作的最小输入电压的有效值。常用的数字频率计的灵敏度在100mV左右。 (2)最大输入电压。指仪器所能允许的最大输入电压值,被测信号超过该值,则仪器不能保证正常工作,甚至会损坏。 (3)输入耦合方式。仪器设置AC和DC两种耦合方式。AC耦合时,被测信号经隔直电容输入,DC耦合时,被测信号直接进入输入电路。AC耦合时适用于测量带有直流电平的信号,DC耦合适用于低频脉冲或阶跃方波信号的测量。(4)输入阻抗。为了减轻信号源的负载,数字式频率计一般采用高频输入阻抗。输入阻抗由输入电阻和输入电容两部分组成。

相关主题