周国运版51单片机课后习题答案资料

内容发布更新时间 : 2025/6/28 11:26:31星期一 下面是文章的全部内容请认真阅读。

}

}

27.利用库函数scanf编写一函数,实现从单片机串行口接收数据的C51程序,把接收的数据存放在片外数据存储器从0x240开始的区域,遇到回车符CR(ASCII码是0x0d)结束。 include void main() {

unsigned char xdata *xdpt; unsigned char i=0,temp; xdpt=0x240;

while(1) {

scanf(“%c”,&temp); if(temp==0x0d)

break;

*(xdpt+i)=temp; i++; } } 28.利用库函数putchar编写一函数,实现从单片机串行口发送数据的C51程序,发送的数据存放在片内数据存储器从0x50开始的区域,遇到回车符CR(ASCII码是0x0d)结束。 include void main() {

unsigned char data *dpt; unsigned char i=0; dpt=0x50;

while(*(dpt+i)!=0x0d) {

putchar(*(dpt+i)); i++; } } 29.利用库函数printf编写一函数,实现从单片机串行口发送数据的C51程序,发送的数据存放在片外数据存储器从0x100开始的区域,遇到回车符CR(ASCII码是0x0d)结束。 include void main() {

16

unsigned char xdata *xdpt; unsigned char i=0; xdpt=0x100;

while(*(xdpt+i)!=0x0d) {

printf(“%c”,*(xdpt+i)); i++; }

} 30.编写一定时器/计数器0定时100ms中断处理函数,使函数实现时钟的功能,即产生时钟的秒、分钟和小时。设定时初值的高、低字节分别为TIMER_H和TIMER_L。 设fosc=6mhz

#include sfr TIMER_H=0x8b; sfr TIMER_L=0x8a;

unsigned char data shi,fen,miao,bfm;

void main() {

TMOD=0x01;

TIMER_H=15536/16; TIMER_L=15536; ET0=1; EA=1; TR0=1; while(1); }

void time0_int() interrupt 1 {

TIMER_H=15536/16; TIMER_L=15536; bfm++;

if(bfm==10) {

bfm=0; miao++; }

if(miao==60) {

miao=0; fen++;

17

}

if(fen==60) {

fen=0; shi++; }

if(shi==24) {

shi=0; }

}

31.在Keill C的调试状态下,如何使用跟踪运行、单步运行、跳出函数运行命令?

答:Step命令和Step Over命令的区别:当遇到调用函数时,前者将跟踪进入函数,而后者是一步执行完函数。

如果用全速运行命令Go,可以使用Stop Running命令停止运行。

欲退出调试状

>>展开全文<<
12@gma联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi