文档库 最新最全的文档下载
当前位置:文档库 › 单片机实验考试文档

单片机实验考试文档

单片机实验考试文档
单片机实验考试文档

绍兴文理学院单片机实验考试程序:

实验二:编写程序,在数码管上显示固定“654321”字形

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar code tab1[]={0xF9,0xA4,0xB0,0x99,0x92,0x82}; //数码管显示数字1-6

uchar code tab2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf}; //控制数码管位选

uchar i;

void delay(uint ms) //延时1Ms

{

uchar i;

while(ms--)

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

}

void main()

{

while(1)

{

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

{

P1=tab2[i]; //选择数码管位选

P0=tab1[i]; //选择数码管显示字形

delay(1);

P0=0xff; //数码管消影

}

}

}

实验三:汇编语言程序设计

(1)清零:把外部RAM 2000H~20FFH的内容清零。

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV A,#00H //累加器A清零

MOV R0,#00H

MOV DPTR,#2000H //将2000H内容送给DPTR

LOOP: MOV @DPTR,A //将2000H中的内容清零

INC DPTR //DPTR增1

DJNZ R0,LOOP //减1不为0则转移,继续循环,否则结束

SJMP $

END

(2)拆字:把外部RAM 2000H的内容拆开,高位送外部RAM 2001H低位,低位送外部RAM 2002H低位,外部RAM 2001H、外部RAM 2002H高位清零。

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV DPTR,#2000H //DPTR中为2000H

MOVX A,@DPTR //2000H内容送A

MOV B,A //将A中内容寄存在B中

SWAP A //高低位交换

ANL A,#0FH //高位清零

INC DPTR //DPTR中为2001H

MOVX @DPTR,A //将A中的内容(2000H的高位)给2001H的低位

INC DPTR //DPTR中为2002H

MOV A,B //将B中的内容(2000H内容)还给A

ANL A,#0FH //屏蔽200OH的高位

MOVX @DPTR,A //将A中的内容(2000H的低位)给2002H的高位

SJMP $

END

(3)拼字:把外部RAM 2000H、外部RAM 2001H的低位分别送入外部RAM 2002H 高低位。

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV DPTR,#2000H //将2000H中的内容送DPTR

MOVX A,@DPTR //将2000H中的内容送A

ANL A,#0FH //交换高低位送B

SWAP A

MOV B,A

INC DPTR //DPTR增1

MOVX A,@DPTR

ANL A,#0FH //屏蔽高位,将2001H内容送A

ORL A,B //A和B或后送2002H

INC DPTR

MOVX @DPTR,A

SJMP $

END

实验四:汇编语言程序设计

1.外部RAM数据块搬移程序:

(1)试将片内RAM中30H~3FH的数据传送到片外RAM地址为1000H开始的单元中。

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV R0,#30H

MOV R1,#10H

MOV DPTR,#1000H

LOOP: MOV A,@R0

MOVX @DPTR,A

INC DPTR

INC R0

OVER: DJNE R1,LOOP

SJMP $

END

(2)将外部RAM中R2、R3为源地址的N个字节数据传送到R4、R5为目的地址的外部RAM区中,字节个数存放在R6、R7中。

数据区传送功能:在R2、R3中输入源地址(例如0000H),R4、R5中输入目的地址(例如2000H),R6、R7中输入字节数(例如2000H),运行程序,检查0000~1FFFH中内容是否和2000H~3FFFH中内容完全—致。

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV DPL,R3 ;R3内容给DPTR低位

MOV DPH,R2 ;R2内容给DPTR高位

MOVX A,@DPTR ;R2,R3源地址内容给累加器A,即取数

MOV DPL,R5 ;R5内容给DPTR低位

MOV DPH,R4 ;R4内容给DPTR高位

MOVX @DPTR,A ;数据搬移

CJNE R3,#0FFH,LOOP1 ;R3是否需要进位,即传送数据是否超过OFFH

INC R2 ;若超过则进位

LOOP1: INC R3 ;源地址加1

CJNE R5,#0FFH,LOOP2 ;R5是否需要进位,即接受数据是否超过OFFH

INC R4 ;若超过则进位

LOOP2: INC R5 ;目的地址加1

CJNE R7,#00H,LOOP3 ;若低位字节数不为0,则跳转LOOP3,字节数减1 CJNE R6,#00H,LOOP4 ;若高位字节数不为0,则跳转LOOP4,产生借位,高低位字节数均减1

SJMP $

NOP ;空操作

LOOP3: DEC R7

SJMP MAIN

LOOP4: DEC R7

DEC R6

SJMP MAIN

END

2.双字节*单字节无符号乘法程序:是编写程序,其功能为:(R0R1)*(R2)

→R3R4R5。

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV A,R1

MOV B,R2

MUL AB ;R1*R2

XCH A,R5 ;乘积低位→R5,R5→A准备乘数

MOV R4,B ;乘积高位暂存R4

MOV A,R0

MOV B,R2

MUL AB ;R0*R2

ADD A,R4 ;乘积低位加上一次的乘积高位暂存R4

CLR A ;清累加器

ADDC A,B ;高位加从低位来的进位给乘积高位

MOV R3,A

SJMP $

END

实验五定时/计数器实验:将定时/计数器0外部输入的脉冲进行计数。

#include

#include

#define uchar unsigned char //宏定义用uchar代替unsigned char

#define uint unsigned int

