版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机应用技术上机试题题目一:用外中断0控制P1口8位LED循环点亮,即按下一次按键,点亮一个灯,再按下按键左移一位点亮,如此循环。设计并仿真出结果。题目二:自行设计出一组数据,并让P2口的8位LED按照设计的这组数据顺序进行花样点亮,间隔0.2秒,仿真出结果。题目三:自行设计一个按键上具有三个功能,即第一次按下按键时,第一个灯点亮;第二次按下按键,第二个灯点亮;第三次按下按键,第三个灯点亮;第四次按下按键,又是第一个灯点亮,如此循环,仿真出结果。题目四:用P2口作输出口,接一位LED数码管,编写程序,使数码管循环显示09这十个数,并用定时器T0实现数码管显示间隔0.5秒,设计并仿真出结果。题
2、目五:用P2口作输出口,接一个8位的数码管排,采用动态显示的方法,编写程序,是这个数码管排同时显示07这八个数,设计并仿真出结果。题目六:用单片机U1通过串行口TXD端将一段流水灯控制码以串行口工作方式一发送至单片机U2的RXD,U2再利用该段控制码流水点亮其P1口上的8位LED。设计并编写程序,其中发送程序已知,根据发送程序编写出接收程序,仿真出结果。数据发送程序:#include<reg51.h> /包含单片机寄存器的头文件Unsigned char code Tab =0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F;/流水灯控制码,该数组被定义
3、为全局变量/*函数功能:向PC发送一个字节数据*/void Send(unsigned char dat) SBUF=dat; while(TI=0) ; TI=0;/*函数功能:延时约150ms*/ void delay(void) unsigned char m,n; for(m=0;m<200;m+) for(n=0;n<250;n+) ; /*函数功能:主函数*/void main(void) unsigned char i; TMOD=0x20; /TMOD=0010 0000B,定时器T1工作于方式2 SCON=0x40; /SCON=0100 0000B,串口工作方式
4、1 PCON=0x00; /PCON=0000 0000B,波特率9600 TH1=0xfd; /根据规定给定时器T1赋初值 TL1=0xfd; /根据规定给定时器T1赋初值 TR1=1; /启动定时器T1 while(1) for(i=0;i<8;i+) /模拟检测数据 Send(Tabi); /发送数据i delay(); /每150ms发送一次检测数据 题目7数码管显示4*4键盘矩阵按键,编程实现数码管显示按键的键值0F。采用AT89S51单片机最小系统,P3口外接矩阵式键盘接口电路,P1口外接共阴型七段数码管,如图所示。电路中共有16个按键,按4×4的矩阵式排列,键号依
5、次为0F。单片机的P3.0P3.3为输出口,连接4条列线;P3.4P3.7为输入口,连接4条行线。将下列程序补充完整,并仿真出结果。#include <reg51.h> #define uchar unsigned char#define uint unsigned intuchar key;unsigned char code disp_code=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char code key_code=0xee,
6、0xed,0xeb,0xe7,0xde,0xdd,0xdb,0xd7, 0xbe,0xbd,0xbb,0xb7,0x7e,0x7d,0x7b,0x77 ;void delayms(uint ms) uchar t; while(ms-) for(t = 0; t < 120; t+); uchar keyscan() /键盘扫描程序 uchar scan1,scan2,keycode,j; P3=0xf0; scan1=P3; if(scan1&0xf0)!=0xf0) /判键是否按下 delayms(30); /延时30ms scan1=P3; (?)void keydown(
7、) /判断是否有键按下 P3=0x0f; if(P3&0x0f)!=0x0f) keyscan(); P0=disp_codekey; /在数码管上显示键值 main() P0 = 0xbf; P3 = 0xff; while(1) keydown(); 题目8采用AT89S51单片机,利用定时/计数器T0通过P1.1引脚输出周期为25Hz的方波。同时进行测量,信号从P3.5引脚输入,P0、 P2口做输出口,接一个8位LED数码管,编写程序,测出从P3.5引脚输入的方波信号的频率并显示出来。补充下列程序并仿真出结果。#include<reg51.h> #include &l
8、t;stdio.h>#define uchar unsigned charuchar display_code=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff; /定义数组存放显示数据的编码uchar display_data8=0,0,0,0,0,0,0,0; /定义数组存放显示数据的各位uchar c1,b1; sbit P1_1=P11; void delay(void) /延时 uchar i; for(i=500;i>0;i-);void display() /显示程序 uchar i,k; k=0x01; f
9、or(i=0;i<8;i+) P2=0; P0=display_codedisplay_datai; P2=k; k=k<<1;delay(); P2=0;void convert() /转换程序( ?)void timer1(void) interrupt 3 /定时器1中断服务程序 c1+; void timer0(void) interrupt 1 /定时器0中断服务程序 TH0=0xb1; /装入时间常数TL0=0xe0;P1_1=!P1_1;/P1.1取反,从P1.1引脚输出25Hz的方波信号,通过导线连接/到P3.5引脚输入,以方便调试程序。若使用其它信号源,则去
10、掉即可。if (b1=49)convert();c1=0;/将计数值清零b1=0;TH1=0;TL1=0;else b1+;void main(void) /主函数P0_1=0;c1=0;b1=0;TH1=0;TL1=0;TMOD=0x51;TH0=0Xb1;TL0=0Xe0;IE=0x8a;TCON=0x50;while(1)display();题目9用AT89S51单片机芯片和D/A转换器DAC0832组成系统,通过程序设计,控制实现简易波形发生器,能根据需要,通过按键选择输出三角波、方波、锯齿波三种波形,并显示到示波器上。补充下列程序并仿真出结果。#include <reg51.h
11、>#define uchar unsigned char#define uint unsigned int#define DAC0832 P2 /将DAC0832定义为P2口;#define ALL 65536 /将ALL定义为65536;#define Fosc 12000000 /频率为12Muchar TH_0,TL_0,flag1,flag=0;uint FREQ=100,num; /起始频率设定为100HZfloat temp; /*端口设置*/sbit cs=P36;sbit change=P32; /*初始化函数*/void init() TMOD=0X01; /设定工作模
12、式 1 temp=ALL-Fosc/12.0/FREQ; /定时器初值计算 TH_0=(uint)temp/256; TL_0=(uint)temp%256; EA=1; /开总中断 EX0=1; /开外部中断 IT0=1; /设定下降沿有效工作方式 ET0=1; /设定定时器工作在定时方式 TR0=1; /开定时器中断/*切换波形函数*/void changefreq(void) ? /*三角波发生函数*/void sanjiaobo(void) for(num=0;num<255;num+) cs=0;DAC0832=num;cs=1; for(num=255;num>0;-n
13、um) cs=0;DAC0832=num;cs=1; /*方波发生函数*/void fangbo(void) cs=0;DAC0832=0XFF;cs=1; for(num=0;num<255;num+); cs=0;DAC0832=0X00;cs=1; for(num=255;num>0;num-); /*锯齿波发生函数*/void juchibo(void) cs=0;DAC0832=+num;cs=1; /*外部中断服务函数*/void ext0() interrupt 0 changefreq(); /引用频率改变函数 /*定时器中断函数*/void timer0() in
14、terrupt 1 ? /*主函数*/void main() init(); while(1); 题目10用AT89S51作为控制核心,外接8×8矩阵式LED,编写程序,使8×8矩阵式LED循环显示,时间间隔为1s。补充下列程序并仿真出结果。#include “reg51.h”#define uchar unsigned charunsigned char code tab=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char code dispcode38= ?;unsigned int count; / 定义计数变量
15、uchar ta, tb; void main(void) TMOD=0x01; / 设定定时器0工作方式1, 处于定时状态 TH0=(65536-2000)/256; TL0=(65536-2000)%256; TR0=1; / 启动定时器0 ET0=1; / 开放定时器0 中断 EA=1; / 允许全局中断 while(1) ; void t0(void) interrupt 1 using 0 ? 题目11用AT89S51作为控制核心,设计一个12翻一减1计数的程序,要求将下列程序补充完整,自行设计硬件电路图,并仿真出最终结果,即数码管先显示12间隔一定的时间减一显示数字,直到显示出0,
16、又回到12再开始显示。#include <reg51.h>#define uchar unsigned charuchar display_code=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;uchar time=12,0,0,0; /定义计数初值void delay(void) /延时uchar i;for(i=250;i>0;i-); void display() /显示程序?void calc() /计数程序time0-;if(time0=0)time0
17、=12;void main(void) /主函数uchar i;while(1)for(i=0;i<250;i+)display(); /先显示calc(); /再计算题目十二用AT89S51单片机作为控制核心,利用定时/计数器T0中断方式,工作在工作方式0状态下,通过P1.0引脚输出周期为2ms的方波,自行设计硬件电路图,并设计出源程序,仿真出结果。题目十三用AT89S51单片机作为控制核心,设计一个简易数字电子时钟,将下列程序补充完整,并作出仿真。#include<reg51.h> /头文件#define uchar unsigned charuchar display_code=0xC0,0xF9,0xA4,0xB0,0x99,0x92, 0x82,0xF8,0x80,0x90; /存放显示数字的编码uchar time=0,0,0,0; /定义数组,存放小时、分、秒的计数值 void delay05ms(void) /延时程序 uchar i; for(i=250;i>0;i-); void display()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024美团外卖店配送时效及服务质量合同3篇
- 2025年度体育用品代销及赛事赞助合同4篇
- 2025年度别墅庭院景观照明节能改造与维护合同3篇
- 2024玉石行业区块链技术应用与合作合同集锦3篇
- 2024版事业单位续签劳动合同申请书
- 2025年度物流运输代理服务合同标准范本4篇
- 2025年度智能电网用电安全出租房屋合同范本4篇
- 2025年分公司设立与市场开发合作协议书4篇
- 建筑垃圾再利用可行性研究报告x
- 2025年电子商务平台租赁续租服务协议3篇
- TD/T 1060-2021 自然资源分等定级通则(正式版)
- 人教版二年级下册口算题大全1000道可打印带答案
- 《创伤失血性休克中国急诊专家共识(2023)》解读
- 仓库智能化建设方案
- 海外市场开拓计划
- 2024年度国家社会科学基金项目课题指南
- 供应链组织架构与职能设置
- 幼儿数学益智图形连线题100题(含完整答案)
- 2024年九省联考新高考 数学试卷(含答案解析)
- 红色历史研学旅行课程设计
- 如何避免护理患者投诉
评论
0/150
提交评论