ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:21.86KB ,
资源ID:5796021      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5796021.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微控制器作业答案doc.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微控制器作业答案doc.docx

1、微控制器作业答案doc微控制器作业(第四章)4.5、试用C51语言编写将0-9,A-F转换成相应的ASC2码的程序。答:程序段如下:#include#include void main()unsigned char ch; scanf(%c, &ch); if(9=ch=0|F=ch=A) printf(%d.n,ch); return 0;4.11、用C51语言和汇编语言混合编程的方法,使单片机的 P1.0引脚产生占空比为90%周期为10ms的方波。答:程序如下:C程序文件:#include#define uchar unsigned charsbit P1_0=P11;extern del

2、ay1ms(unchar x); /外部函数delay1ms()声明,入口参数为xmain() for(;) P1_0=1; delay1ms(9); /调用外部函数delay1ms(9),参数9送入寄存器R7 P1_0=0; delay1ms(1); void delay1ms()#pragma asmpublic_delay1ms /用public声明_delay1ms为其他函数调用,以_开头后跟函数名de segment code /定义de段在定义函数段rseg de /定义de为当前段_delay1ms:nopdela:mov r1,#0f8hlop1:nop nop djnz r1

3、,lop1 djnz r7,dela ret end#pragma endasm微控制器作业(第六章)6.2、设计一个声光报警器,设备正常运行时,绿色指示灯亮,若设备非正常运行时,红灯闪烁、报警器持续发声报警。答:#include#includedefine red p10 /红灯输入define green p11 /绿灯输入void delay(viod);main() IT0=0;/外中断0电平触发方式 EA=1;/开放CPU中断允许 EX0=1;/设置外中断0中断允许 PX0=0;/中断系统只有一个中断源,设置为低中断优先级 while(1) bingbing=1;/蜂鸣器三极管截止,

4、不叫; green=0;/绿灯亮void delay1s()#pragma asmMOV R7,#1000DEL:MOV R6,#500DJNZ R6,$DJNZ R7.DEL#pragma endasm Extern () interrupt 0 bingbing=0;/使蜂鸣器持续发声 green=1;/绿灯灭 red=0;/使红灯亮delay1s();red=1;/红灯灭Define bingbing p12 /蜂鸣器输入6.3、简述AT89S系列单片机内部中断源,并指出各中断源中断服务程序入口地址。答:特殊功能寄存器TCON中与中断相关的有,TF0和TF1两位。TF0:定时/计数器T0

5、计数溢出中断标志位。TF1:定时/计数器T1计数溢出中断标志位。89S52内部中断源除了T0和T1外,还有定时/计数器T2和串行口中断。定时/计数器T2中断:定时/计数器T2的计数溢出标志位TF2为“1”,或者T2的外部中断标志位EXF2为“1”,作为有效中断请求,向CPU请求中断。串行口中断:串行口的接受中断标志RI(SCON.0)和发送中断标志TI(SCON.1)逻辑或以后作为内部的一个中断源。6.4、设计一个外部事件中断计数器,使用外中断0的边缘触发方式,对外部发生的中断事件进行计数。答: #includeUnsigned char i=0;Main()IT0=1;/外中断0边沿触发方式

6、EA=1;/开放CPU中断允许EX0=1;/设置外中断0中断允许PX0=0;/中断系统只有一个中断源,设置为低中断优先级Extern () interrupt 0 i+;6.6、单片机系统使用12MHz的晶振,使用定时/计数器T0产生250us的定时,使P3.4输出周期为1s的方波,试编写主程序和T0中断服务程序。答:计数初值为65536-250=65286=FF06H;即计数器中TL0的初值为06H。TH0的初值为FFH。#includeSbit p3_4=p34;Unsigned char a=2000;Main() TH0=0x06; TL0=0xFF; TMOD=0x01;/T0工作在

7、方式1 IE=0x81;/允许T0向CPU申请中断TR0=1;/启动T0开始计数While(1);Timer () interrupt 1TH0=0x06;TL0=0xFF;/重赋计数初值a-;if(a=0)a=2000;p3_4= p3_4;6.10、单片机系统晶振为11.0592MHz,串行口工作于方式1,波特率为4800bit/s,从串行口输出字符“AT89S52 Micro Computer”。试分别用查询方式和中断方式编写程序。答:查询方式:#include unsigned char a = “AT89S52 Micro Computer0”;unsigned char i = 0

