文档库 最新最全的文档下载
当前位置:文档库 › MCS51单片机课后作业解答

MCS51单片机课后作业解答

MCS51单片机课后作业解答
MCS51单片机课后作业解答

MCS51单片机作业解答

第二章 MCS-51单片机的结构和原理

(1) MCS-51单片机芯片包含哪些主要功能部件?

答:CPU、4KBROM、128B RAM、4个8位I/O口、2个定时计数器、串行I/O口、中断系统、时钟电路、位处理器、总线结构。

(2)MCS-51单片机的 /EA端有何用途?

答:当/EA =0 只访问片外程序区;当/EA=1时,先访问片内程序区,当PC超过片内程序容量时,自动转向外部程序区。

(3)MCS-51单片机有哪些信号需要芯片引脚以第二功能的方式提供?

答:RXD、TXD、/INT0、/INT1、T0、T1、/WR、/RD

(4)MCS-51单片机的4个I/O口在使用上各有什么功能和特点?

答:P1口通用输入输出;P0口数据总线、地址总线低8位、通用输入输出

P2口地址总线高8位、通用输入输出

P3第2功能信号、通用输入输出。

(5)单片机的存储器分哪几个空间? 试述各空间的作用。

答:程序存储器:内部ROM、外部ROM

数据存储器:内部基本RAM、专用寄存器区、外部RAM

(6)简述片内RAM中包含哪些可位寻址单元?

答:20H~2FH共16个可寻址单元

(7)什么叫堆栈? 堆栈指针SP的作用是什么? 在程序设计中为何要对SP重新赋值?

答:只允许数据单端输入输出的一段存储空间。

SP的作用是用来存放堆栈栈顶的地址。

因为SP的初值是07H,后继的是寄存器区和位寻址区,为了便于编程工作,要修改SP.

(8)程序状态字寄存器PSW 的作用是什么?简述各位的作用。

答:PSW用来存放程序执行状态的信息,

CY—加减运算的进位、借位

AC—辅助进位标志,加减运算的低4位进位、借位

(9)位地址65H 与字节地址65H 如何区别? 位地址65H具体在片内RAM中什么位置?

答:位地址65H中是一位0/1的数据,字节地址65H是8位0/1的数据。

位地址65H在片内RAM中2CH单元第5位。

(10)什么是振荡周期、时钟周期、机器周期和指令周期? 如何计算机器周期的确切时间? 答:振荡周期——为单片机提供信号的振荡源的周期

时钟周期——振荡脉冲2分频的信号

机器周期——完成一个基本操作需要的时间,是振荡周期/12=1T

指令周期——执行1条指令需要的时间 1~4T

(11)单片机工作时在运行出错或进入死循环时,如何处理?

答:复位处理,在单片机的RESET加持续1段时间的高电平

(12)使单片机复位的方法有几种?复位后单片机的初始状态如何?

分上电复位和手动复位。复位后PC=0000H ALE=0 /PSEN=1

(13)开机复位后,单片机使用的是哪组工作寄存器? 它们的地址是什么? 如何改变当前工

作寄存器组?

答:单片机使用的是第0组工作寄存器R0-R7, 对应的地址为00H-07H,采用置位复

位RS1、RS0,可以改变单片机使用的工作寄存器。

第3章 MCS-51单片机的汇编语言指令系统

单片机的指令格式为:操作码+操作数

[标号:] 操作码助记符 [目的操作数] [,源操作数] [;注释]

答: MCS-51单片机有7种寻址方式: 立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址。

立即寻址——操作数在指令中直接给出。

直接寻址——操作数存放的地址在指令中给出。可寻址RAM128B和特殊功能寄存器

寄存器寻址——操作数在寄存器中。可寻址4组寄存器共32个字节即00H—1FH

寄存器间接寻址——操作数的地址放在寄存器R0、R1、dptr中

@R0、R1可寻址256B @DPTR可寻址64KB

变址寻址——操作数的地址由变址寄存器A和基址寄存器DPTR、PC相加得到。

可寻址64KB的程序区

相对寻址——实现程序的相对转移,地址范围-128~+127

位寻址——按位寻址,操作数的地址为位地址。可寻址 RAM区128bit 特殊功能区的128bit

答:对片内RAM可以用直接寻址和寄存器寻址方式。

对片外RAM可以用寄存器寻址方式-

答:在对片外RAM单元的寻址中用Ri间接寻址只能寻址当前页的256B,用dptr间接寻址可以直接寻址64KB的内存

答:(1)立即寻址(2)直接寻址(3)寄存器间接寻址(4)寄存器寻址(5)MOVC A @A+DPTR

变址寻址(6)相对寻址(7)CLR A 立即寻址 ,CLR C 位寻址

答:这2条指令的操作结果相当,但是前1条指令速度快,指令短

答:如A= 12H (PC) = 0FFEH + 20H +3= 1021H 如A= 10H (PC)= 0FFEH +3 = 1001H

第4章MCS-51 单片机汇编语言程序设计

解: x equ 5AH

Y EQU 5BH

ORG 0100H

START: CJNE A,#10, START1

START1: JC START_M ;X<10

CJNE A,#15, START2

START2: JNC START_B ;X>=15

MOV B,A ;10<=X<15

MUL AB

ADD A,#8

SJMP START_END

START_M: MOV B,A ; X<10

MUL AB

DEC A

SJMP START_END

START_B: MOV A,#41

START_END: MOV Y,A

SJMP $

解:data equ 50h

Num equ 08h

Result equ 54h

CAL_AVE: MOV R0, #DATA

MOV R2, #Num

MOV R3, #0

MOV R4, #0

CLR C

CAL_AVE1: MOV A, R4

ADDC A, @R0

MOV R4, A

MOV A, R3

ADDC A, #0

MOV R3 , A

DJNZ R2, CAL_AVE1

MOV R2, #3

CAL_AVE2:

CLR C

MOV A, R3

RRC A

MOV R3, A

MOV A, R4 ;/2

RRC A

MOV R4, A

DJNZ R2, CAL_A VE2

MOV Result, R3

RET

解:data1 equ 40h

Data2 equ 50h

Result equ 40h

Mult10_DATA: MOV R0 , #DATA1

MOV R1 , # DATA2

MOV R2, #10H

CLR C

Mult10_DATA1:

MOV A, @R0

ADDC A, @R0 ;*2

MOV @R0, A

MOV @R1, A

INC R0

INC R1

DJNZ R2, Mult10_DATA1

MOV R0 , #DATA1

MOV R2, #10H

CLR C

Mult10_DATA2:

MOV A, @R0

ADDC A, @R0 ;*2*2

MOV @R0, A

INC R0

DJNZ R2, Mult10_DATA2