uchar code tab1[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; unsigned long int count; //计数值

uint sum;

uchar num[6],flag,i,j;

uchar code tab2[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

//sbit start=P1^6; //开始、停止(低电平有效)

//sbit reset=P1^7; //复位键

void delay(uint ms) //延时MS

{

uchar i;

while(ms--)

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

}

void display() //显示子函数

{ if(sum>1000000)

{ sum=0;

TH0=0;TL0=0;

count=0;

}

else

count=sum*65536+TH0*256+TL0; //取计数值

num[5]=count/100000; //第6位

num[4]=count%100000/10000;//第5位

num[3]=count%10000/1000;//第4位

num[2]=count%1000/100;//第3位

num[1]=count%100/10;//第2位

num[0]=count%10;//第1位

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

{

P1=tab2[i];

if(i!=0 && num[i]==0) //消0显示

{ flag=0;

for(j=i;j<6;j++)

{

if(num[j]!=0) //该位为0的情况下前面位是否还有大于0的值

{ flag=1;

break; //跳出循环

}

}

if(flag)

P0=tab1[0]; //若有则该位显示0

else

P0=0xff; //若没有有则该位不显示

}

else

P0=tab1[num[i]]; //显示相应位的数字

delay(1);

P0=0xff; //消去阴影

}

}

//void keyscan()

//{ if(start==0) //开始、停止

// {

// delay(2);

// if(start==0)

// {

// TR0=~TR0; //停止计数

// while(!start) display();

// }

// }

// if(reset==0) //复位

// {

// delay(2);

// if(reset==0)

// { TH0=0;TL0=0;

// while(!reset) display();

// }

// }

//}

void main()

{

TMOD=0x05; //开计数器

TH0=0;

TL0=0;

TR0=1;

EA=1;

ET0=1;

while(1)

{

//keyscan();

display();

}

}

void intr() interrupt 1 {

sum++;

}

单片机考试题库

单片机原理及应用试题一 一、填空题(每空1分,共20分) 1、计算机的系统总线有地址总线、控制总线和数据总线。 2、通常、单片机上电复位时PC= 0000H,SP= 07H;而工作寄存器则缺省采用第00 组,这组寄存器的地址范围是从00H~ 07H。 3、JZ e 的操作码地址为1000H,e=20H,它转移的目标地址为1022H。 4、汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制。 5、假定累加器A的内容30H,执行指令: 1000H:MOVC A,@A+PC 后,把程序存储器1031H单元的内容送累加器A中。 6、MCS-51单片机访问外部存储器时,利用ALE信号锁存来自P0口的低8位地址信号。 7、MCS-51单片机8031中有2 个16 位的定时/计数器,可以被设定的工作方式有四种。 8、MCS-51单片机有 5 个中断源,可分为 2 个中断优先级。上电复位时外部中断0 中断源的最高。 9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。 10、半导体存储器的最重要的两个指标是存储容量和存储速度。 11、若某8位D/A转换器的输出满刻度电压为+5V,则D/A转换器的分辨率为5/255=0.0196V。 12、写8255A控制字时,需将A1、A0置为11。 二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1分,共10分) 1、在CPU内部,反映程序运行状态或反映运算结果的一些特征寄存器是(B ) (A)PC (B)PSW (C)A (D)SP 2、要用传送指令访问MCS-51片外RAM,它的指令操作码助记符应是(B )

自学考试单片机试题库完整

选择题: .MCS-51单片机的内部RAM的工作寄存器区共有( C ) A 8个单元 B 16个单元 C 32个单元 D 24个单元 .不能使MCS-51单片机的SP改变的指令是( A ) A ADD指令 B POP指令 C PUSH指令 D LCALL指令。 .在MOVX A,@DPTR指令中,DPTR中的内容是( C ) A 片内数据存储器地址 B 片内程序存储器的地址 C 片外数据存储器地址 D 片外程序存储器地址 .8031外扩数据存储器的最大容量是( D ) A 8K。 B 16K。 C 32K。 D 64K。 .MCS-51构成系统总线时,可提供低8位地址线的口是( A ) A P0口 B P1口 C P2口 D P3口 .某存储器芯片的容量是8K 8,其片内寻址地址线为( D ) A 10根 B 11根 C 12根 D 13根 .在外扩多片数据存储器芯片时,不能在各存储器芯片间并行连接的信号是( A )A地址译码输出信号。 B 数据信号。 C 低位地址信号。 D读写信号。 .当串行传送二进制数时波特的单位是( B ) A 字符/秒。 B 位/秒。 C 帧/秒。 D 位/分。 。 MCS-51执行以下哪条指令,使PC发生突变,而不是顺序加1改变。( B) A MOV 指令 B JZ指令 C PUSH 指令 D ADD指令 .以下指令有错误的是( C ) A MOV 28H,@R2 B MOV F0,A CC.3 C PUSH DPTR D MOV C,30H .若8051单片机的时钟频率为12 MHZ,则一个机器周期为_______微秒。( D ) A 0.25 B 0.5 C 0.75 D 1 .串行口工作方式1的波特率是:( D ) A 固定的,为f osc/16。 B 固定的,为f osc/32。 C 固定的,为f osc/64。 D 可变的,取决于T1的溢出率。.8031在下列各种运行情况中,能立即响应中断的是:( C ) A 当前正在执行RETI指令。 B 当前正在进行高优先级中断处理。

单片机实验报告

实验报告 专业:计算机科学与技术班级:C093 姓名:孙丽君 学号:098677

实验一:数据传送实验 1.实验内容: 将8031内部RAM 40H—4FH单元置初值A0H—A FH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 2. 源程序清单: ORG 0000H RESET:AJMP MAIN ORG 003FH MAIN:MOV R0,#40H MOV R2,#10H MOV A,#0A0H A1:MOV@R0,A INC R0 INC A DJNZ R2, A1 MOV R1,#40H MOV R0, #50H

MOV R2, #10H A3: MOV A, @R1 MOV @R0, A INC R0 INC R1 DJNZ R2, A3 LJMP 0000H 3.实验结果: 4. CPU 对8031内部RAM存储器有哪些寻址方式? 答:直接寻址,寄存器寻址,寄存器间接寻址,位寻址。

5. 执行程序后下列各单元的内容是什么? 内部RAM 40H~4FH内容:A0~AF 内部RAM 50H~5FH内容:A0~AF 实验二多字节十进制加法实验 1.实验内容: 多字节十进制加法。加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。 2. 源程序清单: ORG0000H RESET: AJMP MAIN ORG0100H MAIN: MOV SP, #60H MOV R0, #31H MOV@R0, #22H DEC R0 MOV@R0, #33H

单片机上机操作考试题部分答案

1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时 间为。 #include<> #include<> #define uchar unsigned char uchar T_count=0; 成下面电路所示的功能,K1,K2对应两个开关按键。P1口对应发光二极管的状态 #include<> #define uint unsigned int #define uchar unsigned char sbit k1=P3^2; sbit k2=P3^3; 一个数码管上循环显示“H”“E”“L”“L”“O” ,循环的时间为1s。

#include<> #define uchar unsigned char #define uint unsigned int uchar code tab[]={0xf6,0xf9,0xb8,0xb8,0xbf}; uchar T_count=0; uchar i=1; void t0Proc() interrupt 1 { TH0=0x3c; TL0=0xb0; if(++T_count==10) { P0=tab[i]; i=(i+1)%5; T_count=0; } } void main() { TMOD=1; TH0=0x3c; TL0=0xb0; EA=1;

TR0=1; ET0=1; P0=tab[0]; 6个数码管上分别显示自己学号的后六位数字。 #include<> #include<> #define uchar unsigned char #define uint unsigned int uchar code tab[]={};一个简易30s的倒计时秒表,秒表的显示通过8个发光二极管显示出来。 #include<> #define uchar unsigned char void delay1s() { uchar i; for(i=0;i<10;i++) { TH1=0x3c; TL1=0xb0; TR1=1; 用外中断0来控制,去实现下列功能。 其中K1为按键,P1口对应8个发光二极管的状态

汇编51单片机考试常见试题

一、填空题 1.单片机是把中央处理器、存储器、定时器/计数器以及I/O接口电路等主要计算机部件集成在一块集成电路芯片上的微型计算机。 2.除了单片机这一名称之外,单片机还可称为微控制器、嵌入式控制器。 3.计算机的系统总线有地址总线、控制总线和数据总线。 4.80C51单片机基本型内部RAM有 128 个字节单元,这些单元可以分为三个用途不同的区域,一是工作寄存器区、二是位寻址区、三是数据缓冲区。5.8051单片机有2 个16位定时/计数器。 6.单片机存储器的主要功能是存储程序和数据。80C51含4 KB掩膜ROM。7.80C51在物理上有4个独立的存储器空间。 8.通常、单片机上电复位时PC= 0000H,SP= 07H;而工作寄存器则缺省采用第00 组,这组寄存器的地址范围是从00H~ 07H。 9.8051的堆栈是向地址的高端生成的。入栈时SP先加1,再压入数据。10.使用8031芯片时,需将/EA引脚接低电平,因为其片内无程序存储器。11.MCS-51特殊功能寄存器只能采用直接寻址方式。 12.汇编语言中可以使用伪指令,它们不是真正的指令,只是用来对汇编过程进行某种控制。 13.半导体存储器的最重要的两个指标是存储容量和存储速度。 14.当PSW4=1,PSW3=0时,工作寄存器Rn,工作在第2组。 15.在8051单片机中,由 2 个振荡(晶振)周期组成1个状态(时钟)周期,由 6个状态周期组成1个机器周期。 16.假定累加器A的内容30H,执行指令:1000H:MOVC A,@A+PC后,把程序存储器1031H单元的内容送累加器A中。 17.MCS-51单片机访问外部存储器时,利用ALE信号锁存来自P0口的低8位地址信号。 18.内部RAM中,位地址为30H的位,该位所在字节的字节地址为26H。 19.若A中的内容为63H,那么,P标志位的值为0。 20.在基址加变址寻址方式中,以累加器A作变址寄存器,以DPTR或PC作基址寄存器。 21.指令格式是由操作码和操作数所组成,也可能仅由操作码组成。 22.通过堆栈操作实现子程序调用,首先就要把PC的内容入栈,以进行断点保护。调用返回时,再进行出栈保护,把保护的断点送回到PC。 23.MCS-51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为MCS-51的PC是16位的,因此其寻址的范围为64KB。 24.在寄存器间接寻址方式中,其“间接”体现在指令中寄存器的内容不是操作数,而是操作数的地址。 25.假定累加器A中的内容为30H,执行指令1000H:MOVC A,@A+PC 后,把程序存储器1031H单元的内容送入累加器A中。 26.12根地址线可寻址4 KB存储单元。 27.:假定A=55H,R3=0AAH,在执行指令ANL A,R3后,A=00H,R3=0AAH。28.MCS-51的P0口作为输出端口时,每位能驱动8个LSTTL负载。 29.MCS-51有4个并行I/O口,其中P1~P3是准双向口,所以由输出转输入时必须先写入“1”。 30.MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。

51单片机实验报告94890

《单片机与接口技术》实验报告 信息工程学院 2016年9月

辽东学院信息技术学院 《单片机与接口技术》实验报告 姓名:王瑛 学号: 0913140319 班级: B1403 专业:网络工程 层次:本科 2016年9月

目录 实验题目:实验环境的初识、使用及调试方法(第一章) 实验题目:单片机工程初步实验(第二章) 实验题目:基本指令实验(第三章)4 实验题目:定时器/计数器实验(第五章)4 实验题目:中断实验(第六章)4 实验题目:输入接口实验(第八章)4 实验题目:I/O口扩展实验(第九章)4 实验题目:串行通信实验(第十一章)4 实验题目:A/D,D/A转换实验(第十七章)4

实验题目:实验环境的初识、使用及调试方法实验 实验类型:验证性实验课时: 1 时间:2016年10月24日 一、实验内容和要求 了解单片机的基础知识 了解51单片机的组成和工作方法 掌握项目工程的建立、编辑、编译和下载的过程方法 熟练单片机开发调试工具和方法 二、实验结果及分析 单片机最小系统的构成: Keil集成开发环境:

STC-ISP:

实验题目:单片机工程初步实验 实验类型:验证性实验课时: 1 时间:2016 年10 月24 日一、实验内容和要求 点亮一个LED小灯 程序下载到单片机中 二、实验结果及分析 1、点亮一个LED小灯 点亮LED小灯的程序: #include //包含特殊功能寄存器定义的头文件 sbit LED = P0^0; sbit ADDR0 = P1^0; //sbit必须小写,P必须大写 sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; void main() { ENLED = 0; ADDR3 = 1; ADDR2 = 1; ADDR1 = 1; ADDR0 = 0; LED = 0; //点亮小灯 while (1); //程序停止 } 2、程序下载 首先,我们要把硬件连接好,把板子插到我们的电脑上,打开设备管理器查看所使用的COM 口,如图所示:

单片机实验报告

院系:计算机科学学院专业:智能科学与技术年级: 2012 学号:2012213865 姓名:冉靖 指导教师:王文涛 2014年 6月1日

一. 以下是端口的各个寄存器的使用方式: 1.方向寄存器:PxDIR:Bit=1,输出模式;Bit=0,输入模式。 2.输入寄存器:PxIN,Bit=1,输入高电平;Bit=0,输入低电平。 3.输出寄存器:PxOUT,Bit=1,输出高电平;Bit=0,输出低电平。 4.上下拉电阻使能寄存器:PxREN,Bit=1,使能;Bit=0,禁用。 5.功能选择寄存器:PxSEL,Bit=0,选择为I/O端口;Bit=1,选择为外设功能。6.驱动强度寄存器:PxDS,Bit=0,低驱动强度;Bit=1,高驱动强度。 7.中断使能寄存器:PxIE,Bit=1,允许中断;Bit=0,禁止中断。 8.中断触发沿寄存器:PxIES,Bit=1,下降沿置位,Bit=0:上升沿置位。 9.中断标志寄存器:PxIFG,Bit=0:没有中断请求;Bit=1:有中断请求。 二.实验相关电路图: 1 MSP430F6638 P4 口功能框图: 主板上右下角S1~S5按键与MSP430F6638 P4.0~P4.4口连接: 2按键模块原理图: 我们需要设置两个相关的寄存器:P4OUT和P4DIR。其中P4DIR为方向寄存器,P4OUT 为数据输出寄存器。 主板上右下角LED1~LED5指示灯与MSP430F6638 P4.5~P4.7、P5.7、P8.0连接:

3 LED指示灯模块原理图: P4IN和P4OUT分别是输入数据和输出数据寄存器,PDIR为方向寄存器,P4REN 为使能寄存器: #define P4IN (PBIN_H) /* Port 4 Input */ #define P4OUT (PBOUT_H) /* Port 4 Output */ #define P4DIR(PBDIR_H) /* Port 4 Direction */ #define P4REN (PBREN_H) /* Port 4 Resistor Enable */ 三实验分析 1 编程思路: 关闭看门狗定时器后,对P4.0 的输出方式、输出模式和使能方式初始化,然后进行查询判断,最后对P4.0 的电平高低分别作处理来控制LED 灯。 程序流程图: 2 关键代码分析: #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗 P4DIR |= BIT5; // 设置4.5口为输出模式 P4OUT |= BIT0; // 选中P4.0为输出方式 P4REN |= BIT0; // P4.0使能 while (1) // Test P1.4 { if (P4IN & BIT0) //如果P4.0为1则执行,这是查询方式按下去后是低,否则为高

单片机上机操作考试题部分答案

单片机上机操作考试题 部分答案 集团文件发布号:(9816-UATWW-MWUB-WUNN-INNUL-DQQTY-

1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的 时间为0.5s。 #include #include #define uchar unsigned char uchar T_count=0; //定时中断 void toProc() interrupt 1 { TH0=(8192-5000)/32; //恢复初值 TL0=(8192-5000)%32; if(++T_count==100) //0.5s移动一位 { P0=_crol_(P0,1); T_count=0; } } //主函数 void main() { TMOD=0; TH0=(8192-5000)/32; //5ms定时

TL0=(8192-5000)%32; EA=1; ET0=1; TR0=1; P0=0xfe; while(1); } 2.完成下面电路所示的功能,K1,K2对应两个开关按键。P1口对应发光二极管的状态 #include #define uint unsigned int #define uchar unsigned char sbit k1=P3^2; sbit k2=P3^3; //延时 void delay(uint x) { uchar i;

while(--x) { for(i=0;i<120;i++); } } //主函数 void main() { while(1) { if((k1==0)&&(k2==0)) //K1、K2同时按下{ P1=0x00; delay(10); } else if((k1==0)&&(k2==1)) //K1按下,K2不按 { P1=0xcc; delay(10); } else if((k1==1)&&(k2==0)) //K2按下,K1不按 { P1=0xf0;