8、;main()TMOD = 0x20; /定时器T1工作于方式2TH1 = 0xFA;TL0 = 0xFA; /波特率4800SCON = 0x40; /串行口工作于发送方式TR1 = 1;TI = 1; /便于实现循环发送数据while(ai != 0) while(TI = 0); TI = 0; SBUF = ai; i+;中断方式:#include unsigned char a = “AT89S52 Micro Computer0”;unsigned char i = 0;main()TMOD = 0x20; /定时器T1工作于方式2TH1 = 0xFA;TL0 = 0xFA; /波

9、特率4800SCON = 0x40; /串行口工作于发送方式EA = 1;ES = 1; /打开串口中断TR1 = 1;TI = 1; /便于实现循环发送数据while(1);uart() interrupt 4 using 1if(TI = 1) /确认是发送中断 while(ai != 0) TI = 0; SBUF = ai; i+; 6.11、0#单片机以波特率1200bit/s,从串行口发送内部RAM20H30H单元的数据块,晶振为11.0592MHz,1#单片机从串行口接收数据,并将数据保存于其内部存储器中,试着编写程序。答:0#单片机程序如下: ORG 0000H LJMP MI

10、ANMIAN: MOV TMOD, #20H ;T1工作于方式2,定时 MOV TH1, #0FDH ;波特率9600 MOV TL1, #0FDH MOV SCON, #40H ;工作于发送方式 SETB TR0 SETB TI MOV R0, #20H MOV R7, #10HWAIT: JNB TI, WAIT ;是否发送完毕 CLR TI MOV A, R0 MOV SUBF, A INC R0 DJNZ R7, WAIT ;R7减一循环,直到20H30H的内容发送完毕 SJMP $ END1#单片机程序如下: ORG 0000H LJMP MIANMIAN: MOV TMOD, #2

11、0H ;T1工作于方式2,定时 MOV TH1, #0FDH ;波特率9600 MOV TL1, #0FDH MOV SCON, #50H ;工作于接收方式 SETB TR0 SETB RI MOV R0, #20H MOV R7, #10HWAIT: JNB RI, WAIT ;是否接收完毕 CLR RI MOV A, SUBF MOV R0, A INC R0 DJNZ R7, WAIT ;R7减一循环,直到内容接收完毕,全部存储于20H30H单元 SJMP $ END附加作业1、(例题62用C51编写)编程使得蜂鸣器响铃10次,每次响铃发出250Hz的声音,维持时间为0.5s,静音1s,

12、单片机使用12MHz的晶振。答: #includeSbit p1_0=p10; Void delay2ms(); Void delay1s();Void main() Unsigned char i,j; for(i=0;i10;i+) for(j=0;j20;j+) P1_0=0; delay2ms(); P1_0=0; delay2ms(); P1_0=0; Delay1s(); Void delay2ms()#pragma asmMOV R7,#10DEL:MOV R6,#100DJNZ R6,$DJNZ R7.DEL#pragma endasmVoid delay1s()#pragma

13、 asmMOV R7,#1000DEL:MOV R6,#500DJNZ R6,$DJNZ R7.DEL#pragma endasm2、(例题66用C51编写)设计一个应用程序,使用定时/计数器T0定时方法在P1.0引脚输出周期为100ms,占空比为1:9的周期信号,晶振选用12MHz的晶振。答:由分析可知,周期100ms,占空比为1:9,则高电平持续时间为10ms,低电平持续时间为90ms,使用定时/计数器T0产生10ms定时,T0工作于方式1,则计数初值为:。因此,#includeSbit p1_0=p10;Unsigned char a=9;Main() TH0=0xD8; TL0=0xF0; TMOD=0x01;/T0工作在方式1IE=0x81;/允许T0向CPU申请中断TR0=1;/启动T0开始计数While(1);Timer () interrupt 1 For(a=9;a0;a)TH0=0xD8;TL0=0xF0;/重赋计数初值P1_0=0; if(a=0)TH0=0xD8; TL0=0xF0;/重赋计数初值 P1_0=1;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1