MOV R0 , #DATA1

MOV R2, #10H

CLR C

Mult10_DATA3:

MOV A, @R0

ADDC A, @R0 ;*2*2*2

MOV @R0, A

INC R0

DJNZ R2, Mult10_DATA3

MOV R0 , #DATA1

MOV R1 , # DATA2

MOV R2, #10H

CLR C

Mult10_DATA4:

MOV A, @R0 ;*2*2*2

ADDC A, @R1 ; + *2

MOV @R0, A

INC R0

INC R1

DJNZ R2, Mult10_DATA4

RET

解:data equ 2000H

NUM EQU 100

EVEN EQU 30H ;偶数

ODD EQU 31H ;奇数

CAL_EVEN_ODD: MOV DPTR , #DATA

MOV R2, #NUM

CAL_EVEN_ODD2: MOVX A, @DPTR

JB ACC.0, CAL_ODD ;

INC EVEN

SJMP CAL_EVEN_ODD1

CAL_ODD: INC ODD

CAL_EVEN_ODD1: INC DPTR

DJNZ R2, CAL_EVEN_ODD2

RET

解:DATA_ASC EQU 2000H

DATA_BCD EQU 3000H

NUM EQU 10

ASC_TO_BCD: MOV DPTR, #DATA_ASC

MOV P2, DPH

MOV R0, DPL

MOV DPTR,#DATA_BCD

MOV R2, #NUM

ASC_TO_BCD1: MOVX A, @R0

ANL A, #0FH

SW AP A

MOV B, A

INC R0

MOVX A, @R0

ANL A, #0FH

ORL A, B

MOVX @DPTR, A

INC R0

INC DPTR

DJNZ R2, ASC_TO_BCD1

RET

第5章单片机C51程序设计

解:

unsigned int htoi(unsigned char s[], unsigned int size) {

unsigned int tmp[10];

unsigned int i = 0;

unsigned int count = 1, result = 0;

unsigned int flag = 0;

if((s[i] == '0') && (s[i+1] == 'x') || (s[i+1] == 'X')) flag = 2;

for(i=size-1; i>=flag; i--){

if((s[i]>='0') && (s[i]<='9'))

tmp[i] = s[i] - 48;

else if((s[i]>='a') && (s[i]<='f'))

tmp[i] = s[i] - 'a' + 10;

else if((s[i]>='A') && (s[i]<='F'))

tmp[i] = s[i] - 'A' + 10;

else

tmp[i] = 0;

result = result + tmp[i]*count;

count = count*16;

}

return result;

}

解:

#include

#include

typedef unsigned char bool;

bool strend(unsigned char s[], unsigned char t[]);

int main()

{

unsigned char s1[] = "abcdefg";

unsigned char s2[] = "ef";

bool flag = strend(s1, s2);

printf("the result is %d\n", flag);

return 0;

}

bool strend(unsigned char s[], unsigned char t[])

{

int ls = strlen(s);

int lt = strlen(t);

if (lt == 0)

return 1;

if (ls < lt)

return 0;

return !strcmp(&s[ls-lt],t);

}

解:晶振频率12MHZ, 25ms中断1次,5次中断为125ms移位1次。#define uint unsigned int

#define uchar unsigned char

uchar temp,num;

void main()

{

TMOD=0x10;

TH1=(65536-25000)/256;

TL1=(65536-25000)%256;

EA=1;

ET1=1;

TR1=1;

P1=0xff;

temp=0xfe;

while(1)

{

P1=temp;

}

}

void time1() interrupt 3

{

TH1=(65536-25000)/256;

TL1=(65536-25000)%256;

num++;

if(num==5)

{

num=0;

temp=(temp<<1 | temp>>7);

}

}

答:不是, 5/9=0; 则c=0.

改为 C= 5.0/9.0 *(F-32.0) ;

第6章单片机内部资源

解:因为10KHZ的周期为100us ,定时器中断时间可为50us,因此有4中方式。

方式0: x= 213 -50*(12/12) =8192-50 =1FCEH

= 1 1111 1100 1110B TH0 = FEH TL0 = 0EH 方式1: x= 216 -50*(12/12) =65536-50 =FFCEH

= 1111 1111 1100 1110B TH0 = FEH TL0 = CEH

方式2: x= 28 -50*(12/12) =256-50 =CEH

= 1100 1110B TH0 = CEH TL0 = CEH

方式3: x= 28 -50*(12/12) =256-50 =CEH

= 1100 1110B TL0 = CEH

解: 1.采用汇编语言

定时为50ms,采用方式1,X=216 -50000*(12/12)=3CB0H ORG 000BH

LJMP T0_INT

MAIN: MOV TMOD, #01H

MOV TH0, #3CH

MOV TL0, #0B0H

SETB ET0

SETB IE

SETB TR0

CLR P2.0

SJMP $

T0_INT: MOV TL0, #0B0H

MOV TH0, #3CH

CPL P2.0

RETI

2.采用c51语言

定时为50ms,采用方式1,X=216 -50000*(12/12)

#include

sbit P2_0 = P2^0;

void main(void)

{

TMOD = 0x01;

P2_0 = 0;

TH0 = (65536 – 500000)/256 ;

TL0 = (65536 – 500000)%256 ;

EA=1 ;

ET0 =1;

TR0 =1;

Do{} while (1);

}

Void timer0(void) interrupt 1

{

TL0 = (65536 – 500000)%256 ;

TH0 = (65536 – 500000)/256 ;

P2_0 = !P2_0;

}

解: 1.采用汇编语言

定时为100ms,采用方式1,X=216 -100000*(6/12)=3CB0H,当中断3次时清0,满10次重新置1。

ORG 000BH

LJMP T0_INT

MAIN: MOV TMOD, #01H

MOV TH0, #3CH

MOV TL0, #0B0H

MOV R2,#0

SETB ET0

SETB IE

SETB TR0

SETB P1.0

SJMP $

T0_INT: MOV TL0, #0B0H

MOV TH0, #3CH

INC R2

CJNE R2,#3,T0_INT1

CLR P1.0

RETI

T0_INT1:CJNE R2,#10, T0_INT2

SETB P1.0

MOV R2,#0

T0_INT2: RETI

2.采用c51语言

定时为100ms,采用方式1,X=216 -100000*(6/12) #include

sbit P1_0 = P1^0;

uchar NUM =0;

void main(void)

{

TMOD = 0x01;

P1_0 = 1;

TH0 = (65536 – 500000)/256 ;

TL0 = (65536 – 500000)%256 ;

EA=1 ;

ET0 =1;

TR0 =1;

Do{} while (1);

}

Void timer0(void) interrupt 1

