(单片机0xff是什么意思程序)请问下面的(0x38,1)和(X,0)什么意思呢

《单片机C语言应用100例(第3版)(含光盘1张)单片机c语言程序设计教程 单片机程序开发编》【摘要 书评 试读】- 京东图书
单片机C语言应用100例(第3版)(含光盘1张)单片机c语言程序设计教程 单片机程序开发编
与行业相比
京 东 价 &
[定价 &¥]
PLUS会员专享价
您购买此商品可享受专属价
增值业务 &
重  量 &
搭配赠品 &
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
加载中,请稍候...
规格与包装
商品介绍加载中...
扫一扫,精彩好书免费看
出版社电子工业出版社
丛书名单片机C语言应用100例(第3版)
权利声明:京东上的所有商品信息、客户评价、商品咨询、网友讨论等内容,是京东重要的经营资源,未经许可,禁止非法转载使用。
注:本站商品信息均来自于合作方,其真实性、准确性和合法性由信息拥有者(合作方)负责。本站不提供任何保证,并不承担任何法律责任。
印刷版次不同,印刷时间和版次以实物为准。
价格说明:
京东价:京东价为商品的销售价,是您最终决定是否购买商品的依据。
划线价:商品展示的划横线价格为参考价,该价格可能是品牌专柜标价、商品吊牌价或由品牌供应商提供的正品零售价(如厂商指导价、建议零售价等)或该商品在京东平台上曾经展示过的销售价;由于地区、时间的差异性和市场行情波动,品牌专柜标价、商品吊牌价等可能会与您购物时展示的不一致,该价格仅供您参考。
折扣:如无特殊说明,折扣指销售商在原价、或划线价(如品牌专柜标价、商品吊牌价、厂商指导价、厂商建议零售价)等某一价格基础上计算出的优惠比例或优惠金额;如有疑问,您可在购买前联系销售商进行咨询。
异常问题:商品促销信息以商品详情页“促销”栏中的信息为准;商品的具体售价以订单结算页价格为准;如您发现活动商品售价或促销信息有异常,建议购买前先联系销售商咨询。
价 格: 到
   
