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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机上机操作考试题及答案.docx

1、单片机上机操作考试题及答案单片机上机考试试题1.使得8个发光二极管循环点亮,采用定时器方式0使得每个发光二极管点亮的时间为。#include int count=0;int minute=0;int temp;char code style8=0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe;void desplay() temp=minute%8; P0= styletemp;void toProc() interrupt 1 count+; TH0=0x0c; TL0=0x78;void main() TMOD=0; TH0=0x0c; TL0=0x78; T

2、R0=1; ET0=1; EA=1; while(1) if(count=100) minute+; count=0; desplay(); 2.完成下面电路所示的功能,K1,K2对应两个开关按键。P1口对应发光二极管的状态K1=0,K2=0K1=0,K2=1K1=1,K2=0K1=1,K2=1#include char code style4=0x0,0xf0,0x33,0xff;sbit P1_0=P10;sbit P1_1=P11;void main() P0=0xff; while(1) if(P1_0=0&P1_1=0) P0=style0; if(P1_0=0&P1_1=1) P0

3、=style1; if(P1_0=1&P1_1=0) P0=style2; if(P1_0=1&P1_1=1) P0=style3; 3.在一个数码管上循环显示“H”“E” “L” “L” “O” ,循环的时间为1s。#include char code style5=0x89,0x86,0xc7,0xc7,0xc0;int i;int count=0;int second=0;void t0Pro() interrupt 1 count+; TL0=0xB0; TH0=0x3c; void display() i=second%5; P0=stylei; void main() TMOD=0

4、x01; EA=1; TR0=1; ET0=1; TL0=0xB0; TH0=0x3c; while(1) if(count=20) second+; count=0; display(); 4.在6个数码管上分别显示自己学号的后六位数字。 #includechar code code1=0x4f,0x4f,0x01,0x06,0x06,0x4f;sbit p1_0=P10;char num;void delay(int timer) while(timer) -timer; void main() int i; while(1) num =0xFE; for(i=0;i6;i+) P1=nu

5、m; P2=code1i; delay(1000); num=(num1)|1; 5.做一个简易30s的倒计时秒表,秒表的显示通过8个发光二极管显示出来。#include#includeint count;count=0;void t0Proc() interrupt 1 TH0=0x3c; TL0=0xb0; count+; if(count=10) P0=P0+1; count=0; if(P0=0xff) P0=0xe1; void main() EA=1; ET0=1; TMOD=1; TH0=0x3c; TL0=0xb0; TR0=1; P0=0xe1; while(1); 6.使用

6、外中断0来控制,去实现下列功能。其中K1为按键,P1口对应8个发光二极管的状态无按键按下(循环)有按键按下#include 过A/D转换电路,将模拟电压值在两个发光二极管上显示出来。(查询和中断方式均可)#include#include#define a XBYTE0xcfa8sbit p=P32;sbit shi=P34;sbit ge=P35;void sepr(unsigned char w);void disp();unsigned char i,x,chh,chl;void main() while(1) adc0809=0; while(p); x=adc0809; sepr(x)

7、; disp();void sepr(unsigned char w)unsigned char ch;ch=w;chh=ch/51;ch=ch%51;,chl=(ch*10)/51;void disp()unsigned char led1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char led2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef ;shi=0;ge=1;a=led2chh;for(i=0;i50;i+);shi=1;ge=0;a=led1chl;

8、for(i=0;i50;i+);8. 采用定时器方式1使得8个发光二极管按如下方式点亮,循环的时间为2s#include char code style4=0x0f,0xf0,0xcc,0xff;int i;int count=0;int second=0;void t0Pro() interrupt 1 count+; TL0=0xB0; TH0=0x3c; void display() i=second%4; P0=stylei; void main() TMOD=0x01; EA=1; TR0=1; ET0=1; TL0=0xB0; TH0=0x3c; while(1) if(count

9、=40) second+; count=0; display(); 9.在一个数码管上循环显示“0” “1” “5” 3个数字,循环的时间为1s。#include char code style3=0xc0,0xf9,0x92;int i;int count=0;int second=0;void t0Pro() interrupt 1 count+; TL0=0xB0; TH0=0x3c; void display() i=second%3; P0=stylei; void main() TMOD=0x01; EA=1; TR0=1; ET0=1; TL0=0xB0; TH0=0x3c; w

10、hile(1) if(count=20) second+; count=0; display(); 10.在4个数码管上稳定显示出“A” “C” “E” “P” 四个字符。#include char code style4=0x88,0xc6,0x86,0x8c;void main() while(1) P0=style0; P2=style1; P3=style2; P1=style3; 11.试采用定时方式2,在引脚上输出频率为1KHz的方波 (可能有问题)#includeint count;count=0;sbit p1_0=P10;void t0Proc() interrupt 1 p

11、1_0=p1_0; void main() EA=1; ET0=1; TMOD=2; TH0=0x06; TL0=0x06; TR0=1; p1_0=1; while(1); 12.做一个20s的简易秒表,当按键K1按下时,秒表暂停计数,K2按下时,开始计数。 #include #define uchar unsigned char #define uint unsigned int uint count = 0; uchar i; 用外中断1来控制,当无按键按下时8个发光二极管循环点亮,循环点亮的时间为1s,有按键按下时,8个发光二极管全部熄灭。#include#includeint cou

12、nt=0;void interINT1() interrupt 2P0=0xff;ET0=0;TR0=0;void interT0() interrupt 1if(count=15)TH0=0xBD;TL0=0xC0;P0=(P01)|1;if(P0=0xff)P0=0xfe;count=0;count+;void main()EA=1;ET0=1;TR0=1;TMOD=0x01;TH0=0xBD;TL0=0xC0;P0=0xfe;while(1) if(P33=0) EX1=1; IT1=1; 15.通过串口控制单片机产生1KHz的波型,当PC通过串口发过来“K”时,开始产生波型,当发过来“

