C51复习

合集下载

C51单片机复习题

C51单片机复习题

C51单片机试卷1一、填空题〔每小题1分,共30分〕1、8031的P2口为高8位地址总线口, P3 口为双功能口.2、单片机的复位操作是_____RST_____引脚,要在此引脚加 __高______电平才能复位动作.3、C51定义可寻址位,使用关键字为___sbit_ ,定义特殊功能寄存器当中的某位用关键字____sfr________ .4、已知P3=0X7F,要实现将P3口的值循环右移的指令是____ ,循环右移3次后,P3=___________ .5、有指令unsigned char mm[]={0X01,0X02,0X03},此指令中数组元素mm[1]的值为________ .6、串口工作方式2接收的第9位数据放到了_SCON____ 寄存器的______位中.7、若采用6MHz的晶体振荡器,则MCS-51单片机的振荡周期为________,机器周期为____________.8、单片机并行接口中,要作为输出口必须外接上拉电阻的端口是______,其原因在于输出级是________开路电路.9、由AT89C51构成的单片机最简系统中,只给单片机提供VCC和GND单片机是不会工作的,必须提供的__________、___________和________辅助形成一个最简系统.10、若只需要开串行口中断,则其对应的源中断允许控制位是__________,若需要将外部中断0设置为下降沿触发,则执行的语句为_____________.11、C51中 0x75 | 0x42 运算结果是_________ .12、-25的原码是___________、反码是___________、补码是_________.13、对于51子系列单片机,主要有________、___________、_________三种机型.14、修饰符interrupt m中m的取值为0对应的中断情况是__________中断.15、TCON中IT0<IT1>表示__________.16、5l子系列单片机片内有两个____位的定时计数器.二、选择题〔每小题1分,共20分〕1、一字节补码所能表示的整数范围是〔 A 〕.A、-128~+127B、-127~+127C、-129~+128D、-128~+1282、12MHz晶振的单片机在定时工作方式下,定时器计一个数所用的定时时间是〔A〕A、1μsB、2μsC、4μsD、8μs3、通过串行口发送或接收数据时,发送或接收的数据暂存在〔D〕寄存器中.A、SCONB、PCONC、TMOD D 、SUBF4、在单片机扩展系统中,8051做为地址总线和数据总线分时复用的端口是〔A 〕A、P0口B、P1口C、P2口D、P3口5、MCS-51单片机的定时器/计数器工作方式1是〔B〕.A、8位计数器结构B、16位计数器结构C、13位计数器结构D、2个8位计数器结构6、片内RAM的20H~2FH为位寻址区,所包含的位地址是< >.A、00H~20HB、00H~7FHC、20H~2FHD、00H~FFH7、使用宏来访问绝对地址时,一般需包含的库文件是〔 B 〕A、reg51.hB、absacc.hC、intrins.hD、startup.h8、8255A是可编程的并行输入/输出接口芯片,内部有〔 C 〕个8位的并行口.A、2个B、3个C、4个D、5个9、设MCS-51单片机晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率应为<>A、2MHzB、1MHzC、500kHzD、250kHz*10、线反转法识别有效按键时,如果读入的列线值全为1,则说明〔A 〕A、没有键被按下B、有一个键被按下C、有多个键被按下D、以上说法都不对11、利用下列〔 D 〕关键字可以改变工作寄存器组A、interruptB、sfrC、whileD、using12、单片机的串行口工作于方式1是<A >.A、8位数据传送B、9位数据传送C、10位数据传送D、11位数据传送13、执行#define PA8255 XBYTE[Ox3FFC],PA8255=Ox7e 后存储单元Ox3FFC的值是〔 A 〕A、Ox7eB、8255HC、未定D、7e14、具有模数转换功能的芯片是〔A 〕A、ADC0809B、DAC0832C、MAX813D、PCF8563*15、MCS—51单片机的CPU主要的组成部分为〔〕A、运算器、控制器B、加法器、寄存器C、运算器、加法器D、运算器、译码器16、8051单片机的VSS〔20〕引脚是〔B〕引脚A、主电源+5VB、接地C、备用电源D、访问片外存贮器17、支持写入单片机或仿真调试的目标程序的文件格式是D.A、.ASMB、.CC、 .EXED、 .HEX18、在串行通信过程中,下面关于TI和RI说法正确的是C.A、在查询方式中,系统自动清零TI和RI.B、在中断方式中,系统自动清零TI和RI.C、在查询和中断方式中,系统都不会清零TI和RI,须程序清零.D、在查询和中断方式中,系统自动清零TI和RI.19、51单片机中,关于P0--P3端口说法正确的是B.A、P0--P3的每个端口只能按字节输入/输出.B、P0--P3的每个端口既可以按字节输入/输出,也可以按位进行输入输出.C、P0--P3的每个端口只能按位进行输入输出.D、P0--P3的每个端口不能用作输入输出.20、异步串行通信中,一帧数据中必须包含B.A、起始位、校验位和停止位.B、起始位和停止位.C、校验位和停止位.D、起始位和校验位.三、简答题〔每小题10分,共30分〕定时1、MCS-51单片机有多少32根I/O线,它们和单片机的外部总线有什么关系?2、定时/计数器T0有4几种工作方式?各自的特点是什么?工作方式1 13位3、51系列单片机的中断源有5几个?它们默认的优先级顺序是怎样的?INT0 T0 INT1 T1 RS四、编程题〔每小题10分,共20分〕1、已知单片机的P3口接有发光二极管,且当P3口为低电平时对应的发光二极管被点亮,编写程序使发光二极管从右向左依次轮流点亮.2、8051单片机系统中,已知晶振频率为12MHZ,用定时/ 计数器T1,编程实现从P1.1产生周期为2S的方波.C51单片机试卷2一、填空题〔每小题1分,共30分〕1、8031的口为低8位地址总线口, 口为第二功能口.2、修饰符interrupt m中m的取值为1对应的中断源,修饰符using n的功能是__________.3、定义变量a、b、c为内部RAM的无符号型字符变量,对应的指令是 .4、特殊功能寄存器TCON用于控制定时/计数器的和.5、对于IE寄存器来说,开放总中断,其对应的C51命令为__________,允许串口中断,其对应的C51命令为__________.6、对于SCON来说REN的功能是__________,PCON中SMOD的功能是__________.7、8255有两个控制字,它们是__________、__________.8、LED数码管的显示方式有__________和__________两种.9、键盘抖动的消除有两种方法__________和__________,硬件消除抖动的方法是__________,软件去抖动的方法是__________.10、EA 被称为__________,当它为高电平时,首先访问__________,当它为低电平,只访问__________.11、若已知向液晶写入命令的函数是Write_Commond,那么向RT-1602写入清屏的命令是,在液晶第1行第1列显示一个字符,显示缓冲区地址设置命令是 ,其引脚RS用于控制,R/W用于控制.12、C51的存储种类有__________,__________,__________,__________.二、选择题〔每小题1分,共20分〕1、单片机复位后,程序计数器PC的值为.A、 0000HB、 0010HC、0030H D、 1000H2、定时/计数器的定时方式中,计数器的计数脉冲是来自振荡器的分频后的脉冲.A、 8B、12C、2 D、163、在串行通信过程中,下面关于TI和RI说法正确的是.A、在查询方式中,系统自动清零TI和RI.B、在中断方式中,系统自动清零TI和RI.C、在查询和中断方式中,系统都不会清零TI和RI,须程序清零.D、在查询和中断方式中,系统自动清零TI和RI.4、MCS-51单片机的复位信号是< >有效.A、高电平B、低电平C、脉冲D、下降沿5、在片外扩展一片2764程序存储器芯片要< >地址线.A、8根B、13根C、16根D、20根6、8255A是可编程的并行输入/输出接口芯片,内部有〔〕个8位的并行口.A、2个B、3个C、4个D、5个7、AT89S51单片机是〔〕单片机.A、4位B、8位C、16位D、32位8、51单片机五个中断源的默认优先权由高到低排队正确的是〔〕A、串行口、定时计数器0、定时计数器1、外中断0、外中断1B、串行口、外中断0、定时计数器0、定时计数器1、外中断1C、外中断0、定时计数器0、外中断1、定时计数器1、串行口D、外中断0、外中断1、定时计数器0、定时计数器1、串行口9、定时/计数器T0的M1MO=00时,定时计数器的最大计数值是〔〕A、65536B、8192C、256D、12810、下列选项中不是C51编程时使用的关键字的是〔〕A、integerB、defineC、breakD、sbit11、51单片机串口有4种工作方式,其中哪些工作方式需要用到定时计数器T1〔〕A、四种工作方式都要用到.B、仅工作在方式0下才用定时计数器T1.C、工作在方式1和方式2时都要用到定时计数器T1.D、工作在方式1和方式3时都要用到定时计数器T1.12、定时/计数器中断发生在〔〕A、送入初值时B、启动定时/计数时C、定时/计数停止时D、计数值满量程时13、与外部中断无关的寄存器是〔〕A、TCONB、PCONC、SCOND、IP14、在8为单片机中-50H的补码是〔〕A、00110010BB、CFHC、10110010BD、CEH15、若以下ASCII码中有奇偶校验位,采用偶校验的是〔〕A、11010000B、00011111C、11011010D、1000000016、若MCS-51单片机使用晶振频率为6MHZ,其复位持续时间应超过〔〕A、2μsB、4μsC、8μsD、1ms17、C语言中最简单的数据类型包括〔〕.A、整型、实型、逻辑型B、整型、实型、字符型C、整型、字符型、逻辑型D、整型、实型、逻辑型、字符型18、单片机应用程序一般存放在中.A、RAMB、ROMC、寄存器D、CPU19、MCS-5l单片机的堆栈区是设置在< >中.A、片内 ROM区B、片外ROM区C、片内RAM区D、片外RAM区20、89C51单片机的VCC〔40〕引脚是引脚.A、主电源+5VB、接地C、备用电源D、访问片外存贮器三、简答题〔每小题10分,共30分〕1、已知P3口接有发光二极管的阴极,编写程序使发光二极管闪烁三次.2、如图所示共阳极数码管,写出0-9的显示编码 .3、简述行列式扫描键盘的工作原理.四、综合题〔每小题10分,共20分〕1、在串行口工作在方式1和方式3时,定时/计数器1的作用是什么?若已知单片机的晶振频率为12MHZ,且串行口的波特率为4900位/秒,写出定时计数器1的初始化程序.2、根据图编程从DAC0832输出端分别产生三角波和方波.C51单片机试卷3一、填空题〔每小题1分,共30分〕1、修饰符interrupt m中m的值为3对应的是中断源,m的值为4对应的是中断源.2、定义变量p1_0为P1口的第0位,变量a1为片内RAM的可位寻址区的变量,其对应的变量定义指令为, .3、TCON中IT0<IT1>表示__________,IE0<IE1>表示__________,TF0<TF1>表示__________,TR0<TR1>表示__________,SCON中TI表示__________,RI表示__________.4、变量a1=0x92,if<a1>结果是____ <真/假>5、对于IE寄存器来说,若想中断源对应的终端服务程序被执行,必须用软件开两个中断,分别是开中断和中断.6、对定时计数器设置其工作方式用特殊功能寄存器,若将定时/计数器设置为工作方式3定时方式,其最大计数值为.7、对于串行口控制寄存器SCON,若允许串口接收数据,要用命令启动接收,若将接收到的数据送到P3口,其对应的C51指令位.8、波特率的单位是,若串口工作在方式1下,一秒向外传送490帧数据,其波特率为.9、运算符号"="用于,符号"=="用于.10、特殊功能寄存器的定义可以用关键字实现,我们写程序时没有定义特殊功能寄存器是因为我们在程序中添加了头文件.11、基本数据类型char的长度为个字节,默认情况下其对应的数值范围是.12、单片机的晶振频率若为12MHZ,执行一条双机器周期指令用的时间为 .13、51系列单片机外扩存储器时,作为数据线的是端口,作为地址线的是和和端口,扩展存储器的最大容量为.二、判断题〔每小题1分,共10分〕1、若一个函数的返回类型为void,则表示其没有返回值.〔〕2、定时器与计数器的工作原理均是对输入脉冲进行计数.〔〕3、SFR中凡是能被8整除的地址,都具有位寻址能力.< >4、不能用"sfr16”直接访问定时器/计数器0和1. < >5、MCS-51单片机的程序存储器只能用来存放程序的.〔〕6、串口中断标志由硬件清0.〔〕7、特殊功能寄存器的名字,在C51程序中,全部大写.〔〕8、"sfr"后面的地址可以用带有运算的表达式来表示.〔〕9、#include <reg51.h>与#include "reg51.h"是等价的.〔〕10、sbit不可以用于定义内部RAM的可位寻址区,只能用在可位寻址的SFR上.〔〕三、选择题〔每小题1分,共10分〕1、单片机中的程序计数器PC用来.A、存放指令B、存放正在执行的指令地址C、存放下一条指令地址D、存放上一条指令地址2、单片机上电复位后,PC的内容和SP的内容为.A、0000H,00HB、0000H,07HC、0003H,07HD、0800H,08H3、当程序状态字寄存器PSW状态字中RS1和RS0分别为0和1 时,系统先用的工作寄存器组为.A、组0B、组1C、组2D、组34、用89C51的定时器T1作定时方式,用模式1,则工作方式控制字为.A、01HB、05HC、10HD、50H5、使89C51的定时器T0停止计数的指令是.A、CLR TR0B、CLR TR1C、SETB TR0D、SETB TR16、MCS-51单片机响应中断的必要条件是.A、TCON或SCON寄存器内的有关中断标志位为1B、IE中断允许寄存器内的有关中断允许位置1C、IP中断优先级寄存器内的有关位置1D、当前一条指令执行完7、外部中断0 的入口地址是.A、0003HB、000BHC、00013HD、001BH8、MCS—51单片机在同一级别里除INT0外,级别最高的中断源是.A、外部中断1B、定时器T0C、外部中断0D、定时器T19、89C51定时/计数器共有四种操作模式,由TMOD寄存器中M1 M0的状态决定,当M1 M0的状态为01 时,定时/计数器被设定为.A、13位定时/计数器B、16位定时/计数器C、自动重装8位定时/计数器D、T0为2个独立的8位定时/计数器10、下列说法正确的是〔〕A、各中断发出的中断请求信号,都会标记在MCS-51系统的IE寄存器中.B、各中断发出的中断请求信号,都会标记在MCS-51系统的TCON与SCON寄存器中.C、各中断发出的中断请求信号,都会标记在MCS-51系统的IP寄存器中D、各中断发出的中断请求信号,都会标记在MCS-51系统的TMOD寄存器中四、简答题〔每小题10分,共30分〕1、80C51有哪五个中断源,哪些中断请求信号在中断响应时可以自动清除?哪些不能自动清除?应如何处理?2、MCS-51单片机由哪几部分组成?简述各部分功能.3、五、编程题〔每第1、2小题每小题15分,第3小题20分,共50分〕1、用51单片机并行口设计显示一个数码的电路,使数码管循环显示"0”~"F".2、已知focs=12MHZ,如图利用定时器T1使图中发光二极管进行秒闪烁. 即亮500ms,暗500ms,用C51写出程序.3、硬件连接如下图所示,要求编程实现用单片机甲的按键KEY1控制单片机乙发光二极管闪烁三次〔不写握手部分,且传送速率为2400bps 〕.C51单片机试卷4一、填空题〔每小题1分,共45分〕1、串行口方式2接收到的第9位数据送寄存器的位中保存.2、MCS-51系列单片机为位单片机.3、8031的中断源有 、、、、、有个中断优先级.4、MCS-51系列单片机的典型芯片分别为、、.5、利用8255A 可以扩展个并行口,其中条口线具有位操作功能.6、由8031组成的单片机系统在工作时,EA 引脚应该接.7、串行口的方式0的波特率为.8、8031内部有___________个定时器,___________个并行口和___________个串行口.9、8031的异步通信口为〔单工/半双工/全双工〕,若传送速率为每秒120帧,每帧10位,则波特率为____ .10、8031的 口为双功能口.11、8031的口为高8位地址总线口.12、欲使P1口的低4位输出0,高4位不变,应执行一条命令.13、KeiL C51软件中,工程文件的扩展名是__________,编译连接后生成可烧写的文件扩展名是____________.14、MCS-51单片机中,在IP=0x00时,优先级最高的中断是_______________,最低的是___________.15、MCS —51单片机的P0—P4口均是并行I /O 口,其中的P0口和P2口除了可以进行数据的输入、输出外,通常还用来构建系统的和,在P0—P4口中,为真正的双向口,为准双向口.16、MCS —5l 单片机的堆栈区只可设置在 存储区<器>. +5VP2.1 单 片 机甲 +5V地 R T 单 片 机 乙 TRP3.0 P3.1 P3.2 : : P3.6P3.7KEY117、单片机的复位操作是__________〔高电平/低电平〕,单片机复位后,中断允许寄存器IE 的值是________.18、8255A内部控制电路还可以分成两组:A组和B组.其中A组控制的对象是,B组控制的对象是 .19、若采用6MHz的晶体振荡器,则MCS-51单片机的振荡周期为________,机器周期为____________.20、A/D芯片选择最主要的参数是__________和_____________.21、C51定义可寻址位,使用关键字为____ .25、变量tmp=0x15,经运算tmp>>=4;后的tmp值为____ .26、C51数组的下标是从____开始的.27、C51中 0x75 | 0x42 运算结果是____.二、判断题〔每题1分,共15分〕1.单片机是在一块集成电路上把CPU、存储器、定时器/计数器与多种形式的I/O接口集成在一起而构成的微型计算机.2.只要有中断出现,CPU就立即响应中断.3.MCS_51单片机P3端口的各端口线如果作为第二功能信号使用的话,那么它们就不能再用来进行数据I/O传送;同样道理,如果用作数据传送,就不能再作为第二功能信号使用. 4.MCS-51单片机的定时和计数都使用同一计数机构,所不同的只是计数脉冲的来源:来自于单片机内部的是定时,而来自于外部的则是计数.5.P0端口在作为地址总线使用时,提供的是高8位地址.6.单片机的LED动态显示是依据人眼的"视觉暂留"效应实现的.7.DPTR是由DPH和DPL两个8位特殊寄存器组成的.8.运算符"&"表示的是按位与运算.10.命令语句if<x=10> {P0=0xff};表达的含义是当x的值为10时,才执行P0=0xff的命令. 11.80c51单片机定时/计数器T0、T1都可以工作在方式3下12.51单片机的串口工作在方式0,接收和发送数据都是通过RXD完成的.13.正在进行的中断过程不能被新的同级或低优先级的中断请求所中断.14.最小系统是单片机仅用本身有的资源就可以工作,不需要外接任何部件.15.一片存储器芯片2764可扩展的最大容量是8KB.三、简答题〔第1小题6分,第2小题4分〕1.提供扩展存储器芯片的片选信号的方法有哪几种?简述各方法的特点.2.说明什么是中断、中断允许、中断屏蔽.四、综合题〔每小题10分,共30分〕1.已知单片机系统晶振频率为6MHz,若要求定时值为10ms时,定时器T0工作在方式1时,定时器T0对应的初值是多少?TMOD的值是多少?TH0=?TL0=?2.已知8255A与单片机的连接形式如下图所示<只给出部分重要连接线路>:要求:〔1〕分析8255A的A口、B口、C口与控制口的地址.〔2〕若设定8255A的A口为方式0输入,B口为方式0输出,用汇编语言写出初始化程序.3.如下图,编写程序控制发光二极管循环点亮,当按下外中断INT0时,二极管闪烁三次后熄灭.C51单片机原理与应用期末试题<A卷>系、级、专业:考试类别:考试<考试时间120分钟,满分100分>一、填空题〔共40分,每空2分〕1.MCS-51系列单片机为____位单片机.2.DAC0832通过改变控制引脚的连接方式,使其具有三种工作方式,分别是___________、__________、_______________.3.液晶RT-1602C实际显示区有________行,每行显示___________个字符.4.MCS-51单片机的串行口,启动接收的条件是___________和____________.5.单片机的复位操作是__________〔高电平/低电平〕,且其上所加的复位电平的信号至少持续_______个时钟周期.6.使P1口的低4位输出1,高4位输出0的C51指令为____ .7.C51定义特殊功能寄存器中的位,使用关键字为____.8.C51变量中unsigned char型变量的取值范围是________.9.变量tmp=0xfe,经执行指令tmp<<1|1后tmp的值为____.10.变量a1=0xff,if<!a1>结果是____ <真/假>.11.C51数组的下标是从____开始的.12. MCS-51单片机的P0口作为通用I/O口使用时,在作为输入数据口前应先向P0口写_______.13. -25的原码是________B、反码是_________B、补码是___________B.二、选择题〔共20分,每题1分〕1. 单片机8051的XTAL1和XTAL2引脚是〔〕引脚A.外接定时器 B.外接串行口 C.外接中断 D.外接晶振2. 8051单片机的一个机器周期包含〔〕个时钟周期A.6 B.2 C.12 D.93. 8051单片机中,输入/输出引脚中用于专门的第二功能的引脚是〔〕A.P0 B.P1 C.P2 D.P34. 单片机的定时器/计数器工作方式1是〔〕.A. 8位计数器结构B. 2个8位计数器结构C. 13位计数结构D. 16位计数结构5. 具有模数转换功能的芯片是〔〕A. ADC0809B. DAC0832C.MAX813D.74LS3736. C51语言的运算符中,能实现按位求反功能的是〔〕运算符A.~ B.^ C.| D.!7. 在编写串行口中断服务程序时,修饰符interrupt m中m的取值应为〔〕A.1 B.2 C.3 D.48. MCS—51单片机的CPU主要的组成部分为〔〕A.运算器、控制器 B.加法器、寄存器C.运算器、加法器 D.运算器、译码器9.C51中一般char型变量占用< >字节存储.A、一个B、两个C、三个D、四个10. 函数_crol_<>包含在头文件〔〕中A."reg51.h" B."absacc.h" C."intrins.h" D."math.h"11. 十进制数67在C51语言中表示为十六进制数形式为〔〕A.0x52 B.0x67 C.0x43 D.0x3412. 下列选项中不属于C51的特殊功能寄存器的是〔〕A.P0 B.TMOD C.SBUF D.TI13. 8051单片机〔〕口是一个8位漏极型开路型双向I/O端口.A.P0 B.P1 C.P2 D.P314. 八段共阴极数码管显示0的字段码是〔〕A.0x3f B.0xc0 C.0x00 D.0xff15.可编程I/O扩展芯片8255A有〔〕个8位并行口A.1 B.2 C.3 D.416.MCS-51单片机的51子系列为用户提供了〔〕个硬件中断源A.4 B.5 C.6 D.717.下列选项中〔〕是定时/计数器T0的中断允许控制位A.EA B.ET0 C.IT0 D.IE018.已知某串口1S钟可向外传送240帧,每帧包含10位数据信息,其比特率为〔〕A.12×106 B.2400 C.9600 D.480019.一个5V满刻度的8位DAC其分辨率为< >A.19.5mv B.1.22mv C.0.42v D.3.58mv20.利用下列〔〕关键字可以改变工作寄存器组A.interruptB.sfrC.while D.using三、编程计算题〔共40分〕1.已知单片机的晶振频率fosc=12MHZ,串行口工作在方式1,PCON=0X80.若令串口的波特率为9600bit/s,请给出定时计数器T1工作在方式2下的初值与其计算过程.〔10分〕2.利用单片机的P3口接8个发光二极管,P1口接8个开关,编程实现,当关动作时,对应的二极管亮灭.〔10分〕3.如下图, 在六个共阳极数码led1~led6上分别显示数字1~6. <20分>位为TH、TL的确定:单片机的fosc=12MHz,则单片机的机器周期为1ms,1ms=1000ms,计数器的计数初值为65 536-1000,TH0=〔65 536-1000〕/256,TL0=〔65 536-1000〕%256.①采用查询方式程序如下:#include<reg51.h>sbit P1_0=P1^0;void main<void>{ TMOD=0x01;TR0=1;for<;;>{ TH0=<65536-1000>/256;TL0=<65536-1000>%256;do{ }while<!TF0>;P1_0=!P1_0;TF0=0;}}②采用中断方式程序如下:#include<reg51.h>sbit P1_0=P1^0;void timer0<void> interrupt 1 using 1{ P1_0=!P1_0;TH0=<65536-1000>/256;TL0=<65536-1000>%256;}void main<void>{ TMOD=0x01;P1_0=0;TH0=<65536-1000>/256;TL0=<65536-1000>%256;EA=1; ET0=1;TR0=1;do{ } while<1>;}设系统时钟频率为12MHz,编程实现从P1.1输出周期为1s的方波.要输出周期为1s的方波,应产生500ms的周期性定时,定时到则对P1.1取反即可实现.由于定时时间较长,一个定时器/计数器不能直接实现,一个定时器/计数器最长定时时间为65ms多一点,可以用以下两种方法实现.〔1〕方法一用定时/计数器T0产生周期性为10ms的定时,然后用一个变量对10ms计数50次.系统时钟为12MHz,定时/计数器T0定时10ms,计数值N为10000,选方式1,方式控制字为00000001B〔01H〕,则初值X为X=65 536-10 000.#include<reg51.h>sbit P1_1=P1^1;unsigned char i; //定义计数变量void main< >{ i=0; //初始化TMOD=0x01;TH0=<65536-10000>/256;TL0=<65536-10000>%256;EA=1;ET0=1;TR0=1;while<1>;}void time0_int<void> interrupt 1 //中断服务程序{ TH0=<65536-10000>/256; //重载初始值TL0=<65536-10000>%256; //重载初始值i++; //每发生一次中断,计数变量加1if <i==50> //发生50次中断,定时0.5ms{ P1_1=!P1_1;i=0; //计数变量清零}}〔2〕方法二用定时/计数器T1计数实现,对10ms计数50次.定时/计数器T1工作于计数方式时,计数脉冲通过T1〔P3.5〕输入.设定时/计数器T0定时时间到对P1.0取反一次,则T1〔P3.5〕每10ms产生一个计数脉冲,那么定时500ms只需计数25次,设定时/计数器T1工作于方式2,初值X=256-25=231,TH1=TL1=231.因为定时/计数器T0工作于方式1,定时方式,则这时方式控制字为01100001B〔61H〕.定时/计数器T0和T1都采用中断方式工作.#include<reg51.h>sbit P1_1=P1^1;sbit P1_0=P1^0;void main< >{ TMOD=0x61; //初始化TH0=<65536-10000>/256;TL0=<65536-10000>%256;TH1=231;TL1=231;EA=1;ET0=1; ET1=1;TR0=1; TR1=1;while<1>;}void time0_int<void> interrupt 1 //T0中断服务程序{ TH0=<65536-10000>/256; //重载初始值TL0=<65536-10000>%256; //重载初始值P1_0=!P1_0;}void time1_int<void> interrupt 3 //T1中断服务程序{ P1_1=!P1_1; }设系统时钟频率为12MHz,编程实现:P1.1引脚上输出周期为1s,占空比为20%的脉冲信号根据输出要求,脉冲信号在一个周期内高电平占0.2s,低电平占0.8s,超出了定时器的最大定时间隔,因此利用定时器0产生一个基准定时配合软件计数来实现.取50ms作为基准定时,采用工作方式1,这样这个周期需要20个基准定时,其中高电平占4个基准定时.#include<reg51.h>sbit P1_1=P1^1;unsigned char i; //定义计数变量void main< >{ i=0; //初始化TMOD=0x01;TH0=<65536-50000>/256;TL0=<65536-50000>%256;EA=1; ET0=1;TR0=1;while<1>;}void time0_int<void> interrupt 1 //中断服务程序{ TH0=<65536-50000>/256; //重载初始值TL0=<65536-50000>%256;i=i+1;if<i==4> P1_1=0; //高电平时间到变低else if<i==20> //周期时间到变高{ P1_1=1;i=0; //计数变量清零}}一、单项选择题.〔每题1分,共20分〕1.一个完整的计算机系统通常包含〔〕A、系统软件和应用软件B、计算机与其外部设备C、硬件系统和软件系统D、系统硬件和系统软件2.二进制数11000100转换为十进制数是多少?〔〕A、194B、195C、196D、1973.补码11110001对应的真值用十进制表示为多少?〔〕A、-14B、-15C、240D、2414.〔—25〕在计算机中的二进制表示形式为〔〕A、10011001B、11100110C、01100110D、111001115.MCS-51单片机外部中断1对应的中断入口地址是多少?〔〕A、0003HB、000BHC、0013HD、001BH6.MCS-51单片机的堆栈区设置在< >A、片内RAM区B、片外RAM区C、片内ROM区D、片外ROM区7.51单片机的片外地址总线和数据总线的条数分别是〔〕.A、8和8B、8和16C、16和8D、16和168.当MCS-51单片机接有外部存储器,P2口可作为<>.A 、数据输入口B 、数据的输出口C 、准双向输入/输出口D 、输出高8位地址9.下列关于51单片机堆栈的描述,正确的是〔 〕.A 、向上生长型,按字处理B 、向下生长型,按字处理C 、向上生长型,按字节处理D 、向下生长型,按字节处理 10.标志寄存器的RS1和RS0位用于选择工作寄存器组,如果选择2组,则RS1和RS0是〔 〕.A 、0和0B 、0和1C 、1和0D 、1和111.单片机读片外程序存储器信号是哪个?< >A 、-PSENB 、-EAC 、ALED 、-RD12.C51程序中,利用下列〔〕关键字可以定义中断函数A 、interruptB 、sfrC 、whileD 、using13.C51的int 类型和long 类型在存储器中占用的字节数是〔 〕A 、1和2B 、2和3C 、1和4D 、2和414.C51中变量位于程序存储区,所用的存储器类型是〔 〕A 、dataB 、bdataC 、codeD 、xdata15.在片外扩展一片8KB 程序存储器芯片要< >地址线.A 、10根B 、12根C 、13根D 、16根16.某存储器芯片有11根地址线,8根数据线,该芯片有多少个存储单元?〔 〕A 、2KBB 、3KBC 、4KBD 、8KB17.C51中,定时/计数器1的中断类型号是〔 〕.A 、1B 、2C 、3D 、418.ADC0809的地址锁存信号是〔 〕A 、ALEB 、EOC C 、CLOCKD 、START19.C51中外中断1的中断允许EX1需用〔 〕关键字定义.A 、bitB 、sbitC 、sfrD 、sfr1620.在KEIL51中形成的下载文件的扩展名是〔 〕.A 、CB 、ASMC 、EXED 、HEX二、填空.〔每空1分,共20分〕1.微型计算机一般由四大部分组成,分别是____________、____________、_____________和共 3 页,第 1 页共 3页,第1 页总线.2.西文字符在计算机中用ASCII编码表示,已知西文字符"C"的ASCII码是43H,则西文字符"E"的ASCII码是___________,西文字符"a"的ASCII码是___________.〔用十六进制数〕3.系统总线是CPU与其它设备连接的信号线,实现相互之间的信息传送,系统总线按功能分三种,分别为___________、____________和___________.4.单片机的存储器一般采用哈佛结构,根据存储信息可把存储器分两种,分别是____________和___________.5.51单片机使用片外程序存储器时,—EA信号线应该接___________电平.6.用51单片机的定时/计数器实现30个单位的计数,采用方式1初值应设置为___________,采用方式2初值应设置为___________.〔用十进制给出〕7.51单片机串口工作于方式1时,数据通过___________并口线输出, ___________并口线输入.8.8051芯片复位后,堆栈指针SP的值是___________,程序栈指针PC的值是___________. 9.LED数码管显示时,由数字转换为笔划信息有两种译码方式,分别是____________和___________.10.执行指令的时间称为指令周期,而指令周期是以机器周期为单位,而机器周期由多个振荡周期组成,在51单片机中,若振荡信号频率为6MHZ,则机器周期信号的频率为___________.三、判断题,正确的打√,错误的打×.〔每题1分,共10分〕1.单片机直接识别的语言是汇编语言.< >2.8051单片机是8位的计算机.〔〕3.51单片机的定时/计数器一定比串口中断中断优先级高.〔〕4.51单片机的堆栈位于片外数据存储器中.〔〕5.51单片机的程序存储器是可以用来存放数据.< >6.对于正数,它的原码、反码、补码都一样,也都与无符号数的编码一样.< >7.51单片机工作时可以不需要程序存储器.〔〕8.进位标志只能对加法运算进位进行判断.< >9.串口中断请求标志必须由软件清除.< >10.bit不可以用于定义内部RAM的可位寻址区,只能用在可位寻址的SFR上.〔〕四、简答题.〔每题5分,共30分〕1.8051单片机程序存储器总空间是多少字节,片内存储器多少字节,片外存储器多少字节,使用时如何区分?。

