




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、mcs-51单片机系统设计指导书一、 单片机开发系统应用初步 基本i/o口赋值1. 实验目的:a keil c软件对程序进行编译调试及烧录软件的使用方法。b 单片机基本i/o口的驱动方式、特点等。c 汇编语句的基本用法;对基本i/o口的赋值方法;程序的具体流程等。2实验设备使用:计算机一台、单片机实验箱一套、keli c软件一套。对p0口赋值跳转至主程序开始end3实验基本原理:(1)源程序及流程图:org 0000h ajmp main org 0030hmain: mov p0,#0fh jmp main end(2)电路原理图:4实验内容:a. 编写一程序,可实现p0口输出固定数据。b.
2、 改变输出端口,改变输出数据,观察实验现象。c. 通过数码管显示原理,结合本次实验,实现i/o口输出相应数据驱动数码管显示出特定字符。5实验步骤:(1) 基本步骤:a. 通过读程序,弄懂程序对哪个口进行赋初值,通过发光管亮或灭的情况反映出单片机输出数据的情况(注意区分数据的高低位)。b. 通过keil c软件对以上程序进行编译,正确后生成*.hex机器语言文件,随即打开烧录软件,将生成的*.hex文件烧录到单片机芯片中,完成后点击运行按钮便可脱机运行编写好的程序。c. 观察发光管亮灭情况,比较其与程序中所赋数据是否一致。d. 修改程序中的输出数据,重复以上编译烧录步骤,再次观察led发光情况是
3、否与数据对应。例: org 0000h ajmp main org 0030hmain: mov p0,#65h jmp main ende. 修改单片机输出数据的i/o端口(如改为p2口输出),观察其余端口是否能正确输出数据。例: org 0000h ajmp main org 0030hmain: mov p2,#0fh jmp main end(2)发挥部分:将i/o口通过8芯排线接至独立两位数码管处,通过i/o口赋值能使数码管显示出本人学号最后一位(注意数据高位统一用来控制数码管的a笔段,低位控制h笔段)。6实验报告要求:a 记录实验每一步骤的具体过程及实验现象。b 叙述实验步骤中发挥
4、部分程序的具体构思,同时将调试过程作详细记录。c 记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d 总结本次实验知识点及编程调试心得体会。7实验预习思考题:a 课前预习好编程的基本知识。程序的基本概念、*.asm、*.c、*.hex、*.uv2所表示的文件类型等。b 熟练掌握不同数据类型之间的相互转换,不同类型的数据在程序中的表示方法等。c 课前弄清楚单片机i/o口的基本驱动方式,理解何谓上拉及下拉方式,单片机驱动电流、灌入电流等概念。d 复习数码管的相关知识,弄清数码管需显示某个字符应如何对其进行控制等。e 读懂以下c语言程序:#include voi
5、d main(void) while(1) p0=0x0f; 提示:1. 由于单片机芯片烧录时需用到p1口,故在烧录过程中p1.5、p1.6、p1.7口不应有导线连接,否则易引起实验台初始化失败等错误(烧录完成后可以进行连接)。二、基本控制语句应用 简单广告牌霓虹灯设计1. 实验目的:a 理解左移rl、右移rr指令的功能。b 延时程序delay的具体执行过程、延时量控制等。c 掌握通过设置程序的跳转来实现程序循环的方法。2实验设备使用:计算机一台、单片机实验箱一套、keli c软件一套。开始p0及累加器a初始化化a内容赋予p0a内容左移跳转至loop结束3实验基本原理:(1)源程序及流程图:o
6、rg 0000h ajmp main org 0030hmain: mov p0,#00h mov a,#01hloop: mov p0,a rl a jmp loop end(2)电路原理图:4实验内容:a. 编写一程序,可实现数据左移并通过i/o口输出显示。b. 加入延时程序,观察实验现象是否有所变化。c. 实现左移及右移的循环输出。d 实现16盏led的移位显示。5实验步骤:(1) 基本步骤:a. 读懂程序,分析程序中哪一句为控制语句,起到什么控制作用以及最终实现何功能。b. 运行程序,观察结果是否与程序相符,如不相符请分析出现问题的原因所在。c. 试着向源程序中加入延时语句,观察现象是
7、否有所改变。 org 0000h ajmp main org 0030hmain: mov p0,#00h mov a,#01hloop: mov p0,a rl a acall delay jmp loop;*延时子程序*;delay:mov r2,#10hloop1:mov r1,#0ffhloop2:djnz r1,loop2 djnz r2,loop1 ret endd. 适当修改延时量,使led闪烁更为明显,易于肉眼观察。e. 适当修改程序,使程序最终实现一只led作流水状移动。(2)发挥部分: 能自左向右自右向左自左向右反复循环来控制一只发光管如反弹状移动。 能通过两组i/o口组合
8、实现16只led的流水灯效果。6实验报告要求:a 记录实验每一步骤的具体过程及实验现象。b 叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c 记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d 总结本次实验知识点及编程调试心得体会。7实验预习思考题:a 汇编语言控制语句应用。b 程序的循环、子程序调用、程序跳转等。c 单片机基本i/o口的驱动方式、特点等。d 读懂以下c语言程序:#include unsigned char i,c,d,temp=0xfe;void delay(void) unsigned char a,b; for(a=
9、0;a255;a+) for(b=0;b200;b+); void main(void) while(1) for(i=0;i8;i+) c=temp(8-i); p0=c|d; delay(); 三、单片机i/o口输入 独立按键识别1. 实验目的:a 掌握jb、cpl语句的具体使用方法。b 延时程序的具体执行过程、延时量控制等。c 掌握通过设置程序的跳转来执行相应语句的方法。d 体会按键抖动对单片机系统所造成的影响,以及如何通过软件延时去抖动方法来消除按键抖动。2实验设备使用:计算机一台、单片机实验箱一台、keli c软件一套。开始p0及累加器a初始化化a内容赋予p0判断是否有键按下结束对a
10、取反ny3实验基本原理:(1)源程序及流程图:org 0000h ajmp mainorg 0030h;*主程序*;main: mov p0,#0ffh mov a,#0ffhwait: mov p0,a jb p1.0,wait cpl a jmp wait end(2)电路原理图:4实验内容:a. 编写一程序,实现p1.0口作输入,同时输出内容随p1.0口状态变化而变化。b. 加入按键去抖动程序,观察实验结果与之前有何不同。c. 实现按键复用功能。5实验步骤:(1) 基本步骤:a. 读懂并理解程序,根据程序定义,将p1.0端口用单芯导线连接至单片机芯片下方的独立式键盘中(平时按键抬起时为高
11、电平,按下按键时为低电平),将p0口通过8芯排线连接至8路发光管中。b. 运行以上程序,同时反复按下连接至p1.0口的轻触开关,观察led发光情况。(2) 发挥部分: 由于按键抖动,使led的亮灭情况无法通过按键准确控制,试着通过前面一节的实验,在程序适当的位置加入延时程序,实现软件去抖动。 实现按键复用功能,即短按按键实现led亮灭控制;长按按键(如按下按键时间大于1秒时)进入led流水灯状态(可只需流动一遍便结束,然后再次等待按键动作)。6实验报告要求:a 记录实验每一步骤的具体过程及实验现象。b 叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c 记录发挥部分的完整程序,
12、同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d 总结本次实验知识点及编程调试心得体会。7实验预习思考题:a 独立式按键的连接。b 汇编语句对按键是否按下的具体判断、按键按下后所执行的跳转等。c 按键抖动对单片机所造成的影响以及如何消除抖动对单片机在执行程序上所产生的影响。d 读懂以下c语言程序:#include sbit key=p10;unsigned char a=0;void main(void) while(1) p0=a; if(key=0) a=a; 四、外部中断应用 按键计数器1. 实验目的:a 理解中断服务程序的入口地址并将其熟记。b 掌握中断控制字tcon、
13、ie、ip的具体含义及正确定义等。c 掌握中断服务程序的具体执行过程。d 体会按键抖动对单片机系统所造成的影响及如何消除按键抖动。2实验设备使用:计算机一台、单片机实验箱一台、keli c软件一套。开始外中断及数据初始化化死循环判断是否有中断结束对a累加计数ny3实验基本原理:(1)源程序及流程图:org 0000h ajmp main org 0003h ajmp deal org 0030hmain:setb ea setb ex0 setb it0 mov a,#00h mov p0,#0ffhwait:sjmp waitdeal:inc a cpl a mov p0,a cpl a r
14、eti end(2)电路原理图:4实验内容:a. 编写一程序,可实现按键执行外中断程序。b. 加入延时程序,避免中断的频繁执行。c. 实现计数值连加功能。5实验步骤:(1) 基本步骤:a. 阅读并理解程序,理解程序第三行的“org 0003h”及“main”程序中初始化部分的具体含义。b. 将单片机外中断(p3.2/int0)用单芯导线连接至独立式按键中,p0口通过8芯排线接至led。c. 运行程序,通过反复按下独立式按键,观察led显示结果。(2) 发挥部分: 通过以上实验结果得出:由于按键抖动,导致p3.2/int0口频繁出现高低变化的电平,致使单片机多次执行中断服务程序。能否在程序的适当
15、部分加入延时程序,成功解决按键抖动问题? 如何实现计数值连加功能(即按下按键不放,计数值不断自动累加)?6实验报告要求:a 记录实验每一步骤的具体过程及实验现象。b 叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c 记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d 总结本次实验知识点及编程调试心得体会。7实验预习思考题:a 单片机中断系统基本功能、中断控制字定义以及外中断触发方式等。b 中断服务程序入口地址、中断断点及中断返回。c 按键抖动对中断所造成的影响。d 读懂以下c语言程序:#include unsigned char a=0;
16、void int0(void) interrupt 0 using 0 a+;a=a;p0=a;a=a;void main(void) ea=1;ex0=1;it0=1; while(1);五、数码管显示基础 数显按键计数器1. 实验目的:a 掌握数码管与单片机的连接方法。b 掌握段代码表的推算及变址寻址的具体含义。c 掌握判断语句的具体用法。2实验设备使用:计算机一台、单片机实验箱一台、keli c软件一套。3实验基本原理:(1)源程序及流程图:开始外中断及数据初始化化循环显示r0内容判断是否有中断结束对r0累加计数nyorg 0000h ajmp main org 0003h ajmp d
17、eal org 0030hmain: setb ea setb ex0 setb it0 mov p0,#00h mov r0,#00h mov dptr,#tabdisplay:mov a,r0 movc a,a+dptr mov p0,a jmp displaydeal: inc r0 retitab: db 0fch,60h,0dah,0f2h,66h db 0b6h,0beh,0e0h,0feh,0f6h db 0eeh,3eh,9ch,7ah,9eh,8eh,00h end(2)电路原理图:4实验内容:a. 编写一程序,可实现按键按下次数的数码管显示。b. 加入延时程序,消除按键抖动
18、。c. 实现015计数。d 加入减计数功能。5实验步骤:(1) 基本步骤:a. 阅读并理解程序,重点掌握数码管“tab”段代码表以及段代码表查表过程。b. 根据程序定义,将p0口通过8芯排线连接至静态四位数码管的其中一位,注意数据高位控制a笔段;p3.2/int0端仍接独立式按键。c. 运行以上程序,通过按下按键观察数码管显示情况。d. 解决按键抖动问题,同时分析数码管显示完“f”字符后为何会出现乱码。(2) 发挥部分: 使程序实现015计数,即按下按键时能从09af显示,计数值大于等于15时停止加计数,显示保持为“f”。 加入减计数按键,即按下减计数按键计数值减一,同时减至零后停止减计数,显
19、示保持“0”。6实验报告要求:a 记录实验每一步骤的具体过程及实验现象。b 叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c 记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d 总结本次实验知识点及编程调试心得体会。7实验预习思考题:a 数码管内部结构、引脚定义及驱动。b 数码管段代码表具体含义。c 变址寻址在单片机查表中的意义所在。d 读懂以下c语言程序:#include unsigned char a=0;/*数码管代码表(共阳且高位接a笔段)*/unsigned char tab=0x03,0x9f,0x25,0x0d,0x99,0
20、x49,0x41,0x1f, 0x01,0x09,0x11,0xc1,0x63,0x85,0x61,0x71,0xff;void int0(void) interrupt 0 using 0 a+;p0=taba;void main(void) ea=1;ex0=1;it0=1; while(1);六、矩阵式键盘应用 矩阵键盘识别1. 实验目的:a 掌握矩阵式键盘的内部构架以及键盘与单片机之间的连接方式。b 掌握矩阵键盘扫描识别的编程方法。c 掌握c语言常用语句如if、for、switch、while的具体用法等。2实验设备使用:计算机一台、单片机实验箱一台、keli c软件一套。开始初始化各
21、列线循环置低电平判断p3口数据是否改变结束进入switch得出最终键值ny3实验基本原理:(1)源程序及流程图:#include unsigned char key;/按键延时程序void ys()unsigned char aaa,bbb; for(aaa=200;aaa0;aaa-) for(bbb=0;bbb200;bbb+); void main(void)key=0; while(1) p2=0x7f; if(p2!=0x7f) ys(); if(p2!=0x7f) switch(p2)case 0x77:key=7;break; case 0x7b:key=4;break; cas
22、e 0x7d:key=1;break; case 0x7e:key=0;break; p0=key; p2=0xbf; if(p2!=0xbf) ys(); if(p2!=0xbf) switch(p2) case 0xb7:key=8;break; case 0xbb:key=5;break; case 0xbd:key=2;break; case 0xbe:key=13;break; p0=key; p2=0xdf; if(p2!=0xdf) ys(); if(p2!=0xdf) switch(p2) case 0xd7:key=9;break; case 0xdb:key=6;break
23、; case 0xdd:key=3;break; case 0xde:key=14;break; p0=key; p2=0xef; if(p2!=0xef) ys(); if(p2!=0xef) switch(p2) case 0xe7:key=10;break; case 0xeb:key=11;break; case 0xed:key=12;break; case 0xee:key=15;break; p0=key; (2)电路原理图:a、基本:b、发挥4实验内容:a. 编写一程序,可实现p2口扫描矩阵式按键并判断键值,同时将键值通过p0输出显示。b. 将输出键值转换成数码管段代码,驱动数
24、码管直观地显示键值。5实验步骤:(1) 基本步骤:a. 掌握矩阵键盘的结构及硬件连接,根据程序定义将p0口接至8路led中,p2口接至44行列式键盘中,注意高低位(p2.0-c4,p2.7-r1)。b. 运行程序,按下44键盘,观察led显示情况(按键09顺序排列与计算机的数字小键盘相同)。(2) 发挥部分:通过加入数码管段代码表,使键值能通过数码管显示出来,依次对应09af。c语言中数码管段代码表可参考如下(共阴数码管,高位接a笔段):unsigned char tab=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0, 0xfe,0xf6,0xee,0x3e,
25、0x9c,0x7a,0x9e,0x8e,0x00;如要将key值通过查表赋予p0,可直接定义为:p0=tabkey。6实验报告要求:a 记录实验每一步骤的具体过程及实验现象。b 叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c 记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d 总结本次实验知识点及编程调试心得体会。7实验预习思考题:a 矩阵式键盘优点、具体结构、连接方式等。b 单片机c语言基础编程应用。七、单片机定时/计数器 秒脉冲定时器1. 实验目的:a 理解中断服务程序的入口地址及熟记各中断服务程序入口地址。b 掌握定时/计数控制字
26、tmod、tcon的具体含义及正确定义等。c 掌握不同工作方式下定时时间初值的具体算法。2实验设备使用:计算机一台、单片机实验箱一台、keli c软件一套。3实验基本原理:开始系统初始化进入死循环有无定时中断请求结束进入中断重装值并对p1.0取反ny(1)源程序及流程图:org 0000hljmp mainorg 000bhljmp intt0org 0030hmain: mov tmod,#01hmov tl0,#0b0hmov th0,#3chsetb easetb et0setb tr0sjmp $intt0: mov tl0,#0b0hmov th0,#3chcpl p1.0retie
27、nd(2)电路原理图:4实验内容:a. 编写一程序,通过启动定时/计数器可实现p1.0口输出精确稳定的脉冲信号。b. 改变定时器初值并通过软件计数方法精确得到1秒定时。c. 加入数码管显示,实现秒个位指示功能。d 加入判断语句,实现led计数值控制。5实验步骤:(1) 基本步骤:a. 根据程序定义将p1.0口通过单芯排线连接至led中。b. 运行以上程序,观察所连接led的闪烁情况。(2) 发挥部分: 精确定义一秒钟时间,并结合前面学过的知识,能通过数码管显示出秒钟的个位信息(注意秒钟个位为十进制,即09)(结合实验五电路图连接)。 控制一led,要求当秒个位内容小于3时点亮,大于等于时熄灭。
28、6实验报告要求:a 记录实验每一步骤的具体过程及实验现象。b 叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c 记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d 总结本次实验知识点及编程调试心得体会。7实验预习思考题:a 定时/计数器控制字定义。b 中断服务程序入口地址、中断断点及中断返回。c 单片机定时时长计算方法、间接定时获取长时间定时方法。八、单片机显示初步 数码管动态扫描1. 实验目的:a 通过实验体会人眼的视觉暂留效应,通过实践得出八位数码管动态扫描的时间间隔大于多少会产生闪烁问题。b 掌握定时/计数控制字tmod、tcon的
29、具体含义;不同工作方式下定时时间初值的具体算法等。c 掌握数码管动态扫描的硬件连接。2实验设备使用:计算机一台、单片机实验箱一台、keli c软件一套。3实验基本原理:(1)源程序:#include /*头文件*/unsigned char mg=9,ms=8,fg=7,bitdisplay=0; /*定义变量*/*数码管段代码表*/unsigned char tab=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x00;/*定时中断服务程序*/void timer0 (void
30、) interrupt 1 using 0th0=0x3c; tl0=0xb0;switch(bitdisplay)case 0:p0=tabmg;p2=0xfe;break;case 1:p0=tabms;p2=0xfd;break;case 2:p0=tabfg;p2=0xfb;break;bitdisplay+;if(bitdisplay=3)bitdisplay=0;/*主程序*/void main(void)tmod=0x01;th0=0x3c;tl0=0xb0;ea=1; et0=1; tr0=1;while(1);(2)电路原理图:4实验内容:a. 编写一程序,可实现p0口输出数
31、码管段代码,p2口输出位地址,组成数码管动态扫描输出。b. 灵活改变输出内容及位数。c. 灵活改变显示方式。5实验步骤:(1) 基本步骤:a. 掌握数码管动态扫描的硬件连接方法。根据程序定义,将p0口通过8芯排线连接至动态扫描显示区域中的左端(即标明ah的插针)(另注:该笔段插针中标注的ah顺序倒置,最顶端应更正为h段);p2口通过8芯排线连接至动态扫描区域右端(标有s1s8的插针,其中s1对应最右端数码管)。以上均需注意数据高低位之分。b. 运行以上程序,观察数码管显示情况,正常情况下应能以较慢速度(闪烁态)显示“789”。(2) 发挥部分: 在以上程序基础上,编写一程序,能正确稳定地显示出
32、本人学号(学号末8位数字,且显示时无闪烁问题)。 能实现数码滚动显示,即数字从最右端数码管逐渐显示开来,最后消失于最左端数码管。6实验报告要求:a 记录实验每一步骤的具体过程及实验现象。b 叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c 记录发挥部分的完整程序,同时将程序分块化,并且标注好每部分程序块功能及关键语句的作用。d 总结本次实验知识点及编程调试心得体会。7实验预习思考题:a 人眼有视觉暂留效应。b 数码管动态扫描的硬件连接特点。c 单片机c语言的具体应用。九、单片机串行口应用 数码管并行静态显示1. 实验目的:a 掌握单片机串行口收发数据的全过程。b 掌握串行口控
33、制寄存器scon的具体定义;数据发送过程中中断请求标志位的相应变化;欲发送的数据必须先送入缓冲区等。c 掌握74ls164芯片的工作原理、连接方法等。2实验设备使用:计算机一台、单片机实验箱一台、keli c软件一套。3实验基本原理:(1)源程序:#include /*数码管段代码表*/unsigned char tab=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x00;unsigned char mg=5,ms=0,bittime=20;/显示程序/void display
34、(void) ti=0; sbuf=tabms; while(!ti); ti=0; sbuf=tabmg; while(!ti);/定时中断服务程序void timer0 (void) interrupt 1 using 0 th0=0x3c; tl0=0xb0; bittime-; while(bittime=0) bittime=20;display(); /每经一秒调用一次显示程序/主程序void main(void) tmod=0x01;scon=0x00; th0=0x3c;tl0=0xb0; ea=1; et0=1; tr0=1; while(1);(2)电路原理图:4实验内容:
35、a. 编写一程序,实现单片机串行口输出串行信号,经串并转换驱动数码管显示。b. 实现两位秒信息显示。c. 加入判断语句实现满足特定条件时执行相应操作。5实验步骤:(1) 基本步骤:a. 读懂并理解程序,掌握串行口控制字的定义及子程序调用等相关知识。b. 掌握串行数据转换为并行数据的连接方法及74ls164串并转换芯片的具体用法。根据程序定义将单片机串行信号(p3.0/rxd、p3.1/txd)通过两单芯导线对应连接至实验台右侧串并转换模块中的rxd、txd插针中;74ls164芯片输出的并行信号(q1q8)通过8芯排线接至芯片上端的静态数码管笔段中(ah),注意q1对应a笔段。注意两位数码管需
36、用两根8芯排线分别进行连接。c. 运行以上程序,观察两数码管显示情况,正常情况下应能显示“05”。(2) 发挥部分: 通过加入若干语句,对mg及ms变量进行控制,实现每当一秒钟到来时mg自动加1;当mg10(即经历10秒钟)时mg自动清零,同时ms自动加1;当ms6(即经历60秒)时ms自动清零,最终实现标准时间的秒信息显示(mg及ms变量通过串行口送出,经串并转换后至数码管显示)。 当秒钟为“60”时清零的同时控制一led点亮3秒钟。6实验报告要求:a 记录实验每一步骤的具体过程及实验现象。b 叙述实验步骤中发挥部分程序的具体构思,同时将调试过程作详细记录。c 记录发挥部分的完整程序,同时将
37、程序分块化,并且标注好每部分程序块功能及关键语句的作用。d 总结本次实验知识点及编程调试心得体会。7实验预习思考题:a 串行口基本定义;rxd、txd信号实现串行数据发送。b 串行口控制寄存器scon具体定义;中断请求的标志位等。c 74ls164芯片串行数据转换为并行数据的硬件连接。十、单片机系统设计(一) 动态扫描数字钟1实验目的及要求:a 能够系统性地总结掌握的知识,将单元模块知识有机的结合在一起。b 能够充分协调好硬件与软件之间的相互结合,合理设计硬件电路。c 掌握单片机c语言判断语句、分支语句以及子程序调用等编程知识。2实验基本原理与功能:人眼具有视觉暂留效应,根据该效应,可通过数码
38、管逐个点亮扫描实现多位数字量的显示,最终可设计出具有动态扫描显示的数字钟。3. 实验主要技术指标:(1) 实现正确稳定地显示小时(两位数)、分钟(两位数)、秒钟(两位数),同时数码管应无闪烁问题。(2) 通过按键分别实现时、分信息的调整,方便用户对时间的校准。(3) 加入闹铃功能。4. 实验设计、调试:(1) 根据动态扫描电路图将电路正确连接。(2) 根据动态扫描原理编写正确的控制程序。(3) 程序运行后如出现闪烁问题应对程序加以调试并解决该问题。5设计举例: 设计并调试一数字钟,分别满足以下设计要求:(1) 实现正确稳定地显示小时(两位数)、分钟(两位数)、秒钟(两位数),同时数码管应无闪烁
39、问题。(2) 通过按键分别实现时、分信息的调整,方便用户对时间的校准。(3) 加入闹铃功能。6设计性实验任务或综合性实验任务:(1) 设计课题:设计并调试出一功能完善的动态扫描数字钟。(2) 已知条件:a 基本源程序单元:#include /*头文件*/unsigned char mg=0,ms=0,fg=0,bittime=0,bitdisplay=0; /*定义变量*/*数码管段代码表(共阴且高位对应a段)*/unsigned char tab=0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0, 0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x
40、9e,0x8e,0x00;/*定时中断服务程序*/void timer0 (void) interrupt 1 using 0 th0=0x3c; tl0=0xb0; switch(bitdisplay) case 0:p0=tabmg;p2=0xfe;break; case 1:p0=tabms;p2=0xfd;break; case 2:p0=tabfg;p2=0xfb;break; bitdisplay+;bittime+; if(bitdisplay=3)bitdisplay=0;/*主程序*/void main(void)tmod=0x01; th0=0x3c;tl0=0xb0; e
41、a=1; et0=1; tr0=1; while(1) if(bittime=20)bittime=0;mg+; b. 电路原理图:(仅画出三位数码管)(3) 性能指标要求:a实现正确稳定地显示小时(两位数)、分钟(两位数)、秒钟(两位数),同时数码管应无闪烁问题。b通过按键分别实现时、分信息的调整,方便用户对时间的校准。c加入闹铃功能。(4) 实验仪器设备:计算机一台、单片机实验箱一台、keli c软件一套。(5) 设计步骤与要求:a. 根据程序定义将p0口通过8芯排线接至数码管动态扫描笔段控制端;p2口接至位地址端。b. 运行以上程序,观察数码管显示情况,应能以闪烁状显示“000”、“00
42、1”,直至秒个位出现乱码(由于秒个位mg一直在不断地累加,超过16后在段代码表中无代码与之对应,故出现乱码)。c. 针对以上情况,请修改程序,最终实现正确稳定地显示小时(两位数)、分钟(两位数)、秒钟(两位数),同时数码管应无闪烁问题。d. 通过加入按键分别实现时、分信息的调整,方便用户对时间的校准。e. 加入闹铃功能。如在程序中设置闹铃时间为早“7:00”,然后运行程序,通过按键将当前时间设置为“6:59”,经过一分钟后点亮一led,表示当前闹铃已响起。十一、单片机系统设计(二) 16路数显竞赛抢答器1实验目的及要求:a 能够系统性地总结掌握的知识,将单元模块知识有机的结合在一起。b 能够充
43、分协调好硬件与软件之间的相互结合,合理设计硬件电路。c 掌握单片机c语言判断语句、分支语句以及子程序调用等编程知识。2实验基本原理与功能:根据4*4矩阵按键硬件连接特点,通过对每一列分别赋低电平,继而实现按键的状态扫描,一旦按键按下,便进入键值判断语句,实现按键的识别及键值显示功能。3. 实验主要技术指标:(1) 能够识别4*4按键的键值并通过数码管显示出来。(2) 可实现多功能键盘及按键复用功能。4. 实验设计、调试:(1) 根据4*4矩阵键盘电路图将电路正确连接。(2) 根据4*4矩阵键盘扫描原理编写正确的控制程序。(3) 程序运行后如出现按键抖动问题应对程序加以调试并解决该问题。5设计举
44、例: 设计并调试一抢答器,分别满足以下设计要求:(1) 同时为16支参赛队提供抢答功能,抢答成功后应能通过数码管显示出参赛队号数,同时点亮发光二极管示意抢答成功。(2) 加入独立开关,可启动10秒倒计时功能,通过数码管显示出倒计时时间(倒计时状态下抢答功能不起作用,反之亦然)。6设计性实验任务或综合性实验任务:(1) 设计课题:设计并调试出一功能完善的16路知识竞赛抢答器。(2) 已知条件:a、基本源程序单元:#include unsigned char key;void main(void)key=0; while(1) p2=0x7f; if(p2!=0x7f) switch(p2) ca
45、se 0x77:key=7;break; case 0x7b:key=4;break; case 0x7d:key=1;break; case 0x7e:key=0;break; p0=key; p2=0xbf; if(p2!=0xbf) switch(p2) case 0xb7:key=8;break; case 0xbb:key=5;break; case 0xbd:key=2;break; case 0xbe:key=13;break; p0=key; p2=0xdf; if(p2!=0xdf) switch(p2) case 0xd7:key=9;break; case 0xdb:ke
46、y=6;break; case 0xdd:key=3;break; case 0xde:key=14;break; p0=key; p2=0xef; if(p2!=0xef) switch(p2) case 0xe7:key=10;break; case 0xeb:key=11;break; case 0xed:key=12;break; case 0xee:key=15;break; p0=key; b、电路原理图:(3) 性能指标要求:a能够识别4*4按键的键值并通过数码管显示出来。b同时为16支参赛队提供抢答功能,抢答成功后应能通过数码管显示出参赛队号数,同时点亮发光二极管示意抢答成功。
47、c加入独立开关,可启动10秒倒计时功能,通过数码管显示出倒计时时间(倒计时状态下抢答功能不起作用,反之亦然)。(4) 实验仪器设备:计算机一台、单片机实验箱一台、keli c软件一套。(5) 设计步骤与要求:a. 掌握矩阵键盘的结构及硬件连接,根据程序定义将p0口接至数码管中,p2口接至44行列式键盘中,注意高低位(p2.0-c4,p2.7-r1)。b. 设计程序,使之能够同时为16支参赛队提供抢答功能,抢答成功后应能通过数码管显示出参赛队号数,同时点亮发光二极管示意抢答成功。c 加入独立开关,可启动10秒倒计时功能,通过数码管显示出倒计时时间(倒计时状态下抢答功能不起作用,反之亦然)。十二、单片机系统设计(三) 数字频率计1实验目的及要求:a 能够系统性地总结掌握的知识
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 IEC 61000-2-9:2025 EN Electromagnetic compatibility (EMC) - Part 2-9: Environment - Description of HEMP environment - Radiated disturbance
- 股权投资撤销及退出机制协议
- 车辆抵押贷款合同再融资协议范本
- 充电桩充电设施投资与股权合作合同
- 车床租赁与定制化刀具研发生产合同
- 特色火锅店房屋租赁及品牌推广合同
- 数据库管理及应用
- 2025年汽车维修协议
- 护理科室例会工作纲要
- 巨细胞病毒护理要点解析
- 认识职业:医生
- 国际音标卡片(打印版)
- JJF1059.1测量不确定度评定培训讲演稿
- 《父亲》音乐课件
- 方案伪装防护要求
- 跨境支付中的金融稳定问题
- 2024年中石油煤层气有限责任公司招聘笔试参考题库含答案解析
- 腾讯云安全运维
- 大数据技术综合实训-实验报告
- 家委会向学校申请征订资料申请书
- 人教版八年级《竹竿舞》评课稿
评论
0/150
提交评论