13、S”时,停止产生波型,fosc=12MHz。(没答案)15.通过A/D转换电路,将模拟电压值在两个发光二极管上显示出来。(查询和中断方式均可)#include#include#define a XBYTE0xcfa8sbit p=P32;sbit shi=P34;sbit ge=P35;void sepr(unsigned char w);void disp();unsigned char i,x,chh,chl;void main() while(1) adc0809=0; while(p); x=adc0809; sepr(x); disp();void sepr(unsigned cha

14、r w)unsigned char ch;ch=w;chh=ch/51;ch=ch%51;,chl=(ch*10)/51;void disp()unsigned char led1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char led2=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef ;shi=0;ge=1;a=led2chh;for(i=0;i50;i+);shi=1;ge=0;a=led1chl;for(i=0;i0) time-; void main()

15、成下面电路的功能,P1口对应发光二极管的状态,状态1显示的时间为1s,状态2显示的时间为2s,状态3显示的时间为3s,如此循环状态1状态2状态3#include #includeint count=0;int flag=0;void first() P1=0x02; flag=0; TH0=0xBD; TL0=0xC0;void interT0() interrupt 1 P1=0x02; if(flag=0) if(count=15) flag=1; count=0; TH0=0xBD; TL0=0xC0; count+; else if(flag=1) P1=0x01; if(count=

16、15) TH0=0xBD; TL0=0xC0; if(count=30) flag=2; count=0; TH0=0xBD; TL0=0xC0; count+; else if(flag=2) P1=0x04; if(count=15) TH0=0xBD; TL0=0xC0; if(count=30) TH0=0xBD; TL0=0xC0; if(count=45) first(); count=0; count+; void main() EA=1; TMOD=1; ET0=1; TR0=1; first(); while(1); 18.彩灯系统,实现8个发光二极管从左到右点亮,每个发光二

17、极管点亮的时间为2s,然后从右到左亮,每个发光二极管点亮的时间为.#include#include#define uchar unsigned charuchar code tab=0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;uchar code tab1=0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01;uchar State=0;uchar T_count=0;uchar i=1;void t0Proc() interrupt 1 TH0=0x3c; TL0=0xb0; switch(State) case 0: if(+T

18、_count=20) P0=tabi; i=(i+1)%8; if(i=7) State=1; T_count=0; break; case 1: if(+T_count=15) i=(i+1)%8; P0=tab1i; if(i=7) State=0; i=1; T_count=0; break; void main() TMOD=1; TH0=0x3c; TL0=0xb0; EA=1; ET0=1; TR0=1; P0=tab0; while(1);19 在4个数码管上显示出当天的日期。#include#define uchar unsigned char#define uint unsi

19、gned intuchar code tab=0xc0,0xb0,0xc0,0x92;void delay(int x) uchar i; while(x-) for(i=0;i120;i+); void main() P0=tab0; P2=tab1; P3=tab2; P1=tab3; delay(500);20. 完成下面电路的功能,P1口对应发光二极管的状态,状态1显示的时间为3s,状态2显示的时间为1s,状态3显示的时间为,状态4显示的时间为,如此循环状态1状态2状态3状态4#include#includevoid delay(int time) while(time) -time;

20、 void main() P1=0xf3; delay(136364); P1=0xf1; delay(45455); P1=0xf0; delay(22727); P1=0xff; delay(4545);21. 采用51单片机扩展一片RAM 6116和一片EPROM 2732要求6116既能作为数据存储器,又能作为程序存储器使用,编写出对2732读,对6116读与写的代码。#include#include#define uchar unsigned charvoid main() uchar i,j,a; i = XBYTE0x00FF; 扩展一片8255,使PA口工作在方式1输入,PB口

21、工作在方式0输出。给出初始化8255程序,读与写的程序。硬件电路如图所示。23. 数码管数字显示控制程序设计。控制要求:用按键K1和K2分别控制数码管显示数字09的顺序,当按下K1键时按从0到9的顺序显示,当按下K2时按从9到0的顺序显示。时间间隔均为1秒。硬件电路如图所示。 #include#define uchar unsigned char#define uint unsigned intuchar code tab1=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code tab2=0x6f,0x7f,0x07,0x7d

22、,0x6d,0x66,0x4f,0x5b,0x06,0x3f;uchar T_count=0;sbit k1=P10;sbit k2=P11;uchar i=0;void t0Proc() interrupt 1 TH0=0x3c; TL0=0xb0; if(+T_count=10) T_count=0; i=(i+1)%10; void main() TMOD=1; TH0=0x3c; TL0=0xb0; EA=1; ET0=1; TR0=1; P0=0x3f; while(1) if(k1=0 & k2=1) P0=tab1i; else if(k1=1 & k2=0) P0=tab2i;

23、 24. 89C51与PC通过串口通信,单片机采用方式3串行通信,晶振都采用12MHz,波特率为1200Baud。要求:当单片机收到PC发来的数据“S”后,将30H-3FH的16个字节发送给乙机,当单片机收到“P”H时就发40H-5FH的32个字节数据。(待验证)#include void delay(void);sbit P1_4 = P14;unsigned char i;unsigned char data ch;unsigned char data s;unsigned char data tab12 = Hello Server;int j; void delay(void) unsigned char i; for(i=10;i0;i-);void display(j) char *ads=0x30; char *adss=0x40; if(j=1) TI=0; while(ads=0x3f) SBUF = *ads; +ads; while(!TI) T

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

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