{

TL0 = (65536 – 500000)%256 ;

TH0 = (65536 – 500000)/256 ;

NUM++;

If (NUM ==3) P1_0 = 0;

Else if (NUM ==10)

{

NUM =0;

P1_0 =1;

}

}

解: 1.采用汇编语言

定时为100ms,采用方式1,X=216 -100000*(6/12)=3CB0H,当中断10次时清0,满20次重新置1。

ORG 000BH

LJMP T0_INT

MAIN: MOV TMOD, #01H

MOV TH0, #3CH

MOV TL0, #0B0H

MOV R2,#0

SETB ET0

SETB IE

SETB TR0

SETB P1.7

SJMP $

T0_INT: MOV TL0, #0B0H

MOV TH0, #3CH

INC R2

CJNE R2,#10,T0_INT1

CLR P1.7

RETI

T0_INT1:CJNE R2,#20, T0_INT2

SETB P1.7

MOV R2,#0

T0_INT2: RETI

2.采用c51语言

定时为100ms,采用方式1,X=216 -100000*(6/12)

#include

sbit P1_7 = P1^7;

uchar NUM =0;

void main(void)

{

TMOD = 0x01;

P1_7 = 1;

TH0 = (65536 – 500000)/256 ;

TL0 = (65536 – 500000)%256 ;

EA=1 ;

ET0 =1;

TR0 =1;

Do{} while (1);

}

Void timer0(void) interrupt 1

{

TL0 = (65536 – 500000)%256 ;

TH0 = (65536 – 500000)/256 ;

NUM++;

If (NUM ==10) P1_7 = 0;

Else if (NUM ==20)

{

NUM =0;

P1_7 =1;

}

}

解: 1.采用汇编语言

定时为100ms,采用方式1,X=216 -100000*(6/12)=3CB0H,当中断10次时p1.0=0,外部INT0中断时 p1.0=1,启动定时器。

ORG 0000H

LJMP MAIN

ORG 0003H

LJMP INT0_INT

ORG 000BH

LJMP T0_INT

MAIN: MOV TMOD, #01H

MOV TH0, #3CH

MOV TL0, #0B0H

MOV R2,#0

SETB ET0

SETB IE

SETB EX0

SETB IT0

SETB P1.0

CLR P1.1

SJMP $

T0_INT: MOV TL0, #0B0H

MOV TH0, #3CH

INC R2

CJNE R2,#10, T0_INT2

SETB P1.0

CLR P1.1

CLR TR0

T0_INT2: RETI

INT0_INT: SETB TR0

MOV R2,#0

CLR P1.0

SETB P1.1

RETI

2.采用c51语言

定时为100ms,采用方式1,X=216 -100000*(6/12) #include

sbit P1_0 = P1^0;

sbit P1_1 = P1^1;

uchar NUM =0;

void main(void)

{

TMOD = 0x01;

P1_0 = 1;

P1_1 = 0;

TH0 = (65536 – 500000)/256 ;

TL0 = (65536 – 500000)%256 ;

EA=1 ;

ET0 =1;

EX0 =1;

IT0 =1;

Do{} while (1);

}

Void timer0(void) interrupt 1

{

TL0 = (65536 – 500000)%256 ;

TH0 = (65536 – 500000)/256 ;

NUM++;

If (NUM ==10)

{

P1_0 =1;

P1_1 =0;

TR0 =0;

}

}

Void INT_0(void) interrupt 0

{

P1_0 =0;

P1_1 =1;

TR0 =1;

NUM =0;

}

}

解:外部脉冲由管脚输入,可设T0工作于定时器方式1,计数初值为0,当输入高电平时对T0计数,当高电平结束时,计数值乘上机器周期数就是脉冲宽度。

工作方式控制字TMOD=00001001B=09H,计数初值TH1=00、TL0=00H。

汇编语言程序:

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV TMOD ,#09H ;T0定时,方式1,GATE=1

MOV TH0 ,#00H ;置TH0计数初值

MOV TL0 ,#00H ;置TL0计数初值

WAIT: JB P3.2 WAIT ;等待/P3.2引脚变为低电平

SETB TR0 ;预启动T0

WAIT1: JNB P3.2 ,WAIT1 ;等待/P3.2引脚变为高电平、启动计数

WAIT2: JB P3.2 ,WAIT2 ;等待/P3.2引脚再变为低电平

CLR TR0 ;停止计数

MOV 51H ,TH1 ;读取计数值,存入指定的单元

MOV 50H ,TL1

SJMP $

END

C语言程序:

#include

unsigned char data *p;

void main(void)

{

TMOD=0x09; /* T0工作在定时器方式1,GATE=1 */

TH0=0;

TL0=0;

do { } while (P3.2); /* 等待/P3.2引脚变为低电平 */

TR0=1; /* 启动定时器/计数器0 */

do { } while (! P3.2); /* 等待引脚变为高电平、启动计数*/

do { } while (P3.2); /* 等待引脚再变为低电平 */

TR0=0; /* 停止计数 */

p=0x50;

*p=TL0;

p=p+1;

*p=TH0;

}

解:有4种工作方式

方式0: 8位同步移位寄存器方式,波特率fosc/12

方式1: 10位异步收发方式,波特率可变

方式2: 11位异步收发方式,波特率f osc/32、fosc/64

方式3: 11位异步收发方式,波特率可变

解:串口SBUF 分接收SBUF和发送SBUF,占用同一地址。

解:

分析:甲、乙两机都选择方式1:8位异步通信方式,最高位用作奇偶校验,波特率为1200bps,甲机发送,乙机接收,因此甲机的串口控制字SCON为40H,乙机的串口控制字SCON为50H。设甲、乙两机的振荡频率为12MHZ,由于波特率为1200。SMOD =0 ,定时/计数器T1选择为

方式2,则初值为:

初值=256 - fosc×2SMOD /(12×波特率×32)

=/(12×1200×32)≈230=E6H

根据要求定时/计数器T1的方式控制字TMOD为20H。

甲机的发送程序:

TSTART:MOV TMOD,#20H

MOV TL1,#0E6H

MOV TH1,#0E6H

MOV PCON,#00H

MOV SCON,#40H

MOV R0,#30H

MOV R7,#10H

SETB TR1

LOOP:MOV A,@R0

MOV SBUF,A

WAIT:JNB TI,WAIT

CLR TI

INC R0

DJINZ R7,LOOP

RET

乙机接收程序:

RSTART:MOV TMOD,#20H

MOV TL1,#0E6H

MOV TH1,#0E6H

MOV PCON,#00H

MOV DPTR,#0030H

MOV R7,#10H

SETB TR1 ;启动定时器1

LOOP:MOV SCON,#50H

WAIT:JNB RI,WAIT

MOV A,SBUF

MOVX @DPTR,A

INC R0

DJNZ R7,LOOP

RET

甲机对应的C语言发送程序如下:

#include “reg51.h” /* 包含8051单片机的寄存器定义头文件 */ unsigned char data ADDRA [0X30]; /* 在RAM区定义16个单元 */

unsigned char num=0; /* 声明计数变量 */

unsigned char *p; /* 定义 p为指针 */

void main(void) /* 主程序 */

{

SCON=0x40; /* 置串行口工作方式1 */

TMOD=0x20; /* 定时器1为工作方式2 */

PCON=0x00; /* SMOD=0 */

TL1=0xe6; /* 置计数初值 */

TH1=0xe6; /* 计数重装值 */

TR1=1; /* 启动定时器1 */

EA=1; /* 开中断 */

ES=1; /* 串行口开中断 */

p=ADDRA; /* 设置发送数据缓冲器区指针 */

SBUF=*p; /* 发送第一个数据 */

while (1); /* 等待中断 */

}

void Ser_T1A (void) interrupt 4 /* 中断号4是串行中断 */

{

TI=0; /* 清发送中断标志 */

num++; /* 计数变量加1 */

if (num==0x10) ES=0; /* 判断是否发送完,若已完,则关中断 */ else /* 否则,修改指针,发送下一个数据 */ {

p++;

SBUF=*p;

}

}

乙机对应的C语言程序如下:

#include “reg51.h”

unsigned char xdata ADDRB [0X0030];

unsigned char num=0; /* 声明计数变量 */

unsigned char *p; /* 定义 p为指针 */

void main(void) /* 主程序 */

{

SCON=0x50; /* 置串行口工作方式1,允许接收 */

TMOD=0x20; /* 定时器1为工作方式2 */

PCON=0x00; /* SMOD=0 */

TL1=0xe6; /* 置计数初值 */

TH1=0xe6; /* 计数重装值 */

TR1=1; /* 启动定时器1 */

EA=1; /* 开中断 */

ES=1; /* 串行口开中断 */

p=ADDRB; /* 设置接收数据缓冲器区指针 */

while (1); /* 等待中断 */

}

void Ser_T1B (void) interrupt 4 /* 中断号4是串行中断 */

{

RI=0; /* 清接收中断标志 */

num++; /* 计数变量加1 */

if (num==16)

ES=0; /* 判断是否接收完,若已完,则关中断 */

else /* 否则,接收数据,修改指针 */

{

*p=SBUF

p++;

}

}

第7章单片机系统扩展

1、在LED显示器上用动态扫描方式实现0123四位数字显示。

2、在LED显示器上显示4位10进制数,按键每按一次,对应的位数上的数值加1。

3、在LED显示器上显示4*4键盘上按下的对应按键值(0-9)。

单片机作业及答案 共13页

1.CS-51系列单片机串行口中断标志TI和R I在执行中断程序后,能否自动清零,这样设 计的意图是什么? 答:不能,由于串行通信的收发电路使用一个中断源,因而,有利于单片机查询是接收中断还是发送中断。同时有利于全双工通信。 2.写出8051单片机的复位及5个中断服务程序的入口地址。 答:(1)复位入口地址:0000H; (2)外部中断0中断服务程序入口地址为0003H; (3)定时器/计数器0中断服务程序入口地址为000BH; (4)外部中断1中断服务程序入口地址为0013H; (5)定时器/计数器1中断服务程序入口地址为001BH; (6)串行口中断服务程序入口地址为0023H。 3.简述MCS-51单片机的工作寄存器的分布结构(包括:几个区、如何选择、每个区几个 寄存器、如何表示)? 答:(1)四个通用寄存器区; (2)通过PSW的RS1、RS0选择: 00--0区、01—1区、10—2区、11—3区; (3)每个区有8个工作寄存器R0—R7; 4.MCS-51单片机的P0口作为一般的I/O口使用时应注意什么? 答:应注意: ①由于P0口的输出级是漏极开路的开漏电路,所以作为一般的I/O口使用时需 接外部上拉电阻; ②P0口的输出级的输出驱动能力,可以驱动8个LS的TTL电路,使用必须确 认是否能驱动的外部电路,否则应加驱动电路; ③由于P0口为准双向口,在读引脚时,应先把口置1。 5.画出MCS-51单片机的三总线图(控制总线应包括三条)并注明几条数据线、几条地址 线、各个控制线的意义。 答:(1) (2)8条数据线、16条地址线 (3)/RD:对外部RAM及I/O口的读允许; /WR:对外部RAM及I/O口的写允许; /PSEN:对外部ROM的读允许; 6.MCS-51系列单片机内部有哪些主要逻辑部件组成?(书) 答:CPU、RAM、程序存储器、定时器、I/O接口、中断系统、串行接口等。 7.简述P3口的特殊专用功能(第2功能)。 答:P3.0----串行通信收;P3.1-----串行通信发;P3.2-----外部中断0;P3.3-----外部中断1;P3.4----- T0的计数输入;P3.5----- T1的计数输入;P3.6-----外部数据区写有效; P3.7-----外部数据区读有效。

基于MCS-51单片机的热量计

摘要 热量计在我们生活中最实际的应用应该是民用住宅的暖气计量了而我国现有的按使用面积收费的方式存在着许多不合理的因素。为解决这一问题,本论文介绍了一种新型的热量计,该热量计是基于51系列单片机,主要由流量传感器、温度传感器、单片机三部分组成。本文详细阐述了热量计的硬件和软件设计,并简要介绍了相应的抗干扰措施。 热量计可以精确的对实际热量的耗损进行测量,是实施城市供热体制改革,推行按热量计费的关键设备,对热量计消耗智能计算,以用户实际耗用热量为计量收费依据。如果将热量计作为供暖公司向每一位住户收费的依据和手段,是容易被百姓们所接受和推崇的,而且由于热量与费用直接相关,也加强了住户的节能意识。用热量计进行计量更为科学、合理,既方便用户,又便于管理。 关键词:热量计;单片机;温度传感器;流量传感器 Abstract

Calorimeter in our lives should be the most practical application of measurement of residential heating and use of the area by our existing way of charging, there are many irrational factors. To solve this problem, this paper introduces a new type of calorimeter, the calorimeter is based on the 51 series, mainly by the flow sensor, temperature sensor, microcontroller three parts. This paper describes the calorimeter hardware and software design, and briefly describes the corresponding anti-jamming measures. Calorimeter can accurately on actual measurement of heat loss is to implement the urban heating system, the implementation of key equipment by heat billing for consumption calorimeter intelligent computing to user's actual calorie consumption metering and charging basis. If the calorimeter as heating companies charge to every household basis and means, people who are likely to be accepted and respected, and because of the heat and the costs are directly related, but also strengthened the household energy awareness. Measured with a calorimeter more scientific and reasonable, not only user-friendly, and easy to manage. Keywords: Calorimeter; SingleChip Microcomputer; Temperature sensor; Flow sensors