单片机原理及应用复习内容

单片机原理及应用复习内容

单片机原理及应用复习内容单片机原理及应用复习内容第1章复习内容1. 微处理器、微计算机、微处理机、CPU、单片机、嵌入式处理器它们之间有何区别?答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。

而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。

2. AT89S51单片机相当于MCS-51系列单片机中的哪一型号的产品?“S”的含义是什么?答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash 存储器取代了87C51片内的4K字节的EPROM。

3. 单片机可分为商用、工业用、汽车用以及军用产品,它们的使用温度范围各为多少?答:商用:温度范围为0~+70℃;工业用:温度范围为-40~+85℃;汽车用:温度范围为-40~+125℃;军用:温度范围为-55~+150℃。

4. 解释什么是单片机的在系统编程(ISP)与在线应用编程(IAP)。

答:单片机的在系统编程ISP(In System Program),也称在线编程,只需一条与PC机USB口或串口相连的ISP下载线,就可把仿真调试通过的程序代码从PC机在线写入单片机的Flash存储器内,省去了编程器。

在线应用编程(IAP)就是可将单片机的闪存内的应用程序在线修改升级。

5. 什么是“嵌入式系统”? 系统中嵌入了单片机作为控制器,是否可称其为“嵌入式系统”?答:广义上讲,凡是系统中嵌入了“嵌入式处理器”,如单片机、DSP、嵌入式微处理器,都称其为“嵌入式系统”。

但多数人把“嵌入”嵌入式微处理器的系统,称为“嵌入式系统”。

目前“嵌入式系统”还没有一个严格和权威的定义。

目前人们所说的“嵌入式系统”,多指后者。

6. 嵌入式处理器家族中的单片机、DSP、嵌入式微处理器各有何特点?它们的应用领域有何不同?答:单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。

单片机考试复习题与答案-(13149)

单片机考试复习题与答案-(13149)

选择题1、主频为12MHz的单片机他的机器周期为(c)。

A、1/12微秒B、0.5微秒C、1微秒D、2微秒2、MCS-51系列单片机是属于(C)体系结构。

A、冯诺依曼B、普林斯顿C、哈佛D、图灵3、定时器/计数器工作方式0为(A)。

A、13位定时/计数方式B、16位定时/计数方式C、8位可自动装入计数初值方式D、2个8位方式6、MCS-51单片机每个机器周期都要进行中断查询,查询的是(A)。

A、中断标志位B、中断允许控制位C、中断优先级控制位D、外部中断触发方式控制位7、当外部中断被设置为下降沿触发时,对触发信号的要求是高、低电平的持续时间均应大于(B)。

A、1个机器周期B、2个机器周期C、4个机器周期D、8个机器周期8、在下列寄存器中,与定时器/计数器无关的是(C)。

