单片机课后习题.doc

单片机课后习题.doc

ID:56725725

大小:335.50 KB

页数:36页

时间:2020-07-06

单片机课后习题.doc_第1页
单片机课后习题.doc_第2页
单片机课后习题.doc_第3页
单片机课后习题.doc_第4页
单片机课后习题.doc_第5页
资源描述:

《单片机课后习题.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、P148作业5-5请分别定义下列变量:(1)片内RAM中无符号字符型变量x;unsignedchardatax;(2)片内RAM中位寻址区无符号字符型变量y,将y.0-y.2再分别定义为位变量key_in、key_up、key_down;unsignedcharbdatay;sbitkey_in=y^0;sbitkey_up=y^1;sbitkey_down=y^2;(3)片外RAM中整型变量x,并指定变量x的绝对地址为4000H;xdataintx_at_0x4000;或#definexXWORD[[0x2000](4)特

2、殊功能寄存器变量PCON;sfrPCON=0x87;5-7用C51语言编程实现,片内扩展RAM的000EH单元和000FH单元的内容交换。#includevoidmain(){unsignedchar*pp1,*pp2,temp;AUXR&=0xfd;pp1=0x000e;pp2=0x000f;temp=*pp1;*pp1=*pp2;*pp2=temp;}5-9试用C51语言编写程序实现将片内RAM21H单元存放的两位BCD码数转换为十六进制数存入30H单元。dataunsignedchary

3、1_at_0x21;dataunsignedchary2_at_0x30;voidmain(){unsignedchartemp;temp=y1;y1=(y1&0xf0)>>4;y2=y1*10+(temp&0x0f);}P208作业7-7在STC12C5A60S2单片机中,假设系统的时钟频率为12MHz,利用定时/计数器T0,分别用汇编语言和C51编程实现在P1.0引脚输出周期为2s的方波。分析:仿例题7-3,要产生周期2s的方波,需定时1s,一个定时器完成不了,可定时50ms,T0工作在方式1,然后利用R7对50ms定时

4、中断计数20次来实现。选择12T模式,T0x12=0,f=12MHz,则需计数50000,初值为65536-50000=15536=3CB0H(1)汇编程序:ORG0000HLJMPMAINORG000BH;T0的中断向量入口地址LJMPT0_INTORG0100HMAIN:MOVSP,#0BFH;初始化堆栈指针MOVTMOD,#01H;T0工作在方式1MOVTL0,#0B0H;给T0写入初值MOVTH0,#03CHMOVR7,#20;利用寄存器R7计数20次SETBEA;开放总中断SETBET0;T1溢出中断允许SETBT

5、R0;启动T1开始工作SJMP$T0_INT:MOVTL0,#0B0H;重新赋初值MOVTH0,#03CHDJNZR7,NEXTCPLP1.0MOVR7,#20;重新赋给R7值50NEXT:RETIEND(1)C51程序:#include/sbitP1_0=P1^0;unsignedchari=0;voidmain(){TMOD=0x01;//T0工作在方式1TL0=0xB0;//给T0装入初值TH0=0x3C;EA=1;//开放总中断ET0=1;//T0溢出中断允许TR0=1;//启动T0开始工作w

6、hile(1);}voidT0_INT()interrupt1//T0中断服务程序{TH0=0x3C;TL0=0xB0;//重新置入初值i++;if(i==20){P1_0=!P1_0;i=0;}}7-8由P1口驱动8个指示灯,利用定时/计数器T1的定时功能分别用汇编语言和C51编程实现8个指示灯依次循环点亮(输出高电平),点亮间隔为1s,反复循环。分析:仿照上题,T1需定时50ms,R7计数20次,达到定时1s的目的,每隔1s,循环一次,实现轮流点亮。(1)汇编程序ORG0000HLJMPMAINORG001BH;T1的中

7、断向量入口地址LJMPT1_INTORG0100HMAIN:MOVSP,#0BFH;初始化堆栈指针MOVTMOD,#10H;T1工作在方式1MOVTL1,#0B0H;给T1写入初值MOVTH1,#03CHMOVR7,#20;利用寄存器R7计数20次MOVA,#01HSETBEA;开放总中断SETBET1;T1溢出中断允许SETBTR1;启动T1开始工作SJMP$T1_INT:MOVTL1,#0B0H;重新赋初值MOVTH1,#03CHDJNZR7,NEXT;R7减1不为0,说明中断次数未;到20次,跳转到NEXT处返回MOV

8、P1,A;RLA;为下一次做准备MOVR7,#20;重新赋给R7值50NEXT:RETIEND(1)C51程序:#includeunsignedchari=0;unsignedcharj;voidmain(){TMOD=0x10;//T1工作在方式1TL1=0xB0

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。