单片机课后习题答案

单片机课后习题答案 1.89C51单片机内包含哪些主要逻辑功能部件? 答:80C51系列单片机在片内集成了以下主要逻辑功能部件: (l)CPU(中央处理器):8位(2)片内RAM:128B(3)特殊功能寄存器:21个(4)程序存储器:4KB (5)并行I/O口:8位,4个(6)串行接口:全双工,1个(7)定时器/计数器:16位,2个(8)片内时钟电路:1个 2.89C51的EA端有何用途? 答:/EA端接高电平时,CPU只访问片内flash Rom并执行内部程序,存储器。/EA端接低电平时,CPU只访问外部ROM,并执行片外程序存储器中的指令。/EA端保持高电平时,CPU执行内部存储器中的指令。 3.89C51的存储器分哪几个空间?如何区别不同空间的寻址? 答:ROM(片内ROM和片外ROM统一编址)(使用MOVC)(数据传送指令)(16bits地址)(64KB)片外RAM(MOVX)(16bits地址)(64KB)片内RAM (MOV)(8bits地址)(256B) 4.简述89C51片内RAM的空间分配。 答:片内RAM有256B,低128B是真正的RAM区,高128B是SFR(特殊功能寄存器)区。 5.简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址单元。 答:片内RAM区从00H~FFH(256B) 其中20H~2FH(字节地址)是位寻址区对应的位地址是00H~7FH 6. 如何简捷地判断89C51正在工作? 答:用示波器观察8051的XTAL2端是否有脉冲信号输出(判断震荡电路工作是否正常?)ALE(地址锁存允许)(Address Latch Enable)输出是fosc的6分频 用示波器观察ALE是否有脉冲输出(判断8051芯片的好坏?) 观察PSEN(判断8051能够到EPROM 或ROM中读取指令码?) 因为/PSEN接外部EPROM(ROM)的/OE端子OE=Output Enable(输出允许) 7. 89C51如何确定和改变当前工作寄存器组? 答:PSW(程序状态字)(Program Status Word)中的RS1和RS0 可以给出4中组合,用来从4组工作寄存器组中进行选择PSW属于SFR(Special Function Register)(特殊功能寄存器) 9.读端口锁存器和“读引脚”有何不同?各使用哪种指令? 答:读锁存器(ANLP0,A)就是相当于从存储器中拿数据,而读引脚是从外部拿数据(如MOV A,P1这条指令就是读引脚的,意思就是把端口p1输入数据送给A)传送类MOV,判位转移JB、JNB、这些都属于读引脚,平时实验时经常用这些指令于外部通信,判断外部键盘等;字节交换XCH、XCHD算术及逻辑运算 ORL、CPL、ANL、ADD、ADDC、SUBB、INC、DEC控制转移CJNE、DJNZ

单片机课后习题解答

练习练习练习 第二章单片机结构及原理 1、MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么? 答:(1)一个8bit CPU是微处理器的核心,是运算和逻辑计算的中心。 (2)片内震荡器及时钟电路:提供标准时钟信号,所有动作都依据此进行。 (3)4K ROM程序存贮器:存贮程序及常用表格。 (4)128B RAM 数据存贮器:存贮一些中间变量和常数等。 (5)两个16bit定时器/计数器:完全硬件定时器 (6)32根可编程I/O口线:标准8位双向(4个)I/O接口,每一条I/O线都能独立地作输入或输出。 (7)一个可编程全双工串行口。 (8)五个中断源。 2、什么是指令?什么是程序? 答:指令是规定计算机执行某种操作的命令。 程序是根据任务要求有序编排指令的集合。 3、如何认识89S51/52存储器空间在物理结构上可以划分为4个空间,而在逻辑上又可以划分为3个空间? 答:89S51/52存储器空间在物理结构上设有4个存储器空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器。在逻辑上有3个存储器地址空间:片内、片外统一的64KB程序存储器地址空间,片内256B数据存储器地址空间,片外64KB的数据存储器地址空间。 4、开机复位后,CPU使用的是哪组工作寄存器?他们的地址是多少?CPU如何确定和改变当前工作寄存器组? 答:开机复位后,CPU使用的是第0组工作寄存器,地址为00H~07H,CPU通过改变状态字寄存器PSW中的RS0和RS1来确定工作寄存器组。 5、什么是堆栈?堆栈有何作用?在程序设计时,有时为什么要对堆栈指针SP重新赋值?如果CPU 在操作中要使用两组工作寄存器,SP应该多大? 答:堆栈是一个特殊的存储区,主要功能是暂时存放数据和地址,通常用来保护断点和现场。堆栈指针SP复位后指向07H单元,00H~1FH为工作寄存器区,20H~2FH为位寻址区,这些单元有其他功能,因此在程序设计时,需要对SP重新赋值。如果CPU在操作中要使用两组工作寄存器,SP应该至少设置为0FH。 6、89S51/52的时钟周期、机器周期、指令周期是如何分配的?当振荡频率为8MHz时,一个单片机周期为多少微秒? 答:时钟周期为时钟脉冲频率的倒数,他是单片机中最基本的、最小的时间单位。机器周期是指完成一个基本操作所需要的时间,一个机器周期由12个时钟周期组成。指令周期是执行一条指令所需要的时间,由若干个机器周期组成。 若fosc=8MHz,则一个机器周期=1/8×12μs=1.5μs 7、89S51/52扩展系统中,片外程序存储器和片外数据存储器共处同一地址空间为什么不会发生总线冲突? 答:访问片外程序存储器和访问数据存储器使用不同的指令用来区分同一地址空间。 8、程序状态字寄存器PSW的作用是什么?常用状态标志有哪些位?作用是什么? 答:程序状态字PSW是8位寄存器,用于存放程序运行的状态信息,PSW中各位状态通常是在指令执行的过程中自动形成的,但也可以由用户根据需要采用传送指令加以改变。各个标志位的意义如下: PSW.7(C y):进位标志位。 PSW.6(AC):辅助进位标志位,又称为半进位标志位。 PSW.5(F0):用户标志位。

基于MCS51单片机步进电机的控制系统设计与实现

学校代码:11509 学号:1005073029 Hefei University 毕业设计(论文) BACH ELOR DISSERTATI ON 论文题目:基于MCS51单片机步进电机的控制系统设计与实现学位类别:工学学士 学科专业: 10级自动化2班 作者姓名: 导师姓名: 完成时间: 2014年5月12日