scon是控制寄存器A、TCONB、TMODC、SCOND、IE9、若欲将T0设置为定时器方式2、T1设置为计数器方式1,T0、T1均采用软件启/停控制,则方式寄存器TMOD的方式控制字为(B)。

A、00100101B、01010010C、10101101 C、110110101010、当晶振频率为6MHz、定时/计数器工作于方式1,最大定时时间为(D)。

A、8.192msB、16.384msC、65.53msD、131.07211、当晶振频率为6MHz,定时/计数器T0工作于定时器方式2,若要求定时值为0.2ms,则定时初值为(A)。

A、156B、56C、100D、20012、设MCS-51单片机的晶振频率为12MHz,定时器作计数器使用时,其最高的输入计数频率为(C)。

A、2MHzB、1MHzC、500KHzD、250KHz13、利用下列(D)关键字可以改变工作寄存器组。

A、interruptB、sfrC、whileD、using14、(D)是c语言提供的合法的数据类型关键字。

A、FloatB、signedC、integerD、Char15、12MHz晶振的单片机在定时器工作方式下,定时器中断记一个数所用的定时时间是(A)。

80c51单片机复习习题

80c51单片机复习习题

程序存储器
1、程序存储器为16位编址,由PC程序计数器寻址。 、程序存储器为 位编址 位编址, 程序计数器寻址。 程序计数器寻址 2、与程序存储器寻址有关的引脚 、与程序存储器寻址有关的引脚EA EA,访问内部或外部程序存储器选择信号。 ,访问内部或外部程序存储器选择信号。 高电平,访问内部程序存储器。 高电平,访问内部程序存储器。 低电平,直接访问外部程序存储器。 低电平,直接访问外部程序存储器。 3、0000H~0002H:程序的起始,一般存放一条绝对跳转指令 :程序的起始, 、 例:LJMP 0050H 4、 0003H~002AH:5个中断服务程序 、 : 个中断服务程序 0003H 外部中断 外部中断0 000BH 定时器 溢出中断 定时器0溢出中断 0013H 外部中断 外部中断1 001BH 定时器 溢出中断 定时器1溢出中断 0023H 串行口中断
五、I/O端口 端口
1、端口结构(了解) 、端口结构(了解) 2、第一功能,熟悉如何对I/O端口进行读、写操作。 、第一功能,熟悉如何对 端口进行读、写操作。 端口进行读 3、第二功能,各I/O端口的第二功能(掌握) 、第二功能, 端口的第二功能( 端口的第二功能 掌握) 4、80C51的总线结构(掌握) 、 的总线结构( 的总线结构 掌握)
操作数的寻址方式
7种寻址方式,名称、格式、寻址范围 种寻址方式,名称、格式、 种寻址方式 1、寄存器寻址 3、寄存器间接寻址 5、相对寻址 7、位寻址 2、直接寻址 4、立即寻址 6、变址寻址
操作数的寻址方式
写出以下指令源操作数的寻址方式: 写出以下指令源操作数的寻址方式: MOV A, R5 ;寄存器寻址 寄存器寻址 ADD A, @R0 ;寄存器间接寻址 寄存器间接寻址 SUBB A, #50H ;立即寻址 立即寻址 ADDC A, 50H ;直接寻址 直接寻址 MOV A, P0 ;直接寻址 直接寻址 MOVC A, @A+DPTR ;变址寻址 变址寻址 MOVX A, @R0 ;寄存器间接寻址 寄存器间接寻址 SETB 20H ;位寻址 位寻址 CLR P1.0 ;位寻址 位寻址 JC EXIT ;相对寻址 相对寻址