51单片机基础知识试题题库(复习资料)

单片机原理与应用复习资料 第二章习题参考答案 一、填空题: 1、当MCS-51引脚ALE有效时〃表示从P0口稳定地送出了低8位地址。(备注:ALE 为地址锁存控制信号,书上P22) 2、MCS-51的堆栈是软件填写堆栈指针临时在片内数据存储器内开辟的区域。(p25 更具体些是在内部存储器的用户RAM区开辟的) 3、当使用8751且EA=1〃程序存储器地址小于1000H 时〃访问的是片内ROM。 4、MCS-51系统中〃当PSEN信号有效(备注:低电平为有效信号)时〃表示CPU要从外部程序存储器读取信息。(p22) 5、MCS-51有4组工作寄存器(p23 备注:称为通用寄存器或者工作寄存器)〃它们的地址范围是00H~1FH 。(延伸:通用寄存器占去32个单元,位寻址区占去16个单元,用户RAM区占去80个单元,三者总共为128个单元,组成内部数据存储器的低128单元区) 6、MCS-51片内20H~2FH(即为位寻址区)范围内的数据存储器〃既可以字节寻址又可 以位寻址。(p24) 7、PSW中RS1 RS0=10时〃R2的地址为12H 。 8、PSW中RS1 RS0=11时〃R2的地址为1AH 。(p27 查表2.3即可) 9、单片机系统复位后〃(PSW)=00H〃因此片内RAM寄存区的当前寄存器是第0 组〃8个寄存器的单元地址为00H ~ 07H 。(p27 参考下一题) 10、PC复位后为0000H 。(p38 查表2.6即可,有各种寄存器的初始化状态) 11、一个机器周期= 12 个振荡周期= 6 个时钟周期。(p37) 12、PC的内容为将要执行的下一条指令地址。(p30)

