版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.单片机上机考试试题1.使得 8 个发光二极管循环点亮,采用定时器方式0 使得每个发光二极管点亮的时间为0.5s。#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 1count+;th0=0x0c;tl0=0x78;void main()tmod=0;th0=0x0c;tl0=0x78;tr0=1;et0=1;ea=
2、1;while(1)if(count=100)minute+;count=0;desplay();.2.完成下面电路所示的功能,k1 , k2对应两个开关按键。p1 口对应发光二极管的状态p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7k1=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&p
3、1_1=1)p0=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 1count+;tl0=0xb0;th0=0x3c;void display().i=second%5;p0=stylei;void main()tmo
4、d=0x01;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=num;p2=code1i;
5、delay(1000);num=(num1)|1;5. 做一个简易30s 的倒计时秒表,秒表的显示通过8 个发光二极管显示出来。#include#includestdio.hint count;count=0;void t0proc() interrupt 1th0=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. 使用外中断 0 来控制,去实现下列功能。其中 k
6、1 为按键, p1 口对应 8 个发光二极管的状态p1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7无按键按下(循环)有按键按下.#include/sbit k1=p20;int count=0;void delay(unsigned char i);void int0proc() interrupt 0count+;p1=0xf0;void main()ea=1;ex0=1;it0=1;p1=0xcc;while(1)if(count%2=0)if(p1=0xcc)p1=0x30;delay(500);elsep1=0xcc;delay(500);void delay(unsi
7、gned char i)unsigned char j,k;for(k=0;ki;k+)for(j=0;j255;j+);.7.通过 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(
8、x);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=led1c
9、hl;for(i=0;i50;i+);8. 采用定时器方式1 使得 8 个发光二极管按如下方式点亮,循环的时间为2sp1.0p1.1p1.2p1.3p1.4p1.5p1.6p1.7#include char code style4=0x0f,0xf0,0xcc,0xff;int i;int count=0;int second=0;void t0pro() interrupt 1count+;tl0=0xb0;th0=0x3c;void display()i=second%4;p0=stylei;.void main()tmod=0x01;ea=1;tr0=1;et0=1;tl0=0xb0;t
10、h0=0x3c;while(1)if(count=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 1count+;tl0=0xb0;th0=0x3c;void display()i=second%3;p0=stylei;void main()tmod=0x01;ea=1;tr0=1;et0=1;tl0=0xb0;t
11、h0=0x3c;while(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,在 p1.0 引脚上输出频率为1khz 的方波(可能有问题)#includeint count;count=0;sbit p1_0=p10;void t0proc() interr
12、upt 1p1_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 reg51.h#define uchar unsigned char#define uintunsigned intuint count = 0;uchar i;/0-9 段码uchar code time = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;void
13、 stop() interrupt 2/int1 中断et0 = 1;tr0 = 1;void start() interrupt 0/int0 中断et0 = 0;tr0 = 0;void timer() interrupt 1/t0 中断th0=(65536 - 50000) / 256; / 恢复定时器0 初值tl0=(65536 - 50000) % 256;.if(+i = 20) /50ms*20=1s转换状态i=0;count+;p0=timecount/10;p1=timecount%10;if(count=20) count=0; / 满 20s 后显示 00void mai
14、n() / 初始显示 00 p0 = 0xc0;p1 = 0xc0; /t0 采用方式 1 tmod=0x01;/ 中断总开关ea = 1;ex0 = 1;ex1 = 1;it0 = 1;it1 = 1;/int0优先px0 = 1;while(1);.14.使用外中断1 来控制, 当无按键按下时8 个发光二极管循环点亮,循环点亮的时间为1s,有按键按下时,8 个发光二极管全部熄灭。#includestdio.h#includereg51.hint count=0;void interint1() interrupt 2p0=0xff;et0=0;tr0=0;void intert0() in
15、terrupt 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 ”时,开始产生波型,当发过来“ s”时,停止产生波型, fosc=12mhz 。(没答案)15.通过 a/d 转换电路,将模拟电压值在两个发光二极管上显示出来。
16、 (查询和中断方式均可) #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 char w)unsigned char ch;ch=w;chh=ch/51;ch=ch%51;,chl=(ch*10)/51;vo
17、id 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()/p1=0xaa;while(1)if(p0_0=0)if(p0_1=0)p1=0x00;delay();else if(p0
18、_1=1)p1=0x0f;delay();else if(p0_0=1)if(p0_1=0)p1=0xf3;delay();else if(p0_1=1)p1=0xaa;delay();.17.完成下面电路的功能,p1 口对应发光二极管的状态,状态1 显示的时间为1s,状态 2 显示的时间为2s,状态 3 显示的时间为3s,如此循环p1.0p1.1p1.2状态 1状态 2状态 3#includestdio.h#includereg51.hint count=0;int flag=0;void first()p1=0x02;flag=0;th0=0xbd;tl0=0xc0;void intert
19、0() interrupt 1p1=0x02; if(flag=0)if(count=15)flag=1;.count=0;th0=0xbd;tl0=0xc0;count+;else if(flag=1)p1=0x01; if(count=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();cou
20、nt=0;count+;void main().ea=1;tmod=1;et0=1;tr0=1;first();while(1);18.彩灯系统,实现8 个发光二极管从左到右点亮,每个发光二极管点亮的时间为2s,然后从右到左亮,每个发光二极管点亮的时间为1.5s.#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=
21、0;uchar t_count=0;uchar i=1;.void t0proc() interrupt 1th0=0x3c;tl0=0xb0;switch(state)case 0:if(+t_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(
22、1);19在 4 个数码管上显示出当天的日期。#include#define uchar unsigned char#define uint unsigned 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显示的时间为0.5s,状态 4
23、显示的时间为 0.1s,如此循环p1.0p1.1p1.2p1.3状态 1状态 2状态 3状态 4#include#includevoid delay(int time)while(time)-time;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 读与写的代码。#inclu
24、deeg51.h#includeabsacc.h#define uchar unsigned charvoidmain()uchar i,j,a;i = xbyte0x00ff;/ 0x00ff 上的字符for(j=0;j10;j+)xbytej+0x08ff =a + j;/向 0x08ff 写入数据a = xbyte0x0900 ;/读 0x08ff 上的字符while(1);.22. 扩展一片 8255 ,使 pa 口工作在方式 1 输入,pb 口工作在方式 0 输出。给出初始化 8255 程序,读与写的程序。硬件电路如图所示。23. 数码管数字显示控制程序设计。 控制要求:用按键 k1
25、和 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,0x6d,0x66,0x4f,0x5b,0x06,0x3f; uchar t_count=0;
26、sbit k1=p10;sbit k2=p11;uchar i=0;void t0proc() interrupt 1th0=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;24. 89c51 与 pc 通过串口通信,单片机采用方式3 串行通信,晶振都采用12mhz ,波特率为 1200baud。要求
27、:当单片机收到 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)ch
28、ar *ads=0x30;char *adss=0x40;if(j=1)ti=0;while(ads=0x3f)sbuf = *ads;+ads;while(!ti)ti = 0;.delay();if(j=2)ti=0;while(adss=0x5f)sbuf = *adss;+adss;while(!ti)ti = 0;delay();void intoproc()interrupt 4while(1)ri=0;ch=sbuf;if(ch=s)display(1);if(ch=p)display(2);void main()scon = 0x50;/8 位可变波特率 , 无奇偶校验tmod
29、 = 0x20;/ 定时器 1 为 8 位自动重装计数器th1 = 0xe6;tl1 = 0xe6;/ 十进制 230tr1 = 1;/ 启动定时器1ea=1;et1=1;es=1;.ti=1;ri=1;while(1);25. 交通控制系统,如下图所示,是交叉路口,要求:绿灯亮9 秒后,黄灯闪3 秒,后红灯亮 9 秒,两个数码管分别显视各种灯所剩余时间。#includestdio.h#includereg51.hsbit p0_0=p00;sbit p0_4=p04;sbit p0_1=p01;sbit p0_2=p02;sbit p0_3=p03;sbit p0_5=p05;int cou
30、nt=0;int count2=0;int flag1,flag2;/red=0,yellow=1,green=2;int yellow1=0,yellow2=0;int array=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/向上路口及路口1 的黄灯闪烁函数int yellow1(int cou)if(cou%15=0).p1=array3-cou/15;if(p1=0x40)flag1=0;cou=-1;th0=0xbd;tl0=0xc0;return cou;if(yellow1=0)p0_2=0;if(cou%2=0)yello
31、w1=1;else if(yellow1=1)p0_2=1;if(cou%5=0)yellow1=0;return cou;/向右路口及路口2 的黄灯闪烁函数int yellow2(int cou)if(count2%15=0)p3=array3-count2/15;if(p3=0x40)flag2=0;count2=-1;th1=0xbd;tl1=0xc0;if(yellow2=0).p0_5=0;if(cou%2=0)yellow2=1;else if(yellow2=1)p0_5=1;if(cou%5=0)yellow2=0;return cou;void intert1() interrupt 3/ 控制向右及路口2 的红绿灯if(flag2=0)p0_5=1;p0_4=0;if(count2%1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 培养学生文化礼仪意识-文化礼仪培训师的演讲
- 高中数学解题反思的应用
- 质量管理体系审查及优化模板
- 企业文化建设方案制定及实施模板
- 工程峻工验收达到要求承诺书(9篇)
- 学会感恩与爱同行小学主题班会课件
- 家政服务业家政服务标准化与智能化管理研究
- 赛事安全及管理风险防控手册
- 金融机构个人服务承诺书(8篇)
- 保险业客户投诉处理规范指导书
- 工程项目进度-成本-质量多目标协同优化模型构建与应用研究
- 历史文化街区改造方案
- 2024年铜仁职业技术大学辅导员考试笔试真题汇编附答案
- 【中考】2025年广东江门语文试卷(原卷+答案)
- DB5305∕T 179-2024 红大戟种苗培育技术规程
- 无人机城市测绘三维建模技术方案
- 消防控制室值班管理存在的问题及整治措施分析
- 海关主动披露培训
- 2025年(完整版)管理学原理试卷及答案
- 2025年海南省事业单位招聘考试教师信息技术学科专业知识试卷及答案
- 未成年用电安全培训课件
评论
0/150
提交评论