单片机复习

单片机复习

1.单片机中的程序计数器PC用来(
)。
2.单片机AT89C51的 E A 引脚( )。
3.外部扩展存储器时,分时复用做数据线和低8位地址线的是(
4.PSW中的RS1和RS0用来( )。 )。
)。
5.单片机上电复位后,PC的内容为(
6.8051单片机的程序计数器PC为16位计数器,其寻址范围是(
)。
15.在定时/计数器的计数初值计算中,若设最大计数值为M,对于工作方式1
下的M值为 。
16.输入单片机的复位信号需延续_________个机器周期以上的电平时即为有效, 用以完成单片机的复位初始化操作。
17.51单片机的定时/计数器,若只用软件启动,与外部中断无关,应使TMOD
中的 。
18.51单片机的T0用做计数方式时,用工作方式1(16位),则工作方式控制
)寄
41.A/D转换的精度由( 42.单片机输出信号为(
)确定。 )电平。
43.单片机和 PC机接口时,往往要采用RS-232接口芯片,其主要作用是 44.串行口的发送数据和接收数据端为( )。 )。 )。
45.51单片机的定时器T1用做定时方式时是(
46.51单片机的定时器T1用做计数方式时计数脉冲是(
)寄
1. 定时器T1做串行口波特率发生器时,为什么采用工作方式2?
2.51单片机定时/计数器的定时功能和计数功能有什么不同?分别应用在 什么场合? 3.软件定时与硬件定时的原理有何异同?各有什么优缺点? 4.如图所示共阳极数码管,写出0-9的显示编码。
5. 七段LED静态显示和动态显示在硬件连接上分别具有什么特点,实际设计时 应如何选择使用?
语句是先执行、后判断,而
类型数据经常用于处理ASCII字符或用

51单片机复习题(含答案)

51单片机复习题(含答案)

一、填空题1、A T89S51单片机为8 位单片机,共有40 个引脚。

2、MCS-51系列单片机的典型芯片分别为8031 、8051 、8751 。

3、A T89S51访问片外存储器时,利用ALE 信号锁存来自P0口发出的低8位地址信号。

4、A T89S51的P3口为双功能口。

5、A T89S51内部提供 2 个可编程的16 位定时/计数器,定时器有4 种工作方式。

6、A T89S51有 2 级中断, 5 个中断源。

7、A T89S51的P2 口为高8位地址总线口。

8、设计一个以AT89C51单片机为核心的系统,如果不外扩程序存储器,使其内部4KB闪烁程序存储器有效,则其EA* 引脚应该接+5V9、单片机系统中使用的键盘分为独立式键盘和行列式键盘,其中行列式键盘的按键识别方法有扫描法和线反转法。

10、单片机进行串行通信时,晶振频率最好选择11.0592MHz11、AT89S51复位后,PC与SP的值为分别为0000H 和07H 。

12、关于定时器,若振荡频率为12MHz,在方式2下最大定时时间为256us13、A T89S51单片机的通讯接口有串行和并行两种形式。

在串行通讯中,发送时要把并行数据转换成串行数据。

接收时又需把串行数据转换成并行数据。

14、一个机器周期等于6个状态周期,振荡脉冲2分频后产生的时序信号的周期定义为状态12周期。

15、当使用慢速外设时,最佳的传输方式是中断。

16、MCS-51串行接口有4种工作方式,这可在初始化程序中用软件填写特殊功能寄存器__SCON _加以选择。

二、判断题1、8031与8051的区别在于内部是否有程序存储器。

(√)2、内部RAM的位寻址区,既能位寻址,又可字节寻址。

(√)3、串行口工作方式1的波特率是固定的,为fosc/32。

(×)4、8051单片机中的PC是不可寻址的。

(√)5、MCS-51系统可以没有复位电路。

(×)6、某特殊功能寄存器的字节地址为80H,它即能字节寻址,也能位寻址。

C51语言复习题参考答案

C51语言复习题参考答案

一、单项选择题:(每小题2分,共10分。

在每小题备选答案中选出一个正确答案,并将正确答案的代码填在题中括号内。

选对得分,不选、选错均不得分。

)1.利用下列( D )关键字可以改变工作寄存器组A、interruptB、sfrC、whileD、using2.C51中一般指针变量占用( C )字节存储。

A、一个B、两个C、三个D、四个3.使用宏来访问绝对地址时,一般需包含的库文件是( B )A、 B、 C、 D、4.执行#define PA8255 XBYTE[0x3FFC];PA8255=0x7e;后存储单元0x3FFC的值是(A )A、Ox7eB、8255HC、未定D、7e 5.设有int i;则表达式i=1,++i,++i||++i,i的值为(C)A、1B、2C、3D、46.设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是(C)A、10,11,12B、11,12,12C、10,12,12D、11,11,12 7.设有int i;则表达式i=1,++i,i||++i,i的值为(B)A、1B、2C、3D、4二、判断题:(每小题1分,共10分。

正确的在括号内打“√”,错误的打“×”。

判对得分,不判、判错均不得分。

)1.若一个函数的返回类型为void,则表示其没有返回值。