单片机实验报告第四

单片机实验四 实验报告 课程名称:单片机原理及应用实验姓名:刘江 系别:信息系 专业:电气工程及其自动化年级:2012级 学号:120712039 指导教师:李莉 2015 年 6 月 30 日

一、实验目的和要求 1)熟悉Keil 软件界面,以及编辑、编译、运行程序的步骤; 2)熟悉Proteus软件界面,掌握用Proteus画仿真图的方法。 二、主要仪器设备 Keil 软件与Proteus仿真软件 三、实验设计要求 这次试验我通过Proteus仿真实现对流水灯功能的实现。受益匪浅,对80C51的功能和结构有了深层次的了解,我深刻的明白,要想完全了解C51还有一定距离,但我会一如既往的同困难作斗争。在实验中,我遇到了不少困难,比如不知道怎么将程序写进单片机中,写好程序的却总出错,不知道什么原因,原来没有生成hex文件。这些错误令我明白以后在试验中要步步细心,避免出错。 四、操作方法与实验步骤 1、Keil C51软件使用 在Keil C51集成开发环境下,建立一个工程并编辑以下源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。 #include unsigned char code table[]={0x01,0x02,0x04,0x08, 0x10,0x20,0x40,0x80}; void delay(unsigned char delay_time) { unsigned char i,j; for(i=0;i<=delay_time;i++) { for(j=0;j<=200;j++); } } void init_tx() { EA=1; EX0=1; IP=0x00; } void main() { unsigned char i;