基于MCS51单片机步进电机的控制系统设计与实现 中文摘要 步进电机最早出现在十九世纪初期,经过一段时期的发展步进电机被广泛应用在各个领域,因为其具有良好的控制作用。所以对步进电机控系统进一步的探索有着更为深远的意义。 本设计是基于单片步进电机的控制系统,硬件设计采用STC89C52单片机为控制核心;选取ULN2003作为驱动器提供脉冲频率,驱动步进电机运转;通过键盘的加减速按钮、正反转按钮和停止按钮来控制步进电机的速度、方向和停止,最后通过测试传感器将这几个参数显示在12864液晶显示器上。软件设计采用KEIL软件工具进行C语言编写,通过各个模块端口的定义,编写出了步进电机加减速控制和正反转的程序,最后通过各模块程序调试对硬件电路施行控制。 本设计以经济实用为原则,通过软硬件结合的设计,实现了对步进电机转动速度和方向的有效控制。该系统具有控制性好,设计成本低等优点。 关键字:STC89C52;步进电机;控制系统;测速传感器

Stepper motor control system design and implementation based on MCS51 microcontroller ABSTRACT The stepping motor was invented in the early 1800s, after a long period of development of the stepper motor is widely used in various fields, because it has good control effect. Therefore, the study of the stepper motor control system has a very important significance. This design is stepper motor control system based microcomputer, hardware design uses STC89C52 microcontroller as the control core; select ULN2003 as driver provides pulse frequency drive stepper motor rotation; through acceleration and deceleration button keyboard,forward and reverse button and stop buttons to control the stepper motor speed, direction and stops, Then these several parameters was displayed on the LCD monitor 12864 by the speed sensor. Software design using KEIL software tools for C language, defined each module port, and write a stepper motor control acceleration and deceleration and reversing the process. finally to control the hardware circuit through debugging. The design principle of economical and practical, through combination of software and hardware designed to achieve the effective control of the stepper motor rotation speed and direction. The system has good controllability and low coat. Keywords: STC89C52; stepper motor; control systems; speed sensor

(完整版)郭天祥_十天学通单片机_所有课后作业+答案

lesson1 对照TX-1C单片机学习板原理图写程序 用位操作和总线操作两种方法完成以下题目 1.熟练建立KEIL工程 2.点亮第一个发光管. 3.点亮最后一个发光管 4.点亮1、3、5、7 5.点亮二、四、五、六 6.尝试让第一个发光管闪烁 7.尝试设计出流水灯程序 =========================================================== =========================================================== lesson2 第一个发光管以间隔200ms闪烁 8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。 8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。 用8个发光管演示出8位二进制数累加过程。 8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全

部熄灭再以300ms间隔全部闪烁5次。重复此过程。 间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。 间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。 =========================================================== =========================================================== lesson3 1、利用定时/计数器T0从P1.0输出周期为1s的方波,让发光二极管以1HZ闪烁,设晶振频率为12MHz。。 2、利用定时/计数器T1产生定时时钟,由P1口控制8个发光二极管,使8个指示灯依次一个一个闪动,闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。 3、同时用两个定时器控制蜂鸣器发声,定时器0控制频率,定时器1控制同个频率持续的时间,间隔300ms依次输出1,10,50,100,200,400,800, 1k(hz)的方波。 4、用定时器以间隔500MS在6位数码管上依次显示0、1、2、3….C、 D、E、F,重复。 lesson4

单片机第二次作业

附录1 实验报告格式要求 《微机实验》报告 实验名称 分支程序设计实验 专业班级 一、任务要求 1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也 存于外部RAM 单元,请按要求编写程序。 240/2204020X X Y X X X X ?≥?=<

四、流程图

五、源代码(含文件头说明、资源使用说明、语句行注释) 1.File name: task2-1.asm Description: 240 /22040 20 X X Y X X X X ?≥ ? =<< ? ? ≤ ? 当 当 当 Date: 10/15/2011 Designed by: 刘珍 Source used: R0,30H ORG 1000H MOV R0,30H MOVX A,@R0 CJNE A,#20,STEP1 ;X≠20,转STEP1 L1: CPL A ;X=20,计算/X SJMP DONE STEP1: JNC STEP2 ;C=0,X>20,转STEP2 SJMP L1 ;C=1,X<20,转L1 STEP2: CJNE A,#40,STEP3 ;X≠40,转STEP3 L2: CLR C ;X=40,计算X*X ADDC A,@R0 SJMP DONE STEP3: JNC L2 ;C=0,X>40,转L2 CLR C ;C=1,20

基于MCS51单片机的压力测量 系统的设计与实现

基于MCS51单片机的压力测量 系统的设计与实现 班级; 学号: 姓名: 指导老师:

摘要 以STC-51单片机为核心,应用变阻式应变片测量压力并通过ADC0809的转换,经过单片机处理后在数码管模块显示的智能压力测量系统。是变阻式应变片和51单片机相结合的一个很典型的应用,本系统包括信号采集及转换电路、单片机最小系统、显示模块三个最基本的核心模块。外围扩展了键盘模块、蜂鸣器报警模块,用以调节系统的测量和显示范围。 经试验证明,系统能正常工作且误差在允许误差范围内,符合所有技术指标。 1.方案设计 通过应变片,将机械形变变为电压信号,再通过三级集成放大电路把信号放大,之后,ADC0809把模拟信号转化为数字信号,输入到单片机中,通过按键的控制,将电压的信号输出以数码管的形式显示出来,如果电压信号超出报警上线,蜂鸣

器就发出报警信号。 2.硬件系统设计与分析 (1)应变片与信号放大器的电路分析 应变片运用的是电阻式应变片,原理是吸附在基体材料上的应变电阻随机械性形变而产生电阻变化的现象,即它可以将被测件上的应变变化转化成一种电信号。桥式电路的输入信号是0~10v,经过电路后,输出的电压经过集成运放电路放大后,输入到A/D的In0口,完成信号的输入与传 (2)AD转换分析 A/D转换器是将模拟信号转化为数字信号,start与ale信号接到51到单片机的的p2.6接口,完成信号的输出,而clock接口接到74ls74d的2q接口, D0~D7接到单片机的p1.0~p1.7接口. (3)单片机最小系统分析

单片机的RST是复位接口,刚开始时是低电平,闭合s1开关,接通电源,获得高电平,完成复位。Xtal1与xtal2是晶振电路,为单片机提供工作频率,为12m。P0.0~p0.7接到74hc573的段锁存器,完成数码管的段选择,p2.4~p2,7接到位锁存器,完成数码管的位选择。 (4)按键分析 (5)数码管分析

单片机课后习题答案解析