(√)2.特殊功能寄存器的名字,在C51程序中,全部大写。

(√)3.“sfr”后面的地址可以用带有运算的表达式来表示。

(×)4.#include <>与#include “”是等价的。

(√)5.sbit不可以用于定义内部RAM的可位寻址区,只能用在可位寻址的SFR上。

(×)6.Continue 和break都可用来实现循环体的中止。

(×)7.若一个函数的返回类型为void,则表示其没有返回值。

(√)8.所有定义在主函数之前的函数无需进行声明。

单片机复习题带答案

单片机复习题带答案

一、单项选择题1.利用下列( D )关键字可以改变工作寄存器组A、interruptB、sfrC、whileD、using2.C51中一般指针变量占用( C )字节存储。

A、一个B、两个C、三个D、四个3.使用宏来访问绝对地址时,一般需包含的库文件是(B)A、reg51.hB、absacc.hC、intrins.hD、startup.h4.执行#define PA8255 XBYTE[0x3FFC];PA8255=0x7e;后存储单元0x3FFC的值是( A )A、Ox7eB、8255HC、未定D、7e5.设有int i;则表达式i=1,++i,++i||++i,i的值为( C )A、1B、2C、3D、46.设有int a[ ]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是( C )A、10,11,12B、11,12,12C、10,12,12D、11,11,127.设有int i;则表达式i=1,++i,i||++i,i的值为( B )A、1B、2C、3D、48、单片机8051的XTAL1和XTAL2引脚是(D )引脚。

