![51单片机最小系统工程训练指导书_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-6/18/9c14b22d-334b-4038-a0fe-b3daf3898c48/9c14b22d-334b-4038-a0fe-b3daf3898c481.gif)
![51单片机最小系统工程训练指导书_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-6/18/9c14b22d-334b-4038-a0fe-b3daf3898c48/9c14b22d-334b-4038-a0fe-b3daf3898c482.gif)
![51单片机最小系统工程训练指导书_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-6/18/9c14b22d-334b-4038-a0fe-b3daf3898c48/9c14b22d-334b-4038-a0fe-b3daf3898c483.gif)
![51单片机最小系统工程训练指导书_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-6/18/9c14b22d-334b-4038-a0fe-b3daf3898c48/9c14b22d-334b-4038-a0fe-b3daf3898c484.gif)
![51单片机最小系统工程训练指导书_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-6/18/9c14b22d-334b-4038-a0fe-b3daf3898c48/9c14b22d-334b-4038-a0fe-b3daf3898c485.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机实验板工 程 训 练 指 导 书物理与电子工程系目 录实验一 led闪烁灯设计-4实验二 模拟开关控制指示灯设计-7实验三 多路开关状态指示设计-10实验四 广告灯左、右移设计-14实验五 查询法设计广告灯-18实验六 报警产生器设计-21实验七 i/o并行口直接驱动led显示设计-25实验八 单键识别设计-29实验九 一键多功能按键识别设计-33实验十 00-99计数器设计-38实验十一 六十秒计时器设计-42实验十二 可预置可逆4位计数器设计-46实验十三 动态数码显示设计-51实验十四 44矩阵式键盘识别设计-55实验十五 定时计数器t0作定时应用设计(一)-64实验十六 定时计数
2、器t0作定时应用设计(二)-71实验十七 9.9秒跑马表设计-76实验十八 “嘀、嘀、”报警声设计-82实验十九 “叮咚”门铃设计-87实验二十 智能电子钟设计-92实验二十一 “新年好”音乐设计-102实验二十二电子琴设计-108实验二十三模拟计算器数字输入及显示设计-119实验二十四数字电压表设计-126实验二十五ds18b20数字温度计设计-131附录a实验板中模拟/数字转换器adc0804的参数及使用说明-139附录b 实验板中ds18b20智能温度控制器的参数及使用-141单片机实验板详细说明该单片机实验板设计巧妙,经过了严格的检查,可放心使用。由于考虑到众多的实验要在此单片机实验板
3、上完成,然而每个实验用到的单片机的i/o口不尽相同,所以设计时采用拨动拨码开关和替换跳线帽的位置来完成每个实验内容。在完成各个实验内容时,首先要看清楚实验电路原理图,然后按照实验内容给出的单片机实验板上的硬件连线、拨动拨码开关或替换跳线帽的位置来完成系统设计。检查无误后下载程序。由于每个程序都经过了单片机实验板的验证,证明程序没有问题。所以要是调不出来,肯定是硬件没有连好,再次检查直到完成实验。每做完一个实验后,把拨动拨码开关和跳线帽恢复到初始状态。一、拨码开关和跳线帽的初始化状态介绍如下:单片机实验板上有8联拨动拨码开关4个(jp1、jp2、jp3、jp4),2联拨动拨码开关1个(jp5),
4、跳线帽13个。 在初始化状态下,拨动拨码开关都处于紧靠数字的位置,此位置下的拨动拨码开关为不用状态。8排针接插件j3上的8个跳线帽要全部连接在标号为p0位置上。单排针接插件j4上的跳线帽要连接在oe和gnd的位置上。单排针接插件j5上的跳线帽连接在oe和gnd的位置上。单排针接插件j6上的跳线帽要连接在oe和vcc的位置。单排针接插件j7上的跳线帽要连接在cs和gnd的位置。双排针接插件j8上的跳线帽应该和j8上排插针相连。4个8联拨动拨码开关(jp1、jp2、jp3、jp4)应该全部所至下方。二、实验中具体使用介绍如下:(1)当用到发光二极管时,要把8联拨动拨码开关jp4拨到on状态。(2)
5、 当用到喇叭输出时,把2联拨动拨码开关jp5的1号拨动开关拨上去;当用ds18b20做测温时,把2联拨动拨码开关jp5的2号拨动开关拨上去。(3)当用到矩阵键盘输入时,把8联拨动拨码开关jp3的拨动开关全部拨上去。(4) 当用到拨动开关sw1sw4时,把8联拨动拨码开关jp2对应的拨动开关拨上去。(5) 当用到按键开关s18s21时,把8联拨动拨码开关jp2对应的拨动开关拨上去。(6) 当用8个动态数码管显示时,首先应该把单排针接插件j4的oe与vcc用跳线帽相连。同时8联拨动拨码开关jp1对应的拨动开关拨上去。8联拨动拨码开关jp1的s1s8分别对应三极管q2q9。(7)当用8个动态数码管输
6、入ah数码时,如果用到p0口,不用移动跳线帽;如果用到p1口,把8个跳线帽移到下面的标有p1的位置。(8) 当用p0口做数码管静态显示时,把单排针接插件j5的oe与vcc用跳线帽相连。(9) 当用p2口做数码管静态显示时,把单排针接插件j6的oe与gnd用跳线帽相连。总之,在用单片机编写简单程序时,汇编语言编写起来比较简单,但复杂的程序还是用c51编写起来比较简单。所以c51编程是必学的。这里基本上所有的实验程序都采用汇编和c51两种编程方法。有的实验还给出了两套设计方案,便于比较学习。实验一led闪烁灯设计一、实验目的1、初步了解单片机i/o口的简单控制。2、掌握单片机外围常用电路的固定接法
7、。二、设计原理利用单片机控制一个发光二极管,使此发光二极管间隔0.2秒亮、灭一次。三、参考电路图1.1 led闪烁灯外部电路原理图四、电路硬件说明如图1.1所示:在单片机的p1.0端口上通过8联拨动拨码开关jp4的相应拨码开关连接一个发光二极管d1。五、程序设计内容(1) 延时程序的设计方法 :单片机指令的执行时间是很短的,它的数量级为微秒级。在本程序设计中,要求led闪烁灯的闪烁时间间隔为0.2秒。相对于微秒来说,相差太大,所以在执行某一指令时,需要插入延时程序,来达到的要求。然而这样的延时程序是如何设计呢?下面具体介绍其原理:如图1.1所示,单片机所用的石英晶体为12mhz。因此,1个机器
8、周期为1微秒。延时10ms子程序机器周期 微秒mov r6,#20 1个 1d1:mov r7,#248 1个1+120djnz r7,$2个2248+220248djnz r6,d12个 220因此,上面的延时程序时间为10.478ms。 由以上可知,当r610、r7248时,延时时间为5ms;r620、r7248时,延时时间为10ms。通常所用延时时间以此为基本的计时单位。比如本实验要求为0.2秒200ms,所以用10msr5200ms,得到r520。延时子程序如下: delay:mov r5,#20 1d1:mov r6,#20 1+20d2:mov r7,#248 1+20+20(1+
9、20)djnz r7,$ 2248+202248+20(2248+202248)djnz r6,d2 220+22020djnz r5,d1 220ret 2上面的延时程序为0.220081s。(2)单片机的 p1.0端口的输出控制方法:如图1.1所示,根据发光二极管的单向导电性,当单片机的p1.0端口输出高电平,即p1.01时,发光二极管d1熄灭;当单片机的p1.0端口输出低电平,即p1.00时,发光二极管d1亮。可以使用setbp1.0指令使单片机的p1.0端口输出高电平,使用clrp1.0指令使单片机的p1.0端口输出低电平。六、程序流程图(如图1.2所示)图1.2 led闪烁灯设计流程
10、图七、汇编源程序org 0000h;系统复位ljmp start;转入主程序org 0003h;外部中断0reti;中断返回org 000bh;定时器0溢出中断retiorg 0013h;外部中断1retiorg 001bh;定时器1溢出中断retiorg 0023h;外部中断2retiorg 0100hstart: clr p1.0;和p1.0口接的二极管亮lcall delay200ms;延时0.2秒 setb p1.0;和p1.0口接的二极管灭 lcall delay200ms;延时0.2秒 ljmp start;循环delay200ms: mov r5,#20 ;延时子程序 d1: m
11、ov r6,#20 d2: mov r7,#248 djnz r7,$ djnz r6,d2 djnz r5,d1 retend八、c语言源程序#include sbit l1=p10; void delay02s(void)/延时子程序/ unsigned char i,j,k; for(i=20;i0;i-) for(j=20;j0;j-) for(k=248;k0;k-); void main(void) /主程序/ while(1) /进入循环/ l1=0; /指示灯亮/ delay02s();/延时0.2秒/ l1=1; /指示灯灭/ delay02s(); /延时0.2秒/ 九、注
12、意事项(1)用keil软件时,注意中文说明及注释。(2) 用汇编语言编写程序时不区分大小写,但用c语言编写程序时注意区分大小写。(3)汇编语言和c语言定义口的方式不同,如汇编语言为p1.0,p2.0,p3.0,而c语言为p1_0 ,p2_0 ,p3_0。实验二 模拟开关控制指示灯设计一、实验目的1、掌握单片机外围常用电路的固定接法。2、掌握单片机利用模拟开关控制指示灯的简单设计。二、设计原理如图2.1所示,用发光二极管监视模拟开关的状态。如果模拟开关合上,发光二极管点亮;如果模拟开关打开,发光二极管熄灭。三、参考电路图2.1 模拟开关控制指示灯原理图四、电路硬件说明如图2.1所示,模拟开关sw
13、1通过8联拨动拨码开关连接在单片机的p3.0端口上,用发光二极管d1(通过8联拨动拨码开关接在单片机的p1.0端口上)显示模拟开关sw1的状态。当模拟开关sw1断开时,单片机的p3.0端口为高电平;当模拟开关闭合时,单片机的p3.0端口为低电平。五、程序设计内容(1)开关状态的检测过程对于单片机来说,开关状态的检测是从单片机的p3.0端口输入信号,然而输入的信号只有高、低电平两种。当拨动开关sw1拨上去(输入高电平)时,拨动开关sw1断开;当拨动开关sw1拨下来(输入低电平)时,拨动开关sw1闭合。单片机可以采用jbbit或者jnbbit指令来完成对拨动开关状态的检测。(2)输出控制如图2.1
14、所示,当单片机的p1.0端口输出为高电平,即p1.01时,根据发光二极管的单向导电性可知,这时发光二极管d1熄灭;当单片机的p1.0端口输出为低电平,即p1.00时,发光二极管d1亮。可以使用setbp1.0指令使单片机的p1.0端口输出高电平,使用clrp1.0指令使单片机p1.0端口输出低电平。六、程序流程图(如图2.2所示)图2.2 模拟开关控制指示灯程序流程图七、汇编源程序org0000h;程序复位入口地址ljmpstart;跳到主程序org0003h;外部中断0入口地址reti;中断返回org000bh;定时器中断0入口地址reti;中断返回org0013h;外部中断1入口地址ret
15、i;中断返回org001bh;定时器中断1入口地址reti;中断返回org0023h;串行口中断入口地址reti;中断返回org002bh;定时器中断2入口地址reti;中断返回org0100hstart: jb p3.0,nex;p3.0为1,则跳nex clr p1.0;p1.0亮 sjmp startnex: setb p1.0;p1.0灭 sjmp startend八、c语言源程序#includemain()if(p3_0=1)p1_0=0;/p1_0亮/elsep1_0=1; /p1_0灭/九、注意事项 如果程序下载到实验板上后,要把8联拨动拨码开关jp2和jp4的相应开关合上去。实
16、验三 多路开关状态指示设计一、实验目的利用多路模拟开关进行指示灯控制。二、设计原理如图3.1所示,单片机的p1.0p1.3端口通过8联拨动拨码开关连接四个发光二极管d1d4。单片机的p3.0p3.3端口通过8联拨动拨码开关连接四个拨动开关sw1sw4。编程时将拨动开关的状态反映到发光二极管上(开关闭合,对应的灯亮,开关断开,对应的灯灭)。三、参考电路图3.1 多路开关状态指示电路原理图四、电路硬件说明如图3.1所示,拨动开关sw1、sw2、sw3、sw4通过8联拨动拨码开关jp2接连单片机的p3.0、p3.1、p3.2、p3.3端口。单片机的p1.0、p1.1、p1.2、p1.3口通过8联拨动
17、拨码开关jp4分别连接四个指示灯d1、d2、d3、d4。五、程序设计内容(1)开关状态检测拨动开关状态的检测,对于单片机来说,是一种输入关系,轮流检测每个开关的状态,根据每个开关的状态让相应的发光二极管指示显示。在编写程序时,可以使用 jbp3.x或jnbp3.x指令来完成指示控制。(2)单片机的输出控制根据拨动开关sw1、sw2、sw3、sw4的状态,经由发光二极管d1d4来指示显示。在编写程序时,可以用setbp1.x和clrp1.x指令来完成。六、程序流程图(如图3.2所示)图3.2 多路开关状态指示流程图七、汇编源程序org0000h;程序复位入口地址ljmpstart;跳到主程序or
18、g0003h;外部中断0入口地址reti;中断返回org000bh;定时器中断0入口地址reti;中断返回org0013h;外部中断1入口地址reti;中断返回org001bh;定时器中断1入口地址reti;中断返回org0023h;串行口中断入口地址reti;中断返回org0100hstart:lcallkaiguan;调用检测开关状态子程序ljmpstart;跳回继续检测kaiguan:jbp3.0,n1;判断p3.0是否按下clrp1.0;p3.0按下则亮p1.0sjmpm1;跳到 m1n1:setbp1.0;p3.0没有按下则灭p1.0m1:jbp3.1,n2;判断p3.1是否按下cl
19、rp1.1;p3.1按下则亮p1.1sjmpm2;跳到 m2n2:setbp1.1;p3.1没有按下则灭p1.1m2:jbp3.2,n3;判断p3.2是否按下clrp1.2;p3.2按下则亮p1.2sjmpm3;跳到 m3n3:setbp1.2;p3.2没有按下则灭p1.2m3:jbp3.3,n4;判断p3.3是否按下clrp1.3;p3.3按下则亮p1.3sjmpm4;跳到 m4n4:setbp1.3;p3.3没有按下则灭p1.3m4:ljmpkaiguan;跳回检测开关状态子程序进行循环ret;子程序返回end;结束八、c语言源程序#includemain()if(p3_0=0)p1_0=
20、0; elsep1_0=1; if(p3_1=0) p1_1=0; elsep1_1=1; if(p3_2=0)p1_2=0;elsep1_2=1; if(p3_3=0)p1_3=0; elsep1_3=1;九、注意事项(1)程序下载到实验板上后,要把8联拨动拨码开关jp2和jp4的相应按键合上去。(2)与8联拨动拨码开关jp4相连的指示灯是高电平亮,低电平灭。实验四 广告灯左、右移设计一、实验目的1.初步了解广告灯的移动设计。2.掌握循环移动的原理。二、设计原理如图4.1所示,八个发光二极管d1d8通过8联拨动拨码开关jp4分别连接在单片机的p1.0p1.7端口上,做单一灯的左移右移。如果单
21、片机的p1端口输出为“0”时,发光二极管亮,依次为p1.0p1.1p1.2p1.3p1.7p1.6p1.0亮,重复循环。三、参考电路图4.1 广告灯左、右移设计电路原理图四、电路硬件说明把“单片机系统”区域中的单片机的p1.0p1.7端口通过8联拨动拨码开关jp4连接到“八路发光二极管指示模块”区域中的d1d8端口上,要求:p1.0对应着d1,p1.1对应着d2,p1.7对应着d8。五、程序设计内容运用输出端口指令movp1,a或movp1,data,给累加器值或常数值,然后执行上述的指令,即可达到输出控制的动作。每次送出的数据是不同的,具体的数据如下表4.2所示表4.2 8个led循环显示真
22、值表p1.7 p1.6 p1.5 p1.4 p1.3 p1.2 p1.1 p1.0 说明 d8 d7 d6 d5 d4 d3 d2 d1 11111110 d1亮1111110 1d2亮111110 11d3亮11110 111d4亮1110 1111d5亮110 11111d6亮10 111111d7亮0 1111111d8亮六、程序流程图(如图4.3所示) 图4.3 广告灯左右移程序流程图七、汇编源程序org 0000h;系统复位ljmp start;转入主程序org 0003h;外部中断0reti;中断返回org 000bh;定时器0溢出中断retiorg 0013h;外部中断1reti
23、org 001bh;定时器1溢出中断retiorg 0023h;外部中断2retiorg 0100hstart:mov r2,#7 mov a,#0feh setb c ;给cy置1loop:mov p1,a lcall delay rlc a ;带进位左移djnz r2,loop ;r2减1不为0转到loopmov r2,#8 loop1:mov p1,a lcall delayrrc a ;带进位右移djnz r2,loop1 ;r2减1不为0转到loop1ljmp start delay:mov r5,#20;延时0.2秒子程序d1:mov r6,#20 d2:mov r7,#248 d
24、jnz r7,$ djnz r6,d2 djnz r5,d1 ret end 八、c语言源程序#include unsigned char i; unsigned char temp; unsigned char a,b; void delay(void) /延时子程序/ unsigned char m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-); void main(void) while(1) temp=0xfe; p1=temp; delay(); for(i=1;i8;i+) a=temp(8-i); /向右移8-i位/
25、p1=a|b; /a或b/ delay(); for(i=1;ii; b=temp(8-i); p1=a|b; delay(); 九、注意事项(1)程序下载到实验板上后,要把8联拨动拨码开关jp4的相应按键合上去。(2)用c语言编写程序,利用左移和右移指令时,移入单元的数为0。(3)在硬件电路中,发光二极管和电源之间必须加上合适的电阻。实验五 查询法设计广告灯一、实验目的1.熟悉广告灯的移动设计。2.掌握查询法在单片机编程中的使用。二、设计原理利用取表的方法,使单片机的p1端口做单一灯的变化:左移2次,右移2次,闪烁2次(间隔的时间为0.2秒)。三、参考电路图5.1 查询设计广告灯电路原理图四
26、、电路硬件说明在“单片机系统”区域中,把单片机的p1.0p1.7端口通过8联拨动拨码开关jp4连接到“八路发光二极管指示模块”区域中的d1d8端口上。要求:p1.0对应d1,p1.1对应d2,p1.7对应d8。五、程序设计内容在利用表格进行程序设计时,要用以下的指令来完成:(1) 利用movdptr,data16指令使数据指针寄存器指到数据表格的首地址。(2) 利用movca,adptr指令,根据累加器a的值再加上dptr的值,就可以使程序计数器pc指针指到表格内所需要取出的数据。因此,只要把控制码组建图5.2 查询法设计广告灯流程图成一个表格,利用movca,adptr做取控制码的操作,就可
27、方便地处理一些复杂的控制动作。 六、程序流程图(如图5.2所示)七、汇编源程序org 0000h;系统复位ljmp start;转入主程序org 0003h;外部中断0reti;中断返回org 000bh;定时器0溢出中断retiorg 0013h;外部中断1retiorg 001bh;定时器1溢出中断retiorg 0023h;外部中断2retiorg 0100hstart:mov dptr, #table ;把表格首地址给dptrloop:clra ;a赋0movc a,a+dptr;查表得值送给a中cjne a,#01h,loop1 ;比较a等于#01,程序结束;否则跳转sjmp sta
28、rt loop1:mov p1,a ;把a送入p1口lcall delay1 ;调用延时inc dptr ;dptr加1sjmp loop delay1:mov r3,#20 ;延时0.2s子程序delay:mov r4,#20 d1:mov r5,#248 djnz r5,$ djnz r4,d1 djnz r3,delay ret table:db 0feh,0fdh,0fbh,0f7h ;数据表格db 0efh,0dfh,0bfh,07fh db 0feh,0fdh,0fbh,0f7h db 0efh,0dfh,0bfh,07fh db 07fh,0bfh,0dfh,0efh db 0f
29、7h,0fbh,0fdh,0feh db 07fh,0bfh,0dfh,0efh db 0f7h,0fbh,0fdh,0feh db 00h, 0ffh,00h, 0ffh db 01h end 八、c语言源程序#include unsignedchar code table=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f, 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe, 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xf
30、e, 0x00,0xff,0x00,0xff, 0x01;/数据数组/ unsigned char i; /定义全局变量/void delay(void) /延时子程序/ unsigned char m,n,s; for(m=20;m0;m-) for(n=20;n0;n-) for(s=248;s0;s-); void main(void) while(1) /循环/ if(tablei!=0x01) /判断是否查完表格/ p1=tablei; i+; delay(); else i=0; 九、注意事项(1)利用c语言编写程序时,一定要注意合局变量和局部变量的定义。(2)利用汇编语言编写程序
31、时,注意16位数据指针dptr的用法。实验六 报警产生器设计一、实验目的掌握利用单片机产生音频信号的方法。二、设计原理利用单片机产生1khz的信号,并且让此信号响100ms;再利用单片机产生500hz的信号,并且让此信号响200ms。同时让这两个信号交替产生。通过单片机的p1.0端口输出1khz和500hz的音频信号驱动扬声器,作为报警信号。单片机的 p3.0端口通过8联拨动拨码开关连接一拨动开关(如sw1)进行控制。拨动开关闭合时报警器报警,断开时报警器停止报警。三、参考电路图6.1 报警产生器原理图四、电路硬件说明把单片机的p1.0端口连接到“音频放大模块”区域中的spk in端口上;p3
32、.0端口连接到“八路拨动开关”区域中的k1端口上,并在“音频放大模块”区域中的spk out端口上接上一个8欧的或者是16欧的喇叭。五、程序设计内容500hz信号周期为2ms,信号电平为每1ms取反1次,1khz的信号周期为1ms,信号电平每500us取反1次,以此来产生报警信号。六、程序流程图(如图6.2所示)图6.2 报警产生器流程图七、汇编源程序flagbit00horg0000hljmpstartorg0003hretiorg000bhretiorg0013hretiorg001bhretiorg0023hretiorg002bhreti;主程序;org0100hstart:lcall
33、baojing1lcallbaojing2ljmpstart;500hz报警信号程序;baojing1:movr2,#200dv:cplp1.0lcalldelay500lcalldelay500djnzr2,dvret;1khz报警信号程序;baojing2:movr2,#200dv1:cplp1.0lcalldelay500djnzr2,dv1ret;500us延时程序;delay500:movr7,#249loop:djnzr7,loopret;结束标志;end八、c语言源程序#include #include unsigned char count; void dely500(void
34、) /延时子程序/ unsigned char i; for(i=250;i0;i-) _nop_(); void main(void) while(1) /程序循环/ if(p3_0=0) /判断p3.0是否按下/ for(count=200;count0;count-) p1_0=p1_0; dely500(); for(count=200;count0;count-) p1_0=p1_0; dely500(); dely500(); 九、注意事项(1)程序下载后,一定要把8联拨动拨码开关jp5的第一个开关拨上去。(2)程序下载后,要把8联拨动拨码开关jp3拨下,8联拨动拨码开关jp2拨上
35、去。实验七 i/o并行口直接驱动led显示设计一、实验目的1.了解静态数码管的显示方法。2.掌握共阴极数码管和共阳极数码管的接法以及区别。二、设计原理如图7.1所示,利用单片机p0端口的p0.0p0.7连接到一个共阴数码管ds1的ah的笔段上,数码管的公共端接地。在数码管上循环显示09数字,显示时间间隔为0.2秒。三、参考电路图7.1 i/o并行口直接驱动led显示电路原理图四、电路硬件说明在“单片机系统”区域中,把单片机的p0.0p0.7端口连接到静态数码管ds1上的ah端口上;要求:p0.0与a相连,p0.1与b相连,p0.2与c相连,p0.7与h相连。五、程序设计内容(1)led数码显示
36、原理:led数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据发光二极管的连接形式,可分为共阴极型和共阳极型。led数码管的a-g七个发光二极管加正向电压导通发亮,加反向电压截止熄灭。不同亮暗的二极管组合形成不同的字形,这种组合称之为字形码。见表7.2为共阴极数码管的字形码表。(2)由于数码管显示数字09的字形码没有规律,只能采用查表的方式来完成所需要的要求。这样按着数字09的顺序,把每个数字的笔段代码按顺序排好并建立的表格如下所示:tabledb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh表7.2 共阴极的字形码表“0”3fh “8”7fh “1
37、”06h “9”6fh “2”5bh “a”77h “3”4fh “b”7ch “4”66h “c”39h “5”6dh “d”5eh “6”7dh “e”79h “7”07h “f”71h 六、程序流程图(如图7.3所示)图7.3 i/o并行口直接驱动led显示流程图七、汇编源程序org0000hljmpstartorg0003hretiorg000bhretiorg0013hretiorg001bhretiorg0023hretiorg002bhreti;主程序;org0100hstart:lcallxianshiljmpstart;显示程序;xianshi:movr1,#00hnext:
38、mova,r1movdptr,#tablemovca,a+dptrmovp0,alcalldelayincr1cjner1,#10,nextret;200ms延时程序;delay:movr5,#20d1:movr6,#20d2:movr7,#248djnzr7,$djnzr6,d2djnzr5,d1ret;数码译码表;table:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;结束标志;end八、c语言源程序#includeunsignedcharcodetable=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f
39、,0x6f;voiddelay200ms(void)/延时0.2秒的程序/unsignedchari,j,k;for(i=20;i0;i-)for(j=20;j0;j-)for(k=248;k0;k-);voidmain(void)unsignedchara;while(1)for(a=0;a10;a+)p0=tablea;/取表中的数给p0口/delay200ms();/每0.2秒显示一个数码/九、注意事项1.当数码管显示数码时,一定要分清共阴极和共阳极。2.下载程序后一定要把单排针接插件j5的跳线帽加到oe/vcc端。实验八 单键识别设计一、实验目的1.了解按键识别方法。2.掌握按键的消抖
40、方法。3.了解加法计数的原理。二、设计原理每按下一次按键开关s18,计数值加1,然后通过和单片机的p1端口相连的“八路发光二极管指示模块”区域中的d1d8显示出相应的二进制计数值。三、参考电路图8.1 单键识别电路原理图四、电路硬件说明(1)在“单片机系统”区域中,把单片机的p3.7端口通过8联拨动拨码开关jp2连接到“独立式键盘”区域中的s18端口上。(2)在“单片机系统”区域中,把单片机的p1.0p1.7端口通过8联拨动拨码开关jp4连接到“八路发光二极管指示模块”区域中的“d1d7”端口上;要求,p1.0连接发光二极管d1,p1.1连接发光二极管d2,p1.2连接发光二极管d3,p1.3
41、连接发光二极管d4,p1.4连接发光二极管d5,p1.5连接发光二极管d6,p1.6连接发光二极管d7,p1.7连接发光二极管d8。五、程序设计内容(1)作为一个按键,完整的过程是从没有按下到按下再到释放。也就是说,当按下一个按键时,某个命令只执行一次,然而在按键按下的过程中,不允许有干扰进来。因为,在按下的过程中,一旦有干扰过来,可能造成误触发过程,这不是所想要的。因此在按键按下的时候,就要把手动造成的干扰信号以及按键的机械接触等干扰信号滤除掉。一般情况下,可以采用电容来滤除掉这些干扰信号,但实际上,这会增加硬件成本及硬件电路的体积,因此采用软件滤波的方法去除这些干扰信号。一般情况下,一个按键按下的时候,总是在按下的时刻存在着一定的干扰信号,按下之后就基本上进入了稳定的状态。具体的一个按键从按下到释放的全过程的信号图如下图8.2所示:图8.2 干扰信号示意图从图中可以看出,在程序设计时,从按键被识别按下之后,延时5ms以上,从而避开了干扰信号区域。再来检测一次,看按键是否真得已经按下,若真得已经按下,这时肯定输出为低电平。如果这时检测到的是高电平,证明刚才是由干扰信号引起的误触发,cpu就认为是误触发信号而舍弃这次的按键识别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国木材加工行业市场现状及投资态势分析报告(智研咨询)
- 《计算机网络基础与应用(第三版)》 课件 项目九 服务器操作系统
- 模型16、电场模型 (原卷版)-2025版高考物理解题技巧与模型讲义
- 二零二五年度门面铺面转租合同模板创新版
- 消化内科的病例分析课件
- 《信号与系统资料》课件
- 《粥天粥地》课件
- 《幼儿体育游戏》课件
- 历史外交事业的发展课件人教
- 2.2 基因在染色体上 【知识精研】高一下学期生物人教版必修2
- 2021年公务员国考《申论》真题(副省级)及参考答案(两套答案)
- 《钢铁是怎样炼成的》读书分享 课件
- 智能蓄电池远程核容系统运维管理指导意见
- 2025年日历( 每2个月一张打印版)
- 2024年全国执业兽医考试真题及答案解析
- 社区成人血脂管理中国专家共识(2024年)
- 广东省2024年普通高中学业水平合格性考试语文仿真模拟卷01(解析版)
- 信息科技重大版 七年级上册 互联网应用与创新 第1单元 单元教学设计 互联网时代
- CR200J动力集中动车组拖车制动系统讲解
- 2024年湖南高速铁路职业技术学院单招职业适应性测试题库参考答案
- 肾性高血压的护理
评论
0/150
提交评论