51单片机练习题

一.闪烁灯 1.实验任务 如图4.1.1所示:在端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 ( 4.程序设计内容 (1)延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为秒,相对于微秒来说,相差太大,所以我们在执行 某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是 如何设计呢下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× 】 DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求秒=200ms,10ms×R5 =200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当端口输出高电平,即=1时,根据发光二极管的单向导 电性可知,这时发光二极管L1熄灭;当端口输出低电平,即=0时,发

单片机期末考试题试卷

单片机原理及应用试题三 一、填空题(每空1分,共10分) 1.当使用8031单片机时,需要扩展外部程序存储器,此时EA应为_________。 2.P0通常用作_________。 3.若由程序设定RS1、RS0=10,则工作寄存器R0~R7的直接地址为_________。 4.返回地址(或断点)是_________的程序计数器的内容。 5.中央处理器CPU是单片机的核心,它完成_________。 6.单片机的工作过程,实际上就是_________。 7.所谓中断源即是_________。 8.端口(或称口)是_________。 9.异步串行近程通信时的传送信号是_________。 10.若累加器A中的数据为01110010B,则PSW中的P=_________。 二、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题1分,共10分) 1.MCS—51单片机的复位信号是( )有效。 A.高电平 B.低电平 C.脉 冲 D.下降沿 2.若MCS-51单片机使用晶振频率为6MHz时,其复位持续时间应该超过( )。 A.2μs B.4μs C.8μs D.1ms 3.若PSW.4=0,PSW.3=1,要想把寄存器R0的内容入栈,应使用( )指令。 A.PUSH R0 B.PUSH @R0 C.PUSH 00H D.PUSH 08H 4.能够用紫外光擦除ROM中程序的只读存储器称为( )。