A、外接定时器B、外接串行口C、外接中断D、外接晶振9、单片机的定时器/计数器设定为工作方式1时,是(D )。

A、8位计数器结构B、2个8位计数器结构C、13位计数器结构D、16位计数器结构10、串行口每一次传送( C )字符。

A、1个字节B、1bitC、1帧D、1 串11、计算机能直接识别的语言是( C )。

A、汇编语言B、自然语言C、机器语言D、C语言12、MCS—51单片机的CPU主要的组成部分为(A )。

A、运算器、控制器B、加法器、寄存器C、运算器、加法器D、运算器、译码器13、MCS-51系列单片机芯片是双列直插式封装的,有( C )个引脚。

A、24B、30C、40D、5014、MCS-51的中断允许触发器内容为83H,CPU将响应的中断请求是(A )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.8个发光管间隔200ms由上至下,再由下至上(每次亮1个发光二极管),再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。

重复此过程。

#include<reg51.h>#include<intrins.h>void delayms(unsigned int xms) //延时xms函数{unsigned int i,j;for(i=0;i<xms;i++)for(j=0;j<110;j++);}void main(){unsigned int temp,num1,num2;while(1){for(num1=0;num1<2;num1++) //注意外层循环和内层循环一定要使用两个变量,否则会出错外层循环不起作用(因为用同个变量会进入死循环){temp=0x01;for(num2=0;num2<8;num2++) //流水灯由左到右{P1=temp;delayms(200);temp=_crol_(temp,1);}temp=0x80;for(num2=0;num2<8;num2++) //流水灯由右到左{P1=temp;delayms(200);temp=_cror_(temp,1);}}for(num1=0;num1<5;num1++) //控制8个LED全部点亮或者熄灭{P1=0xff;delayms(300);P1=0x00;delayms(300);}}2.在AT89C51的P1口接有8个发光二极管D0~D7,振荡器频率为12MHz。