一)填空题 1. 十进制数14对应的二进制数表示为(1110B),十六进制数表 示为(0EH)。十进制数-100的补码为(9CH),+100的补码为(64H)。 2. 在一个非零的无符号二进制整数的末尾加两个0后,形成一个新的无符号二进制整数,则新数是原数的(4)倍。 3. 8位无符号二进制数能表示的最大十进制数是(255)。带符号二进制数11001101转换成十进制数是(-51)。 4. 可以将各种不同类型数据转换为计算机能处理的形式并输送到计算机中去的设备统称为(输入设备)。 5. 已知字符D的ASCII码是十六进制数44,则字符T的ASCII码是十进制数(84)。 6. 若某存储器容量为640KB,则表示该存储器共有(655360)个存储单元。 7. 在计算机中,二进制数的单位从小到大依次为(位)、(字节)和(字),对应的英文名称分别是(bit)、(Byte)和(Word)。 8. 设二进制数A=10101101,B=01110110,则逻辑运算A∨B=(11111111),A ∧B=(00100100),A⊕B=(11011011)。 9. 机器数01101110的真值是(+110),机器数01011001的真值是(+89),机器数10011101的真值是(+157或-115),机器数10001101的真值是(+206或-50)。(二)单项选择题 1. 用8位二进制补码数所能表示的十进制数范围是(D) (A)-127 ~ +127 (B)-128 ~ +128 (C)-127 ~ +128 (D)-128 ~ +127 2. 下列等式中,正确的是(B) (A)1 KB = 1024×1024 B (B)1 MB = 1024×1024 B (C)1 KB = 1024 M B (D)1 MB = 1024 B 3. 程序与软件的区别是(C) (A)程序小而软件大(B)程序便宜而软件昂贵 (C)软件包括程序(D)程序包括软件 4. 存储器中,每个存储单元都被赋予惟一的编号,这个编号称为(A) (A)地址(B)字节(C)列号(D)容量 5. 8位二进制数所能表示的最大无符号数是(B) (A)255 (B)256 (C)128 (D)127 6. 下列4个无符号数中,最小的数是(B) (A)11011001(二进制)(B)37(八进制) (C)75(十进制)(D)24(十六进制) 7. 下列字符中,ASCII码最小的是(B) (A)a (B)A (C)x (D)X 8. 下列字符中,ASCII码最大的是(C) (A)a (B)A (C)x (D)X 9. 有一个数152,它与十六进制数6A相等,那么该数是(B) (A)二进制数(B)八进制数(C)十进制数(D)十六进制数 第2章80C51单片机的硬件结构 (一)填空题

单片机重点作业题答案整理-图文

单片机重点作业题答案整理-图文 以下是为大家整理的单片机重点作业题答案整理-图文的相关范文,本文关键词为单片机,重点,作业,答案,整理,图文,第一章,给出,列有,号,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在教育文库中查看更多范文。 第一章 1.给出下列有符号数的原码、反码和补码(假设计算机字长为8位)。

+45-89-6+112 答:【+45】原=00101101,【+45】反=00101101,【+45】补=00101101【-89】原=11011001,【-89】反=10100110,【-89】补=10100111【-6】原=10000110,【-6】反=11111001,【-6】补=11111010【+112】原=01110000,【+45】反=01110000,【+45】补=011100002.指明下列字符在计算机内部的表示形式。 AsendfJFmdsv120 答:41h73h45h4eh64h66h4Ah46h6Dh64h73h76h31h32h30h3.什么是单片机? 答:单片机是把微型计算机中的微处理器、存储器、I/o接口、定时器/计数器、串行接口、中断系统等电路集成到一个集成电路芯片上形成的微型计算机。因而被称为单片微型计算机,简称为单片机。 4.单片机的主要特点是什么?答:主要特点如下: 1)在存储器结构上,单片机的存储器采用哈佛(harvard)结构2)在芯片引脚上,大部分采用分时复用技术 3)在内部资源访问上,采用特殊功能寄存器(sFR)的形式4)在指令系统上,采用面向控制的指令系统5)内部一般都集成一个全双工的串行接口6)单片机有很强的外部扩展能力 5.指明单片机的主要应用领域。 答:单机应用:1)工业自动化控制;2)智能仪器仪表;3)计算机外部设备和智能接口;4)家用电器 多机应用:功能弥散系统、并行多机处理系统和局部网络系统。

单片机作业

单片机原理及应用大作业 题目:单片机电子时钟设计 设计一个基于51单片机的电子时钟,并且能够实现时分秒的显示和调整 1. 51单片机的特点和功能引脚; 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)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚备选功能 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才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时, /EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

单片机课后习题答案 胡汉才编

1.25 单片机内部由哪几部分电路组成?各部分电路的主要功能是什么? 解:单片机内部由CPU、存储器和I/O接口等电路组成。CPU的主要功能是对二进制数进行算术和逻辑运算、执行指令(从ROM中取指令,对指令译码,发各种控制信号使CPU和其他部分协调一致的工作,完成指令的功能),存储器由ROM和RAM组成,ROM的主要功能是存储单片机应用系统的程序,RAM的主要功能是存储实时数据或作为通用寄存器、堆栈、数据缓冲区。I/O接口的主要功能是负责单片机和外设、外部存储器间的通信。 第二章 存在的错别字问题:“振荡”写出“推荡”;“芯片”写成“蕊片”。 2.3、程序状态字PSW各位的定义是什么? 解:PSW的各位定义如下: Cy:进位标志位;AC:辅助进位位; F0:用户标志位;RS1、RS0:寄存器选择位; OV:溢出标志位;P:奇偶标志位; PSW1:未定义。 2.4、什么叫堆栈?8031堆栈的最大容量是多少?MCS51堆栈指示器SP有多少位,作用是什么?单片机初始化后SP中的内容是什么? 解:堆栈:符合“先进后出”或“后进先出”存取规律的RAM区域。 8031堆栈的最大容量是128B; MCS-51堆栈指针SP有8位,作用是存放栈顶(/栈低)地址; 单片机初始化后(即单片机复位后)SP中的内容是07H。 存在的问题:1、堆栈的定义中,未答出“RAM区域”,而用了“部件”; 2、只说了“单片机初始化后(即单片机复位后)SP中的内容是栈底地址”,未说明具体值07H; 3、8031堆栈的最大容量错成128M或256B。 2.5、数据指针DPTR有多少位,作用是什么? 解:数据指针DPTR有16位;作用是存放ROM或外部RAM的地址。 2.7、8051片内RAM容量有多少?可以分为哪几个区?各有什么特点? 解:8051的片内RAM容量有128B;分为三个区:工作寄存器区、位寻址区和便笺区; 存在的问题:1、8051的片内RAM容量错成256B。 2.8、8051的特殊功能寄存器SFR有多少个?可以位寻址的有哪些? 解:8051的SFR有21个,可位寻址的有11个:ACC、B、PSW、IP、P3、IE、P2、SCON、P1、TCON 和P0。 存在的问题:SFR有21个错成了26个;可位寻址的SFR中多了一个T2CON,个别同学甚至在T2CON 用了一个“+”号。

作业《单片机控制系统的编程与应用》习题与答案

一.选择 题 1. 89S51的内部程序存储器与数据存储器的容量各为多少? C P10 (A)64KB 、128B (B)4KB 、64KB (C)4KB 、128B (D)8KB 、256B 2. 下列哪个是 89S51多出的功能? B (A )存储加倍(B )具有 WDT 功能 ( C )多一个八 /输出端口 (D )多一个串行口 3. 在 DIP40 封装的 8051 芯片里,复位 RESET 引脚编号是多少? A (A )9 (B)19 (C)29 (D)39 4. 在 DIP40 封装的 8051 芯片里,接地引脚与电源的引脚编号是多少? C (A )1、21 (B )11、31 (C )20、40 (D )19、39 5. 下列那个软件同时提供 8051的汇编C 语言器? A (A)Keil u Vision (B)Java C++ (C)Dephi (D)Visual C++ 6. 在 12M H z 时的 8051系统里,一个机器周期? C (A)1ms (B)12us (C)1us (D)12ms 7. 在 8051 芯片里,哪个引脚是控制使用内部程序存储器,还是外部程序存储 器?B (A )XTAL1 (B) EA (C) PSEN (D)ALE 8. 下列哪个不是 8051所提供的寻址模式? D (A )寄存器寻址 (B )间接寻址 (C )直接寻址 (D )独立寻址 9. 下列哪个寄存器是 8051内的 16 位寄存器? C (A )ACC (B)C (C) PC (D)R7 10. 开发微型计算机所使用的在线仿真器的简称是什么? A (A )ISP (B)USP (C)ICE (D)SPI 11. 在 Keil u Vision3 里开发 8051 程序的第一步是什么? D (A )打开新的项目文件 (B )调试与仿真 (C )组建程序 (D )产生 执行文件 12. 在 Keil u Vision3 里,若要打开项目,应如何操作? D (A )运行 File / New 命令 (B )运行 File / New Project 命令 (C )运行 Project / New 命令 (D )运行 Project / New Project ? 命令 13. 进行调试 /仿真时,若想/输出端口的状态,可以如何处理? D (A )运行 Peripherals/I/O-Port 命令 (B )运行 View/Ports 命令 (C )运行 Edit/Ports 命令 (D )单击按钮 14. 下列哪项不是 Keil C 的预处理命令? C (A )#include (B)#define (C)#exit (D)#if 15. 下列哪项不是 Keil C 的数据类型? B (A )void (B )string (C)char (D)float 16. 在 805 1 /输 出 端 口 里 有上拉电阻? A (A) P0 (B) P1 (C) P2 (D) P3 17. 在 Keil C 的程序里,若要指定 Port0 的 bit3,如何编写程序? C (A )P0.3 (B) Port0.3 (C) P0^3 (D )Port0^3 1

基于MCS-51单片机的压力传感器实验

燕山大学 课程设计说明书题目:压力传感器实验 学院(系):里仁学院 年级专业:仪表10-2 学号: 学生姓名: 指导教师: 教师职称:

燕山大学课程设计(论文)任务书 院(系):电气工程学院基层教学单位:仪器科学与工程系 说明:此表一式四份,学生、指导教师、基层教学单位、系部各一份。 年月日

摘要 此次设计是基于8051单片机的压力检测系统,简要介绍了压力传感器电路的工作原理和弱信号传感器电路以及A/D变换电路的工作原理,通过压力传感器将需要测量的位置的压力信号转化为电信号,再经过运算放大器进行信号放大,送至8位A/D转换器ADC0808,然后将模拟信号转换成单片机可以识别的数字信号,再经单片机转换成LED显示器可以识别的信息,最后显示输出。 关键词:8051单片机压力传感器A/D变换电路LED显示器

目录 摘要---------------------------- -------------------------------------------------------------------------2 关键字---------------- ----------------------------------------------------------------------------------2 第一章总体设计方案及模块划分---------------------------------------------------------------4 1.1总体设计方案--------------------------------------------------------------------------------4 1.2模块划分--------------------------------------------------------------------------------------4 1.3设计框图如下图所示-----------------------------------------------------------------------5 第二章各模块设计参数-------------------------------------------------------------------------------5 2.1传感器元件模块------------------------------------------------------------------------------5 2.2 A/D转换模块---------------------------------------------------------------------------------8 2.3控制器处理模块-----------------------------------------------------------------------------14 第三章压力传感器实验数据采集、显示及程序---------------------------------------------20 3.1数据采集及显示-----------------------------------------------------------------------------20 3.2程序设计--------------------------------------------------------------------------------------20 第四章心得体会--------------------------------------------------------------------------------------29 参考文献资料------------------------------------------------------------------------------------------30

单片机课后作业

------ 单片机的基础知识(一)1.单片机系统与通用计算机系统在应用领域的区别; 2.与通用计算机相比,单片机系统的设计理念是什么? 3.“冯诺依曼”结构和“哈弗总线”结构的各自特点是什么?4.MCS-51、PIC单片机分别是哪一家公司开创? 5.ARM单片机的内核技术是哪国、哪个公司研发的?“ARM”英文全称是什么?

------ 单片机的基础知识(二) 简要回答下列问题: 1. 什么是“嵌入式系统”和“嵌入式控制器”: 2. 什么是“单片机最小系统”: 3. 与传统的“三总线”结构相比,SPI、I2C总线结构的系统其优点是什 么: 4. 单片机新型接口芯片的特点是什么: 5. 实验室中用于调试MCS-51单片机的“集成调试软件”的名称是什么? 有哪个国家开发?

------ 数值转换练习1,将下列二进制数转换为十进制数 00001010B = ;10000000B = ; 0110B = ;0111B = 。 2,将下列为二进制数转换为十六进制数 11110000B = ;11111111B = ;10001000B = ;00001111B= 。 3,将十六进制数转换为二进制数 88H = ;37H = ; 55H = ;AAH = ; 39H = ;64H = 。 4,将十六进制数转换为十进制数 0AH = ;0FH = ;10H = ; FFH = ;11H = ;80H = . 5,将十进制数转换为二进制数 1 = ; 2 = ; 3 = ; 4 = ; 8 = ;16 = ;32 = ;64 = 。6,什么是BCD码,它与二进制(十六进制)数有什么区别?

相关文档