iframe(src='//www.googletagmanager.com/ns.html?id=GTM-T947SH', height='0', width='0', style='display: visibility:')单片机开发(5)程序代码编写,调试与硬件之间
代码与单片机内部与其它器件之间,:代码用来改变对应的硬件
(1)代码信号针对控制的是
单片机内部的器件,还是外部其它设备?
1.是针对单片机内部的中断,计数器等(这些器件已经集成到单片机里)
(2)针对单片机内部的寄存器,内存地址等设定
reg51.h:是特殊功能寄存器的定义
定义常量:是接口P口等定义
定义变量:数组,i,j,k等变量是存储的定义
定义函数:是运算器的定义
特殊功能寄存器的定义&&
地址均为字节地址,51单片机用的地址一般都为字节地址
//--定义使用的IO口--//
#define GPIO_DIG&&
//段选& & &
&& 定义常量&
定义输出脚和接口
#define GPIO_PLACE
P1&&& //位选
//--定义全局变量--//
unsigned char code DIG_PLACE[8] = {
0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制&&
查表的方法控制
unsigned char code DIG_CODE[17] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码&&&
定义变量存储数组 & 定义LED的八个显示
unsigned char DisplayData[8];
//用来存放要显示的8位数的值
//--声明全局函数--//
void DigDisplay(); //动态显示函数
void main(void)
&&& unsigned
&&& for(i=0;
DisplayData[i] =
DIG_CODE[i];&&&
DigDisplay();
void DigDisplay()
&&& unsigned
&&& unsigned int
&&& for(i=0;
&&& GPIO_PLACE =
DIG_PLACE[i];&&&
&//发送位选
&&& GPIO_DIG =
DisplayData[i];&&&&
//发送段码
&//扫描间隔时间设定
while(j--);&&&
&&& GPIO_DIG =
0x00;//消隐
1.按工程—&.C文件—&.h文件 的枝干式发展
2.语言组成:
#include& &
/调用&&例#include
class X& &/定义类
1.定义常量:#define PI 3.14
2.定义字符串常量&&“hello world"
3.定义变量:数据类型&&标识符
a.整型int& &&
b.实型浮点数float& &例 float
&&&double&
&例double ff6.2545
c.字符型char&&例char c='g'或p,w;
定义数组 int a[3];
void指针:表示任何类型指针都可赋值给Void型指针变量&&相当与赋予地址
存储的各部分只有被定义后,才能被调用???
(3)运算符
1.赋值运算符“=”,将一个数据赋给一个变量 例int a=3;
2.算术运算符 例int
b;&&/先定义两个变量a,b
c=a+b&&/再相加运算,并赋值给C
d=(a+b)*c;&&/再进行(a+b)*c运算,并结果赋值给d,
3.逻辑运算符
4.关系运算符
5.位运算符
6.逗号运算符
(4)程序控制结构:即程序句与句之间的执行顺序情况
1.顺序结构
2.选择结构:if...else语句
(a&3),&&/判断a是否大于3,如果大于3,执行下面第一句,否则执行else下的语句
& &cout&&"a
is"&&end1;
& &cout&&a isnot
个人观点:运算符+程序控制结构= 即算法
(5)输入输出I/O的操作语句:
C是scanf,printf
C#是cin&&,cout&&
完整的一个结构是& &函数:某功能代码段
1.声明+调用+定义&&/对应存储
2.计算&&/对应运算器件
3.程序控制结构,是否选择循环结构& &/对应逻辑器件
例设P1口为输出口
1.#include&
#define /宏定义&
即定义常量,:定义常量的是接口和数组等
2.Void ()&& 定义函数 ,后面公式用,说明是要计算
3.unsigned int i& 定义变量(变量i的设置,变量i是后面计算的对象),后面计算
4.for (i=0;i&20000;i++)& 计算
或第二部分
2.Void main()&& 定义函数2 ,
& unsigned&char
定义变量index与LED
4.while(1)
for(index=0;index&8;index++)
LED&&=1;& 右移一位
两个函数是并列的,
编写一个程序,一般代码都怎么步骤,开始是#include,然后?
编写代码,单片机P口定义
例 静态数码管
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};&
/红色部分是8个数字脚&&&&&&&&&&&&&&&&&&&&&&&&&&&
void delay02s(void)&&&&
/修改02为更大数值,数码管的数字变化会变化&&
定义函数1 :循环
& unsigned char i,j,k;
&& for(i=20;i&0;i--)&&&&
/修改20为更大数值&&
for(j=20;j&0;j--)&&&&
/修改20为更大数值
&& for(k=20;k&0;k--);&&&
/修改20为更大数值&
3个值修改后例数值增大,数码管的数字变化会变慢
main(void)&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
:数字变化&&
&& while(1)
for(dispcount=0;dispcount&10;dispcount++)
& P0=table[dispcount];
& delay02s();&&
/修改02为更大数值,数码管的数字变化会变化
(1)数字变化
这两个可以互调,是并列的,
#include&&
调用51头文件(已经定义单片机里的各接口等常量)
#define GPIO_DIG P0& 定义常量void Delay10ms(unsigned int
c);&& 定义函数,开始变量计算unsigned char code
DIG_CODE[16]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
0x7F, 0x6F, 0x77, 0x7C,0x39, 0x5E, 0x79, 0x71 };&
定义变量void
main(void)&& 定义主函数1{
&unsigned char i =
0;&& 定义变量i&while(1)&&&
计算部分,:数字变化&{
&&GPIO_DIG =
~DIG_CODE[i];&&&&
&&if(i == 16)
&&Delay10ms(50);
void Delay10ms(unsigned int
c)&& 定义函数2{
&&& unsigned
char a,&& 定义变量a,b&&&
(;c&0;c--)&&&&计算:循环
(b=38;b&0;b--)&&&
(a=130;a&0;a--);
&&}&&&&&&&&&
(头文件里已经定义寄存器,以及初始化后的再设置)
#include头文件已经定义了单片机的各内部资源例P口,寄存器等&
(例汇编或头文件里寄存器部分已经设置好,—&在C里调用即可?)
定义常量的存储数据
#define uint unsigned int
#define uchar unsigned char
定义P口等其它常量
定义函数,
计算:定义计算器
1.针对中断的寄存器
2.针对计数器的寄存器
3.针对串行口的寄存器
(在头文件里都已经设置好地址)
每句一一对应单片机内部的各部分的设置?
字符与01—&01(信号)与逻辑器件
汇编指令是直接针对寄存器,累加器等单片机内部各器件,
不同寄存器所具有的不同地址指针分配能力
(寄存器是临时存储器?)
由指针访问内存?
变量是虚拟转换(是存储?)
1.硬件设置:硬件初始化(a.关看门狗:3秒内要关闭,否则要启动,b.设置单片机:要先设置寄存器,才能来访问单片机里的其它GPIO,串口)
2.调用C函数
1.各LED,中断等初始化设置(即设置最开始的位置),+&
2.再设置其它地址转换等,例mov TCON,A,即A—&TCON,把变量A送到TCON寄存器,TCON的地址是88H
(例汇编或头文件里寄存器部分已经设置好,在C里调用即可?)&&
例停止中间地址的寄存器器件等的运行,即可停止与其连接的其它输入输出设备,例LED,中断等
,或转换? 设置的是中间地址器件 —&&
3.再设置运算,运算上面设置到寄存器里的地址,让LED,中断等如何运行?
例sbit LED 0=P2^0;
& void main()
p2=0x00;(0x00为0,如果是0xff为1)
代码对应操作单片机内部各中断,寄存器等,
1.改变代码信号
2.还是改变器件,例调到寄存器里,
头文件里已经定义所有寄存器,调用即可!
#ifndef __REG52_H__
#define __REG52_H__
//特殊功能寄存器的定义&&
地址均为字节地址,51单片机用的地址一般都为字节地址
sfr P0&&& =
sfr P1&&& =
sfr P2&&& =
sfr P3&&& =
sfr PSW&& = 0xD0;
sfr ACC&& = 0xE0;
sfr SP&&& =
sfr DPL&& = 0x82;
sfr DPH&& = 0x83;
sfr PCON& = 0x87;
sfr TCON& = 0x88;
sfr TMOD& = 0x89;
sfr TL0&& = 0x8A;
sfr TL1&& = 0x8B;
sfr TH0&& = 0x8C;
sfr TH1&& = 0x8D;
sfr IE&&& =
sfr IP&&& =
sfr SCON& = 0x98;
sfr SBUF& = 0x99;
sfr T2CON& = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2&&& =
sfr TH2&&& =
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
//PSW各特殊位的定义& ^为异或
sbit CY&&& =
PSW^7;&&&&&&&&
//地址即为0xD7,只是一个位地址映射,不能理解为实际的地址&&&&&&&&&&
sbit AC&&& =
PSW^6;&&&&&&&
//在reg51.h中写的还是0xD7,在这里却PSW^7,也是在提醒我们不要搞混吧,具体
sbit F0&&& =
PSW^5;&&&&&&&&
//内部怎么映射的估计可以不管它了吧
sbit RS1&& = PSW^4;
sbit RS0&& = PSW^3;
sbit OV&&& =
= PSW^0; //8052 only
sbit TF1&& = TCON^7;
sbit TR1&& = TCON^6;
sbit TF0&& = TCON^5;
sbit TR0&& = TCON^4;
sbit IE1&& = TCON^3;
sbit IT1&& = TCON^2;
sbit IE0&& = TCON^1;
sbit IT0&& = TCON^0;
sbit EA&&& =
sbit ET2&& = IE^5; //8052
sbit ES&&& =
sbit ET1&& = IE^3;
sbit EX1&& = IE^2;
sbit ET0&& = IE^1;
sbit EX0&& = IE^0;
sbit PT2&& = IP^5;
sbit PS&&& =
sbit PT1&& = IP^3;
sbit PX1&& = IP^2;
sbit PT0&& = IP^1;
sbit PX0&& = IP^0;
sbit RD&&& =
sbit WR&&& =
sbit T1&&& =
sbit T0&&& =
sbit INT1& = P3^3;
sbit INT0& = P3^2;
sbit TXD&& = P3^1;
sbit RXD&& = P3^0;
sbit SM0&& = SCON^7;
sbit SM1&& = SCON^6;
sbit SM2&& = SCON^5;
sbit REN&& = SCON^4;
sbit TB8&& = SCON^3;
sbit RB8&& = SCON^2;
sbit TI&&& =
sbit RI&&& =
sbit T2EX& = P1^1; // 8052 only
sbit T2&&& =
P1^0; // 8052 only
&&&&&&&&&&&
sbit TF2&&& =
sbit EXF2&& = T2CON^6;
sbit RCLK&& = T2CON^5;
sbit TCLK&& = T2CON^4;
sbit EXEN2& = T2CON^3;
sbit TR2&&& =
sbit C_T2&& = T2CON^1;
sbit CP_RL2 = T2CON^0;
特殊功能寄存器的定义
//sbit&& 特殊位的定义
例sfr P0(是IO口,查手册地址是80H)=0X80& 地址声明一下,即可使用
例sfr TCON=0X88
由于寄存器太多,每个都声明太麻烦,所以预先全部都已经声明,并组成一个库(例reg51.h),调用即可!
如果51核没有声明到的,则我们自己单独来声明一下,
例#include&&u&reg51.h&
即设置各寄存器,如果寄存器已经设置好成库,调用即可!
另寄存器PO口有P1.0~P1.8有8个口,所以还要继续声明P0更小的口,使用sbit位来声明
例sbit IT0=TCON^0
& sbit LED=P0^0
有的在51核库有的位sbit已经设置好的!调用即可
例#include&&u&reg51.h&
sbit LED=P0^0
//由于在前面已经有LED=P0^0的声明,所以这里的LED即代表前面的P0^0}
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)单片机试卷及答案(1)
&&&&2013a 卷 一、 填空题(每空 1 分,共 20 分)1、+1000001 的反码是 。十进制数-4 的 8 位二进制补码是 。指令的编码规则称为 。 ,一般2、计算机所能执行的指令的集合称为 由 和操作数两部分组成。3、cpu 一次可以处理的二进制数的位数称为 cpu 的 4、当 ea 为。&&&&电平时,cpu 总是从外部存储器中去指令。 个,外部中断源有 个。 指令来访5、89c52 单片机有 6 个中断源, 其中内部中断源有 6、汇编指令中,对程序存储器的访问用 问。 7、c51 的数据类型 sfr 占 个字节,c51 中整型变量占指令来访问,外部 ram 用个字节。 ,目的操作数的寻址方式8 、指令 mov 20h , #20h 中,源操作数的寻址方式是 是 。9、定时器 t1 方式 2 的 8 位常数重装初值存放于寄存器 寄存器 用于存放计数初值的低 5 位。 。中。定时器 t0 方式 0,10、多机通信中,主机的 sm2=11、eprom 存储器 27c256 内部容量是 32k 字节,若不考虑片选信号,则对其内部全部存储单 元进行寻址共需 根地址线。 中。12、波特率倍增位位于特殊功能寄存器 13、8155a 内部具有 1 个位减法定时器/计数器。二、 单项选择题(共 20 题,每题 1 分,共 20 分)1、单片机的应用程序一般存放于( a、ram b、rom c、寄存器 )中 d、cpu )引脚。2、定时器 0 工作于计数方式,外加计数脉冲信号应接到( a、p3.2 b、p3.3 c、p3.4 d、p3.53、mcs51 单片机在同一优先级的中断源同时申请中断时,cpu 首先响应( a、外部中断 0 c、定时器 01) 。b、外部中断 1 d、定时器 1 4、adc0809 是( a、4 通道 8 位 c、4 通道 12 位)ad 的转换器件 b、8 通道 8 位 d、8 通道 12 位 )5、执行中断返回指令后,从堆栈弹出地址送给( a、a c、pc b、ri d、dptr ) d、dptr6、串行通信中,发送和接收寄存器是( a、tmod b、sbuf c、scon7、 要使 mcs-51 能响应外部中断 1 和定时器 t0 中断, 则中断允许寄存器 ie 的内容应该是 ( a、98h b、86h c、22h d、a2h ))8、要将 p1 口高 4 位清 0,低 4 位不变,应使用指令( a、orl p1,#0fh c、anl p1,#f0h b、orl p1,#f0h d、anl p1,#0fh9、当选中第 1 工作寄存器区时,工作寄存器 r1 的地址是 a、00h b、01h c、08h d、09h ) d、tcon。10、控制串行口工作方式的寄存器是( a、tmod b、pcon c、scon11、mcs-51 单片机的晶振频率为 12mhz,则 mul ab 指令的时间为( a、1 b、2 c、4 d、8 ) 。 d、002bh ) 。)μ s。12、定时器 t2 的中断服务程序入口地址为( a、000bh b、0000h c、001bh13、mcs51 单片机复位后,p1 口锁存器的值为( a、00h b、0ffh c、7fh ) d、80h14、pop psw 指令是(a、将 psw 的值压入堆栈顶部 c、将 psw 的值压入堆栈底部b、堆栈顶部一个单元内容弹入 psw d、堆栈底部一个单元内容弹入 psw ) d、!= )15、下列运算符不是关系运算符的是( a、& b、& c、=16、设 a=0x7f,b=a&&2,则 b 的值为(2 a、7fhb、0f7hc、0cfhd、0fch ) d、80h )17、单片机复位后,sp 的内容是( a、00h b、07h c、7fh18、函数类型说明符如果用 void 表示,则函数执行结果返回值的数据类型是( a、整型 b、字符型 c、无返回值 d、指针型 。 d、16 根 ) d、ri19、mcs-51 单片机,数据线的条数是 a、1 根 b、4 根 c、8 根20、定时器 t0 计数溢出后,置 1( a、tf1 b、tf0 c、ti三、简答题(共 4 题,每题 5 分,共 20 分)1、51 单片机工作寄存器有几组如何判断 cpu 当前使用哪一组工作寄存器 2、 在 ram 的位寻址区定义无符号字符变量 flag, 并将 flag 的第 0、 2 位分别定义为 k_d、 k_p。 3、单片机中各中断源对应的中断服务程序的入口地址能否任意设定cpu 响应定时器中断 t0 时,能否自动清除中断标志 tf0 4、串行口的发送缓冲器和接收缓冲器使用同一个特殊功能寄存器名 sbuf,并具有相同的字 节地址 99h,他们是同一个寄存器吗串行口的读、写 sbuf 指令分别操作的是哪个缓冲器四、程序分析题(每空 2 分,共 10 分)已知单片机晶振频率为 12mhz,要求让定时器 t1 工作于方式 1 来实现 60ms 定时,同时让 定时器 t0,工作于方式 2,完成 200μ s 定时,试完成初始化程序。 (注意:0x 表示横线上所填内容要求以十六进制表示,其它数制表示不得分。 )void init_t0_1() { th0=0x ① tl0=0x ② th1=0x ③ tl1=0x ④ tmod=0x ⑤ tr0=1; tr1=1 }3; ; ; ; ; 五、编程题(10 分)完成下列中断程序,实现当开关闭合后,在外部中断服务程序中实现蜂鸣器的鸣响,当 开关打开后,蜂鸣器静止。+5v 89c52p3.2/(in t0)k +5vp3.6t蜂鸣器#include &reg52.h& #define uchar unsigned char #define uint unsigned int sbit beep= ① ; void init1() { ea= ② ; ex0= ③ ; it0=0; } void int0() interrupt ④ { beep= ⑤ ; for(i=300;i&0;i--); beep=1; for (i=300;i&0;i--); } main() { init1(); for(;;); }六、综合应用(20 分)下图是由 89c52 单片机、74ls373 锁存器、6116ram 组成的单片机系统, (1)请补全硬件接线(8 分) 。 (2)该芯片的地址扩展方法采用的是什么方法(2 分)设 p2 口未用到的引脚取 1,请写出4 该系统外扩 ram 存储空间的范围。 (4 分) (3)74ls373 锁存器的作用是什么(3 分) (4)该单片机系统扩展的是程序存储器还是数据存储器(3 分)89c52rd wr6116ramoe we ce a10 a9 a8p2.7 p2.2 p2.1 p2.0 p0.7 p0.6 p0.5 p0.4 p0.3 p0.2 p0.1 p0.0 74ls373 q7 d7 q6 d6 q5 d5 q4 d4 q3 d3 q2 d2 q1 d1 q0 d0 g oea7 a6 a5 a4 a3 a2 a1 a0 o7 o6 o5 o4 o3 o2 o1 o0ale答案 一、填空题(每空 1 分,共 20 分) 1、h) (fch) 2、指令系统 指令格式 操作码 3、字长 4、低 5、4 2 6、movc movx 7、1 2 8、立即数寻址 直接寻址 9、th1 tl0 10、0 11、15 12、pcon 13、14 二、单项选择题(共 20 题,每题 1 分,共 20 分) 1~5、bcabc 6~10、bbddc 11~15、cdbbc 16~20、dbccb 三、简答题(共 4 题,每题 5 分,共 20 分) 1、51 单片机工作寄存器共有 4 组(2 分) 。cpu 当前使用的工作寄存器组是由 psw 寄存器的 第三位(rs1)和第四位(rs0)的值决定的(3 分) 。 2、unsi(2 分) sbit k_d=flag^0; sbit k_p=flag^2;(后两步只要有一个正确就给 2 分,全对给 3 分) 3、各中断源的入口地址已经在中断地址区中被定义了,不能任意设定。 (3 分)可以(2 分) 。 4、不是同一个寄存器(1 分) ,读 sbuf 操作的是接收缓冲器(2 分) ,写 sbuf 操作的是发送 缓冲器(2 分) 。 四、程序分析题(每空 2 分,共 20 分)5 ①0x38(2 分);0x38(2 分);③0x15(2 分) ;④0xa0(2 分);⑤ 0x12 (2 分); 五、编程题(10 分) ①p3.^6 (2 分) ; ②1 (2 分);③1 (2 分);④0 (2 分);⑤ 0 (2 分); 六题、综合应用(20 分) (1)89c52rd wr p2.7 p2.2 p2.1 p2.06116ramoe we ce a10 a9 a8p0.7 p0.6 p0.5 p0.4 p0.3 p0.2 p0.1 p0.074ls373 q7 d7 q6 d6 q5 d5 q4 d4 q3 d3 q2 d2 q1 d1 q0 d0 g oea7 a6 a5 a4 a3 a2 a1 a0 o7 o6 o5 o4 o3 o2 o1 o0ale(8 分) ;(2)线选法(2 分) ,6116 的地址范围是 7800h~7fffh(4 分) 。 (3)锁存地址总线的低 8 位,保证 p0 口可以分时复用为地址总线的低 8 位和数据总线(3 分) (4)数据存储器(3 分)2013 b 卷 一、 填空题(每空 1 分,共 20 分)1、微处理器简称 ,主要包括 alu、控制器 cu 和寄存器组。 到 。2、对于补码表示的有符号 8 位二进制数,其表示数的范围为 3、指令 mov a,@r0 第 2 操作数的寻址方式为 4、at89s51 单片机有 条引脚,其中 。为片外程序存储器的读选通信号。 到 ffh 的地址范围,对特殊功能寄5、mcs-51 单片机的特殊功能寄存器区位于片内从 存器的访问只能采用 寻址方式。6、mcs-51 单片机的 rst 为复位引脚,为 值为6电平复位方式,系统复位后程序计数器 pc 的。 7、采用石英晶体作为晶振时,其振荡电容的取值一般为 8、c51 语言中, “int icounts; ”定义的变量 icounts 在内存中占 9、mcs-51 单片机的并行口由 1 个 出口使用时,需要外接 电阻。。 个字节。和 1 个输出驱动器构成。p0 口作为普通输10 、 步 进 电 机 工 作 在 四 相 八 拍 方 式 时 , 正 转 一 个 齿 距 角 的 通 电 顺 序 依 次 为 a-ab-b—bc-c-cd-d-da,则反转的通电顺序为 a-da-d-cd-c-bc脉冲的 可以调节步进电机的转速。 通信方式。 ,通过改变步进11、根据传输方式的不同,串行通信的种类可以分为同步通信方式和 12、当 t0 工作在方式 3 时,将 t0 分为两个独立的 受到了限制,只能作为不需要中断功能的位定时/计数器,此时 t1 的功能 发生器使用。二、 单项选择题(共 20 题,每题 1 分,共 20 分)1、 以下定义变量的 c51 语句中,错误的是( a、unsigned char chdata = 0; c、sfr unsigned char chdata = 0; )b、 static unsigned char chdata = 0; d、 static volatile char chdata = 0;2、 small 存储模式下,缺省存储器类型说明的变量均放在( )区 a、idata b、 code c、 d、 xdata3、 mcs-51 单片机入栈指令“push acc”执行后,堆栈指针 sp( ) a、减小; b、 不变 c、增加 d、 变化不确定4、 mcs-51 单片机的电源供电电压一般为( ) a、5v; b、 12v c、24v d、 22v )5、 标准 mcs-51 单片机的时钟频率 fosc 为 6mhz,则 1 个机器周期时间长度为( a、1 b、 2ms c、1μ s d、 2μ s )6、汇编语言指令“here:sjmp here”,说法错误的是( a、是 1 条循环转移指令 c、是 1 条无条件转移指令b、其操作数寻址方式为相对寻址 d、是一条短转移指令 ) d、pop7、访问片外数据存储器使用以下那条汇编语言指令( a、 b、 movx c、movc8、定时器工作方式 1 为( a、4;7)位定时/计数方式。 c、13 d、16b、 8 9、共阴极 led 八段数码管“1”的字型码为( a、0x3f; b、 0x06 c、0xc0 )) d、0xf910、led 发光二极管的导通压降一般为( a、0.7v; b、 1.2-1.8vc、3.3v )d、5v11、p2 口除了可以做普通 i/o 口外,还可以作为( a、数据总线 c、地址总线低 8 位 12、定时器 t1 的中断向量号为( a、0; b、 1 ) c、2b、地址总线 d、地址总线高 8 位d、3 )13、单片机 cpu 不能自动清除中断标志的中断为( a、串口发送中断 c、定时器 t1 溢出中断 14、异步串行通信中,波特率是指( a、每秒传送的 bit 数 c、每秒传送的 word 数 15、关于器件 74ls164,说法错误的是( a、是一个串入并出器件 c、常用于扩展输出口 )b、定时器 t0 溢出中断 d、下降沿触发的外部中断 0b、每秒传送的 byte 数 d、以上均不对 ) b、可以级联使用 d、两个串行数据输入端不能连接在一起16、对于矩阵键盘可以采用( )设计软件,从而获取按键的键值。 a、直接输入输出法 c、时延法 b、列扫描法 d、去抖动法 )17、关于串行 ad 器件 tlc549,说法错误的是( a、片选信号有效时启动转换 c、转换数据时先移最低位 18、关于 8155 说法错误的是( a、内置 1 个定时器 c、可扩展出 24 个 i/o 口 )b、转换时间&17μ s d、移位时时钟信号的下降沿用于时钟同步b、内置 256 字节 ram d、高电平复位19、晶振频率为 11.0592mhz,采用 t1 作为波特率发生器,波特率不倍增,则 t1 的计数初值 为(8) a、0b、 0xfcc、0xfdd、0xfe20、在 led 调光实验中,通过改变 pwm 信号的( a、周期; b、 频率)改变 led 发光二极管的亮度。 c、幅值 d、占空比三、 简答题(共 4 题,每题 5 分,共 20 分)1、 说明图中阻容复位电路的工作原理(上电复位) 。 2、 晶振频率 fosc 为 12mhz, 则定时器 t0 工作在方式 2 时, 最大的定时时间为多少简要说明计算过程。 3、 写出 c51 程序片段, 访问片外数据存储器的 2000h 地址 的内存单元,将其置为 ffh。 4、 采用动态点亮方式驱动 8 位 led 数码管时, 要求刷新频 率为 50hz,则每个扫描周期中,1 位 led 数码管的显示 时间为多长说明计算过程。四、程序分析题(共 2 题,每题 10 分,共 20 分)1、用 p1 口驱动 8 个 led 数码管,实现流水灯的效果(低电平点亮) ,补全代码。 #include #include &intrins.h& #define uchar void delayms(uint x) { while(x--) { } void main() { p1 = while(1) { =_crol_(p1,1);; delayms(150); } } ; for(i=120;i&0;i--); }9 2、补全以下串口初始化程序,晶振频率为 11.0592mhz,将串口配置为 8 位异步方式,波特 率 9600,允许接收,开串口中断。void initserial() { tmod = th1=0 tl1= scon= et0=1; =1; ea=1; tr1= ;} ; ; ;五、综合应用(共 20 分)1、 图为 74ls164 驱动 8 路 led 发光二极管的电路,回答以下问题: (1) 图中电阻的作用是什么其阻值大概为多大(3 分) (2) 简要说明 74ls164 的移位时序。 (4 分) (3) 说明 dina、dinb、clr 引脚的作用。 (3 分) 2、编写完整的程序,使得 8 路 led 光二极管的状态为“亮灭亮灭亮灭亮灭” 。 (10 分) 答案10 一、填空题(每空 1 分,共 20 分) 1、cpu,运算器(或算术逻辑单元) 2、-128,127 3、寄存器间接寻址 4、40,psen 5、80h,直接 6、高,-33pf(在范围内都算对) 8、两 9、锁存器,上拉 10、b-ab,频率 11、异步 12、8,波特率 二、单项选择题(共 20 题,每题 1 分,共 20 分) 1~5、cacad 6~10、abdbb 10~15、ddaad 16~20 bcccd 三、简答题(共 5 题,每题 5 分,共 25 分) 1、系统上电瞬间,电容 c 上的电压很小,rst 引脚为高电平(2 分) ;在电容充电过程中,rst 引脚电位逐渐下降,当 rst 引脚电位小于某一特定值后,cpu 即脱离复位状态(2 分) ;rst 引脚高电平维持的时间&24 机器周期即可复位(1 分) 。 2、fosc=12mhz,定时器计数脉冲频率为 12/12=1mhz,计数脉冲周期为 1us(2 分);t0 方式 2 为 8 位自动重装方式,其最大计时时间为 28*1us=256us(3 分) 。 3、 参考答案之一 #include &absacc.h&(1 分) #define p8155 xbyte[0x2000] //(2 分) p8155 = 0//(2 分) 参考答案之二 #include &absacc.h&(1 分) xbyte[0x2000] = 0xff;//(4 分) 参考答案之三 *(( unsigned char xdata * )0x2000)=0//(5 分) 4、周期 t=1/50=20ms(2 分),每位 led 数码管显示时间为 20/8=2.5ms(3 分) 。 四、程序分析题(共 2 题,每题 10 分,共 20 分) 1、&reg52.h& ,(2 分) unsigned char, (2 分) 0xfe, (3 分) p1 (3 分) 2、0x20(2 分) 0xfd(2 分) 0x50(2 分) es (2 分) 1 (2 分) 五、综合应用(20 分) 1、 (1)图中电阻为限流电阻,限制流过 led 发光二极管的电流约为 10ma,其阻值大概为 20011 欧姆。 (200-1k 都算对) 。 (3 分) (2)准备好 dina 和 dinb 相与 1 位数据,当 clk 引脚产生上升沿的时候该位数据由 q0 到 q7 依次移入。 (4 分) (3)dina 和 dinb 为逻辑与的关系,为串行数据输入端;clr 为清零信号,低电平有效。 (3 分) 2、 #include&reg51.h& #define uchar unsigned char sbit scl = p1^0; sbit sda = p1^1; sbit dinb = p1^2; sbit clr = p1^3; //以上 3 分 void so164(uchar chdata) { uchar i,x; scl = 0; x= for(i=0;i&8;i++) { sda = 0; if((x&0x01 == 1)) sda =1; scl =1; x = x&&1; scl = 0; } } 以上移位函数 4 分 void main() { uchar x =0x55; dinb =1; clr=1; so164(x); while(1); } //以上 main 函数 3 分2012a 卷 一、 填空题(每空 1 分,共 20 分)1、+1000110b 的反码是12;-0110011b 的补码是。 2、mcs-51 内部 ram 的 3、mcs-51 单片机三总线包含 4、mcs-51 单片机复位后,pc 的值是 5、一个机器周期等于 状态周期。到 、 。是位寻址区。 和 。个状态周期,振荡脉冲 2 分频后产生的时钟信号的周期定义为6 、 mcs-51 单 片 机 外 部 程 序 存 储 器 的 最 大 可 扩 展 容 量 是 是 。,其地址范围7、若变量定义在 pdata 区,则间接寻址时采用的寄存器是 8、若有 c51 语句 unsigned char temp,那么 temp 占用 个字节。(ri/dptr)。9、晶振频率是 12mhz,定时器 0 在方式 2 下,硬件最长能定时的时间是 10、mcs-51 的外部中断有触发方式,一种是低电平触发,另一种是 11、在串口实现多机通讯当中,一个主机最多可以带 12、mcs-51 单片机外接 12mhz 晶振,nop 指令执行的时间是 13、定时器 0 当 gate 位设置为 0 时,tr0= 14、rom 芯片 2764 的容量是 开始定时。 。 个从机。 us。 。。,若其首地址为 0000h,则其末地址二、 单项选择题(共 15 题,每题 1 分,共 15 分)1、变量定义为 unsigned char bdata flag,下列说法错误的是( a、数据长度为 8 位 c、允许位操作 b、不允许字节操作 d、变量在内部 ram 的 20h~2fh ) 。 )2、mcs-51 系列单片机外扩存储器芯片时,4 个 i/o 中作为数据总线的是( a、p0 口和 p2 口 b、p0 口 c、p2 和 p3 口 ) 。 d、ale ) d、p23、访问外部数据存储器时,不起作用的信号是( a、 rd b、 wr c、 psen4. 如果当前工作寄存器区为 0 区,则工作寄存器 r0 的地址为: ( a、00h b、07h c、08h ) d、0fh5、变量的存储器类型是指(a、变量在内存中的排列顺序 c、变量占用的物理空间大小13b、变量在程序执行过程中的作用范围 d、变量所处的存储区域 6、要使无符号字符型变量 a 中的数高 4 位为 0,低 4 位不变,则执行以下哪条语句: ( a、a = a & 0x0f; b、a = a & 0xf0; c、a = a | 0x0f; d、a = a | 0xf0; ))7、若定义: unsigned char x[5] ,* 则正确的赋值表达式是( a:pb=x; b:pb=x++; c:*pb=&x; d:*pb=*x[0]; ) d、bdata8、访问 64k 程序存储器区域的变量应声明的关键字为( a、xdata b、idata c、code9.中断开启时,除了将各自的中断允许控制位置“1”外,仍然需要将( a、et0 b、ea c、es ) c、ret d、reti )根地址线。 d、16 d、st2)置“1” 。10、中断服务子程序的返回指令为: ( a、pop psw b、pop acc11、在片外扩展一片 2bitrom) ,需要( a、8 b、13 c、14 )12、 以下能正确定义一维数组的选项是( a、int a[5]={0,1,2,3,4,5}; c、char a={‘a’,‘b’,‘c’};b、char a[]={0,1,2,3,4,5}; d、int a[5]=“0123”; )13、使用宏来访问绝对地址时,一般需包含的库文件是( a、reg51.h b、absacc.h c、intrins.hd、startup.h14、扩展存储器时要加锁存器 74ls373,其作用是( a、锁存寻址单元的低八位地址 c、锁存寻址单元的高八位地址 15、发光二极管的工作电流一般为( a、10μ a b、40μ a) 。b、锁存寻址单元的数据 d、锁存相关的控制和选择信号 ) c、10ma d、40ma三、简答题(共 5 题,每题 5 分,共 25 分)1、简述时钟周期、机器周期、指令周期的概念及相互关系。 2、mcs-51 外扩的程序存储器和数据存储器,共用 16 位地址线和 8 位数据线,可以有相同的 地址空间,为什么两个存储空间不会发生冲突 3、写出 c51 的中断程序入口地址。 4、计算右图中使 led 正常工作的限流电阻 r 的阻值,写出计算过程。14 5、定义如下变量 (1) 、内部 ram 直接寻址区无符号字符变量 i; (2) 、外部 64k ram 的有符号整形变量 x;四、程序分析题(共 10 分)1、程序改错(6 分) 定义外部中断 0 的中断函数,如下所示,指出其中的三处错误。 unsigned int int0(unsigned char para) interrupt 1 { cnt++; if(cnt&10) { cnt=0; flag=1; } }2、以下指令执行后,psw 为: (共 4 空,每空 1 分,共 4 分) mov a, #b add a, # b cy ac ov p五、编程题(10 分)mcs-51 单片机外接晶振为 12mhz, t0 工作于方式 1, 产生 50ms 定时中断。 补充下列函数, 使 p1.0 产生 1 秒的方波。15 六、综合应用(20 分) p0 ad0 | ad7 ale wr rd io/m pb0 pb1 pb2 pb3 pb4 pb5 pb6 pb7 欧*8 上拉5v 5vale wr rd p2.08.vss reset pa5 pa4 pa3 pa2 pa1 pa0 ce 5v com5 com4 com3 com2 com1 com0 vccled数码 管*6如图为动态显示的 6 位 led 显示接口电路图,回答如下问题。 1、简述动态显示和静态显示的优缺点。 (2 分) 2、图中,led 是共阴极还是共阳极接法(2 分) 3、根据图示,完成下列绝对地址变量的定义。 #define com_8155 pbyte[0x00] #define pa_8155 pbyte[ #define pa_8155 pbyte[ ] ] (2 分) (2 分)4、8155 命令寄存器如下图所示,完成 8155 初始化函数。16 init_8155() { p2_0= com_8155= ; (2 分) ; (2 分)}5、完成动态显示子函数 uchar code seg_tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x 71,0x40,0x73,0x1c,0}; uchar code bit_tab[]={1,2,4,8, sbit p2_0=p2^0 ; uchar idr_buf[6]={1,2,3,4,5,6} ; led_disp() { uchar a,i; for(i=0;i&6;i++) { a=dir_buf[i]; p2_0= pb_8155= pa_8155= ; (2 分) ; ; (2 分) (2 分) } } 答案 一、填空题(每空 1 分,共 20 分) 1、b,b17,0x20}; (2 分)for(x=500;x&0;x--);2、20h,2fh 3、地址总线、数据总线、控制总线 4、 6、64k,0000h~ffffh 7、ri 8、1 9、256μ s 10、下降沿触发 11、256 12、1 13、1 14、8k,1fffh 二、单项选择题(共 15 题,每题 1 分,共 15 分) 1~5、bbcad 6~10、aacbd 11~15、cbbac 三、简答题(共 5 题,每题 5 分,共 25 分) 1、时钟周期是输入微处理器的时钟信号的周期。机器周期是机器完成一个基本动作的时间。 在 mcs-51 系列单片机中,一个机器周期由 12 个时钟周期组成。指令周期是指执行一条指令 所需的时间,由一个到数个机器周期组成。 2、因为 51 单片机访问片外程序存储器和数据存储器是通过不同的控制信号进行的,访问片 外程序存储器使用 psen 信号,访问片外数据存储器使用 wr 和 rd 信号,因此它们有相同的地 址空间也不会冲突。 3、外部中断 0 0003h; 定时中断 0 000bh;外部中断 1 0013h; 定时中断 1 000bh;串行口中断 0023h 4、r=(vcc-vf-vces)/if vcc=5v,vf=1.8v(1.2~2.5v) ,vces=0.2v(0.1~0.2v),if=15ma(10~20ma) r=200ω 5、 (1) (2) 四、程序分析题(共 10 分) 1、程序改错(6 分) unsigned int int0(unsigned char para) interrupt 1 去掉 unsigned int (2 分) 去掉 unsigned char para (2 分) 将 interrupt 1 改成 interrupt 0 (2 分) 2、每空 1 分 cy ac ov p 1 1 0 0 五、编程题(10 分) #include &reg52.h& #define uchar unsigned char #define uint unsigned int sbit p1_0=p1^0; uchar t0cnt0; (以上 2 分) void init_t0_1() { th0=0x3c; tl0=0xb0; tmod=1; tr0=1; ie=0x82;18 t0cnt0=0 }(3 分) void main() { init_t0_1(); for(;;); }(2 分) void timer0(void) interrupt 1 { tl0=0xb0; th0=0x3c; t0cnt0 -- ; if( t0cnt0==0) { t0cnt0=10; p1_0=~p1_0;} }(3 分) 六题、综合应用(20 分) 1、动态点亮方式占用硬件资源少,但软件相对复杂。静态点亮方式占用硬件资源多,但软件 相对简单。 (2 分) 2、共阴极。 (2 分) 3、0x01(2 分)、0x02(2 分) 4、p2_0=1; (2 分) com_8155=xxxx0011b; (2 分) 5、uchar code bit_tab[]={1,2,4,8, 0x10 ,0x20}; (2 分) p2_0= 1 ; (2 分) pb_8155= seg_tab[a] ; (2 分) pa_8155= bit_tab[i] ; (2 分)2012b 卷一、 填空题(每空 1 分,共 20 分)1、-0101111b 的反码是 2、在除法运算中,被除数放在 器 中,而余数放在 3、cpu 是单片机的核心组件,它包括 4、外部中断 0 服务程序入口地址为 。 5、在访问外部存储器时,p0 口作为 口。 6、串口工作在方式 3 时,发送和接收到的第 9 位数分别放在 和 中。 和 个组,每组 。 个字节。 。 7、数码管显示方式可分为 8、8051 单片机的工作寄存器分成19,补码是 中,除数放在 寄存器中。 和 。。 中。运算后,商放在累加,串行口中断服务程序入口地址是 ,高 8 位地址使用 的9、若变量定义在 xdata 区,则间接寻址时采用的寄存器是 二、 单项选择题(共 15 题,每题 1 分,共 15 分)1、c51 的数据类型有( c、long、data 和 bit a、256μ s a、t0 b、t1 ) b、char 、int 和 code ) d、65536μ s 。 d、auto、float 和 short c、131072μ s ) a、unsigned char、unsigned int 和指针 2、晶振频率为 12mhz,则 t0 最大定时时间为: ( b、512μ s c、串行口 ) 。 b、大于 24 时钟周期的高电平 d、大于 24 时钟周期的低电平 ) 。 c、转移地址 b、统一编址 d、动态变址 )地址线。 ) c.13 根 b. 中断优先级寄存器 ip d. 定时/计数器控制寄存器 tcon )。 d. r4 c. r3 )。 b. cpu 包含的地址线的条数; d. 控制线的条数 d.16 根 d、地址偏移量 ) 。 3、 cpu 不能自动清除中断标志位的中断为: ( 4、mcs-51 单片机的复位信号为( a、大于 12 时钟周期的高电平 c、大于 12 时钟周期的低电平 a、操作数 a、分别独立编址 c、分别独立编址或统一编址 a.8 根 b.11 根 b、操作数地址d、下降沿触发方式的 int05、mcs-51 单片机在寄存器间接寻址方式中,寄存器中存放的是( 6、mcs-51 单片机扩展外部程序存储器和数据存储器(7、在单片机片外扩展一片 6264(8k)数据存储器芯片,该芯片有( 8.下列 mcs51 单片机专用寄存器中,哪个寄存器不可按位寻址( a.中断容许寄存器 ie c.定时/计数器方式寄存器 tmod a. r1 a. 引脚数; c. cpu 包含的数据线的条数; ( ) a. 09h 单元; a. 高电平; a、mov b. 08h 单元; b. 上升沿; ) c、movc ) ) 方式。 d、test b、movx c. 07h 单元; )有效。 c. 下降沿; b. r29、下列工作寄存器中,哪个寄存器可以用于寄存器间接寻址方式中( 10、mcs-51 单片机字长的含义是 (11、mcs51 复位后,sp 的内容为 07h,第一个压入堆栈的数据将位于内部 ram 的哪个单元 d. 06h 单元 d. 低电平12、单片机外部中断的电平触发方式仅限于( 13、以下哪条指令可以读取程序存储器: ( 14、串行口控制寄存器 scon 中 ren 为: (a、多机通信控制位 b、接收允许位 c、中断标志位 d、第 9 数据位 15.当需要扩展的按键比较多的时候,一般采用( a、直接编码输入20b、延时输入 c、编码输入d、矩阵输入三、简答题(共 5 题,每题 5 分,共 25 分)1、 计算机系统中, 一般有哪三类总线并请说出三类总线各自的特征 (包括传输的信息类型、 单向还是双向传输) 。 2、单片机系统中的定时和计数功能有何区别分别适用于什么场合 3、 如果将 mcs-51 的 p1 口引脚按矩阵编码方式组成 m*n 个检测点, 那么在什么情况线检测 点数目最多,这是 m 和 n 分别是多少 4、在 51 系列单片机执行中断服务程序时,为什么一般都要在中断入口地址开始的地方放一 条跳转指令 5、8x5x 系列 cpu 复位后,使用了哪一工作寄存器组其中 r1 对应的物理存储单元地址是什 么四、程序分析题(每空 1 分,共 10 分)mcs-51 单片机 p1 口作为输出口,八位分别连线八只发光二极管(当引脚输出高电平时对 应的发光二级管亮) ;编程实现单灯循环点亮,每隔 2 秒钟,亮的发光二极管(只有 1 个亮) 移位一次。晶振为 12mhz,利用内部定时计数器 t0 实现延时,为了实现该功能,请将下面的 程序补充完整。#include “reg51.h” unsigned char t1s = 0; unsigned char led = 1; void timer0 ( ) interrupt { th0 = tl0 = t1s++; if(t1s = = 100) { led &&= 1; if(led = = led t1s = 0; } } void main( ) { tmod = tl021① ; ;② ③④ = ⑤) ;⑥ ⑦ ;;= th0 = ie tr0 { } = 0x82; =⑧ ⑨ ⑩ ;;while(1) p1 = ;}五、编程题(10 分)adc0809 与单片机的接口如下图所示, ale 信号经 d 触发器 2 分频后得到约 500khz 信号作为 0809 的时钟信号,8 路 a/d 转换器的通路地址分别为 78h~7fh,写出读八路 a/d 的函数。d ale wr ck clk ale a7 start oe rd a0 a1 a2 d0~d7 2-8 eoc a b c 2-1 in7 in0 模拟 输入 vcc ref+ refgnd +5v q六、综合应用(共 20 分) 现有由 89c52 单片机、74ls373 锁存器、74ls138 译码器 、2764 eprom 和 6264 ram 芯片共同组成的单片微型计算机系统如图所示:1) 、分别写出该系统外扩的程序存储空间和 数据存储空间的范围(6 分) ;2) 、说明图中除 cpu 外的四个芯片的功能(4 分) ;3) 、完成 下面程序, 实现将外部 ram c100h~c10f 单元内容传送到内部 ram 的 40h~4fh 单元中 (每 空 2 分,共 10 分) mov r7, mov dptr, mov r0, loop: ④ ; mov @r0,a inc r0; ⑤22① ② ③; ; ;; 答案一、填空题(每空 1 分,共 20 分) 1. (d0h) ,(d1h)2. a ,b ,a ,b 3. 运算器 , 控制器 4. 0003h , 0023h 5. 低 8 位地址/数据总线,p2 6. scon ,tb8 ,rb8 7. 动态模式,静态模式 8. 4,8 9. dptr二、单项选择题(共 15 题,每题 1 分,共 15 分)1. a 11. b 2.d 12. d 3.c 13. c 4. b 14. b 5.b 15. d 6. a 7. c 8. c 9. a 10. c三、简答题(共 5 题,每题 5 分,共 25 分)1.三类总线为:地址总线、数据总线、控制总线(2 分) 。地址总线为单向,用于传送地址 信息。数据总线为双向,用于数据的传送。控制总线,一般为单向,用于传送控制信息。 (323 分) 2. 定时和计数的区别在于时钟来源不同,当使用内部时钟时,时钟是确定的,此时,定时器 工作于定时方式;当使用外部时钟时,时钟是不确定的,此时,定时器工作于计数方式。 (2 分)定时主要用来产生定时中断,实现定时采样输入信号,定时扫描键盘等;计数主要用来 对外部输入时钟累加统计或测量外部输入时钟的参数等。 (3 分) 3. 当行线 m=列线 n=4 时,共有 4*4=16 个检测点,此时检测点最多。 (5 分) 4. 因为 51 系列单片机的两个相邻中断源中断服务程序入口地址相距只有 8 个单元,一般的 中断服务程序是容纳不下的,因此一般都要在相应的中断服务程序入口地址中放一条跳转指 令。 (5 分) 5.使用 0 组工作寄存器(2 分) ;r1 对应的物理存储单元地址是 01h(3 分) 。四、程序分析题(每空 1 分,共 10 分)void timer0 ( ) interrupt { th0 = 0xb1 tl0 = 0xe0 t1s++; if(t1s = = 100) { led &&= 1; if(led = = led t1s = 0; } } void main( ) { tmod = tl0 ie tr0 { } = th0 = = 1 0xe0 0xb1 1 p1 = ; } ; ; ; = 0 1 ) ; ; ; 1= 0x82;while(1)五、编程题(10 分)#include &reg52.h& #include &absacc.h& #define uint unsigned int #define uchar unsigned char #define ad_0809 pbyte[0x78] uchar ad_buf[8];(3 分)24 s_r_ad_8(){ uchar pdata * uchar x,i; for(i=0;i&8;i++) { ptr=&ad_0809+i; *ptr=0; for(x=0;x&100;x++); ad_buf[i]=ad_0809; ptr++; } } (5 分) main(){ s_r_ad_8(); for(;;); }(2 分)六、综合应用(共 20 分)1. 程序存储器:4000h——5fffh(3 分) 数据存储器:c000h——dfffh (3 分) 2. 74ls138:地址译码器,用来产生数据存储器和程序存储器的片选信号; 74ls373:地址锁存器,用来锁存 p0 口发送的地址低 8 位; 2764 :程序存储器,容量为 8kb 的程序存储器(eprom)用来存储程序 ; 6264 :数据存储器,容量为 8kb 的数据存储器(ram)用来存储数据 ; 89c52:微控制器,8 位单片机。(4 分) 3.① #10h ,② #0c100h ,③ #40h ,④ movx a,@dptr ,⑤ djnz r7,loop25 &&&&
14:33:25 14:22:18 10:50:04 10:24:12 10:22:29 09:22:07 07:18:55 07:15:01 06:49:02 06:07:19

我要回帖

更多关于 单片机0xff 的文章

 

随机推荐