A.掩膜 ROM B.PROM C.EPROM D.EEPROM 5.在片外扩展一片2764程序存储器芯片要( )地址线。 A.8根 B.13根 C.16 根 D.20根 6.定时器/计数器工作方式1是( )。 A.8位计数器结构 B.2个8位计数器结构 C.13位计数结构 D.16位计数结构 7.设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为( ) A.2MHz B.1MHz C.500KHz D.250KHz 8.已知1只共阴极LED显示器,其中a笔段为字形代码的最低位,若需显示数字1,它的字形代码应为( )。 A.06H B.F9H C.30H D.CFH 9.下列数据字定义的数表中,( )是错误的。 A.DW“AA” B.DW“A” C.DW“OABC” D.DWOABCH 10.串行口的控制寄存器SCON中,REN的作用是( )。 A.接收中断请求标志位 B.发送中断请求标志位 C.串行口允许接收位 D.地址/数据位 三、简答题(每小题4分,共20分) 1.简述堆栈。 2.简述变址寻址方式并举例说明。 3.简述中断响应的主要内容。

单片机实验报告书

并行I/O接口实验 一、实验目的 熟悉掌握单片机并行I/O接口输入和输出的应用方法。 二、实验设备及器件 个人计算机1台,装载了Keil C51集成开发环境软件。https://www.wendangku.net/doc/d413911938.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (1)P1口做输出口,接八只发光二极管,编写程序,使发光二极管延时(0.5-1秒)循环点亮。实验原理图如图3.2-1所示。 图3.2-1单片机并行输出原理图 实验程序及仿真 ORG 0000H LJMP START ORG 0100H START:MOV R2,#8 MOV A,#0FEH LOOP:MOV P1,A LCALL DELAY RL A

DJNZ R2,LOOP LJMP START DELAY:MOV R5,#20 D1:MOV R6,#20 D2:MOV R7,#248 D3:DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 中断实验 一、实验目的 熟悉并掌握单片机中断系统的使用方法,包括初始化方法和中断服务程序的编写方法。 二、实验设备及器件

个人计算机1台,装载了Keil C51集成开发环境软件。 https://www.wendangku.net/doc/d413911938.html,单片机仿真器、编程器、实验仪三合一综合开发平台1台。 三、实验内容 (2)用P1口输出控制8个发光二极管LED1~LED8,实现未中断前8个LED闪烁,响应中断时循环点亮。 实验程序及仿真 ORG 0000H LJMP MAIN ORG 0003H LJMP INT00 ORG 0010H MAIN: A1:MOV A,#00H MOV P1,A MOV A,#0FFH MOV P1,A SETB EX0 JB P3.2,B1 SETB IT0 SJMP C1 B1:CLR IT0 C1:SETB EA NOP SJMP A1 INT00:PUSH Acc PUSH PSW MOV R2,#8 MOV A,#0FEH LOOP: MOV P1,A LCALL DELAY RL A DJNZ R2,LOOP

单片机实验考核题目及答案

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------

单片机考试试题(带答案)

