好文档 - 专业文书写作范文服务资料分享网站

单片机

天下 分享 时间: 加入收藏 我要投稿 点赞

89C52单片机的P1口接8个发光二极管,拟用T0定时中断,控制P1口每200ms输出一次做左移流水灯显示,电路如图所示。设晶振为6MHz,不考虑T1。完成下列各问题:

(1)P1口各位输出高电平还是低电平发光二极管亮? (2)拟使T0定时多少ms、中断多少次使P1输出一次? (3)拟选T0以模式几定时?写出模式字TMOD的值; (4)计算T0的定时初值;

(5)编写主函数和T0中断服务函数,实现流水灯功能。 (1)低电平发光二极管亮 (2)100ms;2次 (3)模式1,TMOD=0X21 (4)15536 (5)C语言程序 #include unsigned char aa=0x01; 主函数: main() { TMOD=0x21; TL0=176, TH0=60; EA=1, ET0=1; TR0=1; P1=~aa; while(1); }

T0中断服务函数: void int_t0(void) interrupt 1 { TL0=176, TH0=60; aa<<=1;

P1=~aa; }

89C52单片机的串行口由哪些功能部件组成?各有什么作用?

89C52通过引脚RXD(P3.0,串行数据接收端)和引脚TXD(P3.1,串行数据发送端)与外界进行通信,单片机内部的全双工串行接口部分,包含有串行发送器和接收器,有两个物理上独立的缓冲器,即发送缓冲器和接收缓冲器SBUF。发送缓冲器只能写入发送的数据,但不能读出;接收缓冲器只能读出接收的数据,但不能写入。控制状态寄存器SCON ,用于定义串行通信口的工作方式和反映串行口状态。

设89C52单片机的晶振为11.0592MHz,串行口工作于方式3做数据收发,波特率为9600b/s。完成以下串行通信的初始化工作。

(1)写出T1以模式2定时作为波特率发生器的模式字; (2)计算T1的计数初值;

(3)写出串行口控制寄存器的控制字;

(4)写出初始化程序段(包括定时器和串行口)。 (1)TMOD=0x20 (2)0xfd (3)SCON=0xc0 (4)TMOD=0x20; TH1=0xfd; TL1=0xfd; TR1=1; SCON=0xc0;

使用89C52串行口以工作方式3进行串行通信,假定波特率为4800b/s,单片机晶振频率为11.0592MHz。请编写全双工通信程序,以中断方式接收和发送数据,并对数据

进行奇偶校验。设发送的50个数据在片外数据区,地址从0x0010开始的区域,接收的数据保存0x80开始的区域,接收到’S’后表示结束。 #include

unsigned char xdata *SendBuffer=0x0010; unsigned char xdata *RecvBuffer=0x0080; unsigned char i,j; bit SendOver,RecvOver; void main() {

TMOD=0x20; TH1=0xfa; TL1=0xfa; TR1=1; SCON=0xc0; ES=1; EA=1;

ACC=SendBuffer[i++]; TB8=P; SBUF=ACC; while(1); }

void Serial() interrupt 4 { if(TI) { TI=0;

ACC=SendBuffer[i++]; TB8=P; SBUF=ACC; if(i==50)

SendOver=1; } else { RI=0; ACC=SBUF; if(RB8==P) {

RecvBuffer[j++]=ACC; if(ACC=='$') RecvOver=1; } }

简述串行口四种工作方式的特点。

方式0:同步移位寄存器,波特率为fosc/12; 方式1:10位异步方式,波特率由定时器控制; 方式2:11位异步方式,波特率为fosc/32或fosc/64; 方式3:11位异步方式,波特率同方式1。

某MCS-51单片机系统使用定时器/计数器T1定时,产生频率为1000Hz的方波声音信号,要求方波信号从P3.5引脚输出。设fosc=6MHz,不考虑T0。完成下列各问题: (1)计算声音信号的周期和T0的定时时间;

(2)计算T1在定时时间内的计数值;

(3)应该选T1以何种模式工作最恰当?写出模式字TMOD的值; (4)计算T1的定时初值;

(5)编写主函数和T1中断服务函数,使T1以中断方式从P3. 5引脚产生方波。

(1)1ms,500μs (2)250

(3)模式2,TMOD=0X25 (4)6

(5)C语言程序 #include sbit P35=P3^5; 主函数: main() { TMOD=0x25; TL1=6, TH1=6; EA=1, ET1=1; TR1=1; while(1); }

T1中断服务函数:

void int_t1(void) interrupt 3 { P35=~P35; }

单片机

89C52单片机的P1口接8个发光二极管,拟用T0定时中断,控制P1口每200ms输出一次做左移流水灯显示,电路如图所示。设晶振为6MHz,不考虑T1。完成下列各问题:(1)P1口各位输出高电平还是低电平发光二极管亮?(2)拟使T0定时多少ms、中断多少次使P1输出一次?(3)拟选T0以模式几定时?写出模式字TMOD的值;(4)计算T0的定时初值;(5)
推荐度:
点击下载文档文档为doc格式
06rt58nxd29kcek7h0xn
领取福利

微信扫码领取福利

微信扫码分享