编程实现以下控制要求:(1) 开始,8个发光二极管全暗。

(2) 延时1s后,按D0→D1→D2→D3→D4→D5→D6→D7顺序依次点亮8个发光二极管,时间间隔为50ms。

(3) 延时1s后,按D7→D6→D5→D4→D3→D2→D1→D0顺序依次点亮8个发光二极管,时间间隔为50ms。

(4) 延时1s后,按D0→D2→D4→D6→D1→D3→D5→D7顺序依次点亮8个发光二极管,时间间隔为50ms。

(5) 延时1s后,按D1→D3→D5→D7→D0→D2→D4→D6顺序依次点亮8个发光二极管,时间间隔为50ms。

(6) 重复步骤(1)~(5)。

/***********************************************************************/ 程序功能:按不同方式点亮接在P1口上的8个发光二极管/***********************************************************************/ #include<reg51.h>unsigned char Disp1[8]={ 0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0x0ff };unsigned char Disp2[8]={ 0x80,0x0c0,0x0e0,0x0f0,0x0f8,0x0fc,0x0fe,0x0ff };unsigned char Disp3[8]={ 0x01,0x05,0x15,0x55,0x57,0x5f,0x7f,0x0ff };unsigned char Disp4[8]={ 0x02,0x0a,0x2a,0x0aa,0x0a3,0x0af,0x0bf,0x0ff };/***********************************************************************/ 函数名称:DelayXs ( unsigned char x )函数功能:x=20,延时1s;x=1,延时50ms/***********************************************************************/ void DelayXs ( unsigned char x ) {unsigned char i, j;for( ; x>=1; x-- )for( i=200;i>0;i-- )for( j=250;j>0;j-- ) ;}/***********************************************************************/ 函数名称:Disp ( unsigned char *ptr )函数功能:按指定方式亮灯,时间间隔为50ms调用函数:DelayXs ( unsigned char x )/***********************************************************************/ void Disp ( unsigned char *ptr ){unsigned char k;for ( k=0;k<8;k++ ){P1 = *ptr;DelayXs(1);ptr++;}/***********************************************************************/ 函数名称:main ( void )函数功能:主函数,控制亮灯方式调用函数:Disp ( unsigned char *ptr ),DelayXs ( unsigned char x )/***********************************************************************/ void main ( void ){unsigned char *PTR;for( ; ; ){P1 = 0x00;DelayXs( 20 );PTR = &Disp1;Disp ( PTR );P1 = 0x00;DelayXs( 20 );PTR = &Disp2;Disp ( PTR );P1 = 0x00;DelayXs( 20 );PTR = &Disp3;Disp ( PTR );P1 = 0x00;DelayXs( 20 );PTR = &Disp4;Disp ( PTR );}}3.基于图3-2,编程实现下列功能:开机后,全部LED 不亮;按下K1键就点亮D0,弹起K1键就熄灭D0,按下K2键就点亮D0,D1 ,弹起K2键就熄灭D0,D1,按下K3键就点亮D0,D1 ,D3,弹起K3键就熄灭,按下K4键就点亮D0,D1 ,D3,D4弹起K3键就熄灭./***********************************************************************/ 程序功能:演示if-else-if语句的使用方法/***********************************************************************/ #include <reg51.h>sbit K1=P3^2; //定义4个按键对应的引脚sbit K2=P3^3;sbit K3=P3^4;sbit K4=P3^5;/***********************************************************************/ 函数名称:main ( )函数功能:主函数,控制亮灯方式/***********************************************************************/ void main (){while (1){P3|=0xc3;if ( K1==0 ) P1=0xfe;else if ( K2==0 ) P1=0xfc;else if ( K3==0 ) P1=0xf8;else if ( K4==0 ) P1=0xf0;else P1=0xff;}}4.基于图4.7,P1口连接8个红色发光二极管,其他不变。

要求:当主程序正在执行时,P1口连接8个红色发光二极管将闪烁,若按下K1,则进入中断状态,P1所连接的8个LED灯将变成单灯左移,而左移三圈后,恢复中断前的状态,程序将继续执行8灯闪烁功能。

/**********************************************************************/ 程序功能:用外部中断0控制发光二极管熄灭调用函数:Xint0( void ),DelayXs ( unsigned char x ) ,Disp( unsigned char *ptr ) /**********************************************************************/ #include <reg51.h>unsigned char *PTR;unsigned char Disp1[8] ={ 0x0fe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f };sbit K1 = P3^2; // 定义外部中断按键void Xint0( void ) ; // 外部中断0中断函数声明/**********************************************************************/ 程序名称:DelayXs ( unsigned char x )函数功能:x=20,延时1s;x=1,延时50ms/**********************************************************************/ void DelayXs ( unsigned char x ){unsigned char i, j;for( ; x>=1; x-- )for( i=200; i>0; i-- )for( j=250; j>0; j-- ) ;}/***********************************************************************/ 函数名称:Disp ( unsigned char *ptr )函数功能:按指定方式亮灯调用函数:DelayXs ( unsigned char x )/***********************************************************************/ void Disp( unsigned char *ptr ){unsigned char k;for( k=0; k<8; k++ ){P1 = *ptr;DelayXs(10);ptr++;}}/***********************************************************************/ 函数名称:main ( void )函数功能:主函数,控制亮灯方式调用函数:Disp ( unsigned char *ptr ),DelayXs ( unsigned char x )/***********************************************************************/ void main( void ){EA = 1;EX0 = 1;IT0 = 0;for( ; ; ){P1 = 0xff;DelayXs( 2);P1 = 0x00;DelayXs( 2);}}/**********************************************************************/函数名称:void Xint0 ( void ) interrupt 0 using 3函数功能:用外部中断0控制发光二极管发光调用函数:DelayXs ( unsigned char x ) ,Disp ( unsigned char *ptr )/**********************************************************************/ void Xint0 ( void ) interrupt 0 using 3 //外部中断0中断函数{unsigned char *PTR;P1 = 0xff;DelayXs( 2 );PTR = &Disp1 ;Disp( PTR );P1 = 0xff;DelayXs( 2 );PTR = &Disp1 ;Disp( PTR );P1 = 0xff;DelayXs( 2 );PTR = &Disp1 ;Disp( PTR );}5.基于图4.7,P1口连接8个红色发光二极管,其他不变。

相关文档
最新文档