一、选择题 访问片外数据存储器的寻址方式是( C ) A、立即寻址 B、寄存器寻址 C、寄存器间接寻址 D、直接寻址 堆栈数据的进出原则是( B ) A、先进先出 B、先进后出 C、后进后出 D、进入不出 若某存储器芯片地址线为12根,那么它的存储容量为( C ) A、1KB B、2KB C、4KB D、8KB 控制串行接口工作方式的寄存器是( C ) A、TCON B、PCON C、SCON D、TMOD 判断是否溢出时用PSW的(B )标志位,判断是否有进位时用PSW的( A )标志位。 A.CY B.OV C.P D.RS0 E.RS1 当串行口向单片机的CPU发出中断请求时,若CPU 允许并接受中断请求时,程序计数器PC的内容将被自动修改为( E )。 A.0003H B.000B C.0013H D.001BH E.0023H 子程序的返回和中断响应过程中的中断返回都是通过改变PC的内容实现的,而PC内容的改变是(D )完成的。 A.通过POP命令B.通过MOV 指令C.通过RET或RETI指令D.自动 单片机复位后,SP、PC、I/O口的内容为(C )A.SP = 07H PC = 00H P0 = P1 = P2 = P3 = FFH B.SP = 00H PC = 0000H P0 = P1 = P2 = P3 = 00H C.SP = 07H PC = 0000H P0 = P1 = P2 = P3 = FFH D.SP = 00H PC = 00H P0 = P1 = P2 = P3 = 00H 堆栈指针SP的作用是( B )。 A 指示堆栈的栈底 B 指示堆栈的栈顶 C 指示下一条将要执行指令的地址 D 指示中断返回的地址 下列指令中,不影响堆栈指针的指令是( B)。 A RET B JB bit,rel C LCALL addr16 D RETI 定时器T1的中断入口地址是( C ),从该地址开始一般可(F )。 A 0003H B 000BH C 001BH D 0013H E 连续存放中断服务程序 F 存放转移指令定时器T0的溢出标志TF0,在CPU响应中断后( B )。 A 由软件清零 B 由硬件清零 C 随机状态 D AB都可以 在进行串行通信时,若两机的发送与接收可以同时进行,则称为(D )。 A 半双工传送 B 单工传送 C 双工传送 D 全双工传送 在CPU内部,反映程序运行状态或反映运算结果一些特征的寄存器是(B )。 A . PC B. PSW C. A D. SP 二、填空题 晶振的频率为6MHz时,一个机器周期为(2)μS。 欲使P1口的低4位输出0,高4位不变,应执行一条(ANL P1,#0F0H )命令。 MCS-51单片机系列有( 5 )个中断源,可分为( 2 )个优先级。 计算机三大总线分别为(数据总线)、(地址总线)和控制总线。 MCS-51指令系统中,ADD与ADDC指令的区别是(是否带进位)。 8051单片机有( 2 )个16位定时/计数器。MCS-51单片机有(4 )个并行输入/输出口,当系统扩展外部存储器或扩展I/O口时,(P0 )口作地

单片机实验四报告材料_外中断实验

大学实验报告 学生:学号:专业班级: 实验类型:?验证?综合■设计?创新实验日期:2018.05.29 实验成绩: 实验四外中断实验 (一)实验目的 1.掌握单片机外部中断原理; 2.掌握数码管动态显示原理。 (二)设计要求 1.使用外部中断0和外部中断1; 2.在动态数码管上显示中断0次数,中断1用作次数清0,数码管采用74HC595驱动。 (三)实验原理 1.中断 所谓中断是指程序执行过程中,允许外部或部时间通过硬件打断程序的执行,使其转向为处理外部或部事件的中断服务程序中去,完成中断服务程序后,CPU返回继续执行被打断的程序。如下图所示,一个完整的中断过程包括四个步骤:中断请求、中断响应、中断服务与中断返回。 当中断请求源发出中断请求时,如果中断请求被允许的话,单片机暂时中止当前正在执行的主程序,转到中断处理程序处理中断服务请求。中断服务请求处理完后,再回到原来被中止的程序之处(断电),继续执行被中断的主程序。 如果单片机没有终端系统,单片机的大量时间可能会浪费在是否有服务请求发生的查询操作上,即不论是否有服务请求发生,都必须去查询。因此,采用中断技术大大地提高了单片机的工作效率和实时性。

2.IAP15W4K58S4单片机的中断请求 IAP15W4K58S4单片机的中断系统有21个中断请求源,2个优先级,可实现二级中断服务嵌套。由IE、IE2、INT_CLKO等特殊功能寄存器控制CPU是否相应中断请求;由中断优先级高存器IP、IP2安排各中断源的优先级;同优先级2个以中断同时提出中断请求时,由部的查询逻辑确定其响应次序。 中断请求源中的外部中断0(INT0)和外部中断1(INT1)详述如下: (1)外部中断0(INT0):中断请求信号由P3.2引脚输入。通过IT0来设置中断请求的触发方式。当IT0为“1”时,外部中断0为下降沿触发;当IT0为“0”时,无论是上升沿还是下降沿,都会引发外部中断0。一旦输入信号有效,则置位IE0标志,向CPU申请中断。 (2)外部中断1(INT1):中断请求信号由P3.3引脚输入。通过IT1来设置中断请求的触发方式。当IT1为“1”时,外部中断1为下降沿触发;当IT1为“0”时,无论是上升沿还是下降沿,都会引发外部中断1。一旦输入信号有效,则置位E1标志,向CPU申请中断。 中断源是否有中断请求,是由中断请求标志来表示的。在IAP15W4K58S4单片机中,外部中断 0、外部中断1等请求源的中断请求标志分别由特殊功能寄存器TCON和SCON控制,格式如下: (1)TCON寄存器中的中断请求标志。TCON为定时器T0与T1的控制寄存器,同时也锁存T0和T1的溢出中断请求标志及外部中断0和外部中断1的中断请求标志等。格式如下图所示: D7 D6 D5 D4 D3 D2 D1 D0 88H 与中断有关的各标志位功能如下: ①TF1:T1的溢出中断请求标志。T1被启动计数后,从初值做加1计数,计满溢出后由硬件 置位TFI,同时向CPU发出中断请求,此标志一直保持到CPU 响应中断后才由硬件自动清0。 也可由软件查询该标志,并由软件清0。 ②TF0:T0的溢出中断请求标志。T0被启动计数后,从初值做加1计数,计满溢出后由硬件 置位TF0,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清 0。也可由软件查询该标志,并由软件清0。 ③IE1:外部中断1的中断请求标志。当INT1(P3.3)引脚的输入信号满足中断触发要求时,置 位IE1,外部中断1向CPU申请中断。中断响应后中断请求标志自动清0。 ④IT1:外部中断1(INT1)中断触发方式控制位。当(IT1)=1时,外部中断1为下降沿触发方式。 在这种方式下,若CPU检测到INT1出现下降沿信号,则认为有中断申请,随即使IE1标志 置位。中断响应后中断请求标志会自动清0,无须做其他处理。当(T1)=0时,外部中断1为

单片机原理及应用实验报告

单片机原理实验报告 专业:计算机科学与技术 学号: :

实验1 计数显示器 【实验目的】 熟悉Proteus仿真软件,掌握单片机原理图的绘图方法 【实验容】 (1)熟悉Proteus仿真软件,了解软件的结构组成与功能 (2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、修改属性等基本操作 (3)学会可执行文件加载及程序仿真运行方法 (4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制【实验步骤】 (1)观察Proteus软件的菜单、工具栏、对话框等基本结构 (2)在Proteus中绘制电路原理图,按照表A.1将元件添加到编辑环境中(3)在Proteus中加载程序,观察仿真结果,检测电路图绘制的正确性 表A.1

Switches&Relays BUT BUTTON 【实验原理图】 【实验源程序】 #include sbit P3_7=P3^7; unsigned char x1=0;x2=0 ; unsigned char count=0; unsigned char idata buf[10]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int time) { int k,j;

for(;time<0;time--) for(k=200;k>0;k--) for(j=500;j<0;j--); } void init() { P0=buf[x1]; delay(10); P2=buf[x2]; delay(10); } void main() { init(); while(1) { x1=count/10; x2=count%10; P0=buf[x1]; delay(10);

单片机考试试题带答案

单片机原理及应用试卷A 一、填空题(每空1分,共20分) 1、单片微型计算机由CPU、存储器和I/O 三部分组成。 PSEN信号有效时,表示从P0口稳定地送出了低8位地址。 2、MCS-51系统中,当 3、访问8031片外数据存储器采用的是寄存器间接寻址方式。 4、累加器(A)=80H,执行完指令ADD A,#83H后,进位位CY= 1 。 5、指令LCALL 37B0H,首地址在2000H,所完成的操作是2003H入栈,37B0H送入PC。 6、51有5个中断源,有2个中断优先级,优先级由软件填写特殊功能寄存器IP 加以选择。 7、在变址寻址方式中,以A作为变址寄存器,以PC或DPTR作基址寄存器。 8、中断请求信号有电平触发和脉冲触发两种触发方式 9、用串行口扩展并行口时,串行接口的工作方式应选为方式0。 10、74LS273通常用来作简单输出接口扩展;而74LS244则常用来作简单输入接口扩展。 11、51的并行I/O口信息有读引脚和读锁存器两种读取方法,读—改—写操作是针对并行I/O口内的锁存器进行的。 12、A/D转换器的三个重要指标是转换速度、分辨率和转换精度。 二、选择题(从备选答案中选择一个正确答案,并将代号写在括号内。每题1.分,共10分) 1、计算机能识别的语言是( C )。 (A)汇编语言(B)自然语言(C)机器语言(C)高级语言 2、MCS-51单片机外扩存储器芯片时,4个I/O口中用作数据总线的是( B )。 (A)P0和P2口(B)P0口(C)P2和P3口(D)P2口 3、在中断服务程序中,至少应有一条( D )。 (A)传送指令(B)转移指令(C)加法指令(D)中断返回指令

单片机实验4报告材料

学号序号 19 单片机原理与接口技术 实验报告 实验项目序号实验四 实验项目名称动态显示与矩阵式键盘实验 姓名卢志雄专业电子信息工程班级电信14-2BF 完成时间2016-05-10

一、实验目的 1、进一步理解数码管与单片机的接口原理与动态显示原理,理解单片机矩 阵式键盘按键识别的原理; 2、掌握单片机动态显示应用和编程方法; 3、掌握单片机矩阵式键盘按键识别的方法。 二、实验容 实验容为3项,其中第1、2项必做。 1、动态显示。 未按键不显示,按K1键,动态显示“19491001”;按K2键,动态显示“20141210”。 2、动态显示与按键识别。 矩阵式键盘键值分别是0-F,未按键不显示。每按键一次,键值在最低位显示,原键值向高位移一位。 3、可控动态显示与按键识别。 矩阵式键盘键值分别是0-9,最下面一排键位功能键,左右两个键分别为“清0键”“C”,和”“回车键”“ ”,其它键无效。未按键不显示,每按键一次,键值在最低位显示,原键值向高位移一位。按8个键后,再按键无效。按清0键全显示“0”。按“ ”后全部熄灭,再按键重新开始。 三、实验原理图

图3.4 动态显示与矩阵式键盘实验电路原理图 动态显示共8个共阴极数码管,采用两片74LS573进行驱动,74LS573与74LS373都是8D锁存器,只是573引脚排列更易于布线。其引脚功能为:D1-D8为数据输入端;Q1-Q8为数据输出端;LE为数据输入锁存端,LE=1数据输入D 锁存器,LE=0数据不能输入D锁存器,即LE下降沿锁存当前输入数据;OE地址输出允许端,OE=0输出锁存数据,OE=1输出高阻。 电路中,U1输出段码a b c d e f g db,控制显示的字形与小数点,U2输出位选码,控制第几个数码管显示。单片机P14、P15分别连接到U1、U2的LE,连接U1、U2的OE。 四、源程序 第一项: #include #define uchar unsigned char data uchar f[8]; data uchar a,b,num,y,k,g; data uchar c=0; table[18]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7 c,0x39,0x5e,0x79,0x71,0x00}; //共阴极数码管显示段码(0-F) void delay( j )//延时函数 data uchar j; { data uchar i; while(j--) for(i=0;i<1;i++); } uchar code sled_bit[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //定义点亮数码管位选码 data uchar d[]={1,9,4,9,1,0,0,1}; data uchar e[]={2,0,1,4,1,2,1,0};

相关文档
相关文档 最新文档