文档详情

单片机上机试题讲述.doc

发布:2017-03-23约7.26千字共13页下载文档
文本预览下载声明
《单片机应用技术》上机试题 题目一: 用外中断0控制P1口8位LED循环点亮,即按下一次按键,点亮一个灯,再按下按键左移一位点亮,如此循环。设计并仿真出结果。 题目二: 自行设计出一组数据,并让P2口的8位LED按照设计的这组数据顺序进行花样点亮,间隔0.2秒,仿真出结果。 题目三: 自行设计一个按键上具有三个功能,即第一次按下按键时,第一个灯点亮;第二次按下按键,第二个灯点亮;第三次按下按键,第三个灯点亮;第四次按下按键,又是第一个灯点亮,如此循环,仿真出结果。 题目四: 用P2口作输出口,接一位LED数码管,编写程序,使数码管循环显示0~9这十个数,并用定时器T0实现数码管显示间隔0.5秒,设计并仿真出结果。 题目五: 用P2口作输出口,接一个8位的数码管排,采用动态显示的方法,编写程序,是这个数码管排同时显示0~7这八个数,设计并仿真出结果。 题目六: 用单片机U1通过串行口TXD端将一段流水灯控制码以串行口工作方式一发送至单片机U2的RXD,U2再利用该段控制码流水点亮其P1口上的8位LED。设计并编写程序,其中发送程序已知,根据发送程序编写出接收程序,仿真出结果。 数据发送程序: #includereg51.h //包含单片机寄存器的头文件 Unsigned char code Tab[ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //流水灯控制码,该数组被定义为全局变量 /***************************************************** 函数功能:向PC发送一个字节数据 ***************************************************/ void Send(unsigned char dat) { SBUF=dat; while(TI==0) ; TI=0; } /************************************************************** 函数功能:延时约150ms **************************************************************/ void delay(void) { unsigned char m,n; for(m=0;m200;m++) for(n=0;n250;n++) ; } /***************************************************** 函数功能:主函数 ***************************************************/ void main(void) { unsigned char i; TMOD=0x20; //TMOD=0010 0000B,定时器T1工作于方式2 SCON=0x40; //SCON=0100 0000B,串口工作方式1 PCON=0x00; //PCON=0000 0000B,波特率9600 TH1=0xfd; //根据规定给定时器T1赋初值 TL1=0xfd; //根据规定给定时器T1赋初值 TR1=1; //启动定时器T1 while(1) { for(i=0;i8;i++) //模拟检测数据 { Send(Tab[i]); //发送数据i delay(); //每150ms发送一次检测数据 } } } 题目7 数码管显示4*4键盘矩阵按键,编程实现数码管显示按键的键值0~F。采用AT89S51单片机最小系统,P3口外接矩阵式键盘接口电路,P1口外接共阴型七段数码管,如图所示。电路中共有16个按键,按4×4的矩阵式排列,键号依次为0~F。单片机的P3.0~P3.3为输出口,连接4条列线;P3.4~P3.7为输入口,连接4条行线。将下列程序补充完整,并仿真出结果。 #include reg51.h? #define uchar unsigned char #define uint unsigned int uchar key; unsigned char code disp_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,
显示全部
相似文档