发光二极管流水灯实验

上传人:M****1 文档编号:487795394 上传时间:2023-08-14 格式:DOC 页数:11 大小:577.50KB
返回 下载 相关 举报
发光二极管流水灯实验_第1页
第1页 / 共11页
发光二极管流水灯实验_第2页
第2页 / 共11页
发光二极管流水灯实验_第3页
第3页 / 共11页
发光二极管流水灯实验_第4页
第4页 / 共11页
发光二极管流水灯实验_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《发光二极管流水灯实验》由会员分享,可在线阅读,更多相关《发光二极管流水灯实验(11页珍藏版)》请在金锄头文库上搜索。

1、-实验一 发光二极管流水灯实验一、实验目的:1.通过AT89C51单片机控制8个发光二极管,八个发光二极管分别接在单片机的P0.0P0.7接口上,输出0时,发光二极管亮。开场时P0.0P0.1.P0.7,实现亮点以1HZ频率循环移动。2.用PROTEUS 设计,仿真以AT89C51为核心的发光二极管流水灯实验装置。3.掌握发光二极管的控制方法。二、PROTEUS电路设计:三、程序局部#includesbit control = P37;void delay(int z)int *,y;for(*=z;*0;*-)for(y=110;y0;y-);void main()int i,tmp;con

2、trol = 0;P0 = 0*ef;delay(1000);for(i=1;i1)+ 0*80;delay(1000);实验二 开关控制LED数码管实验一、实验目的:1.通过AT89C51读入4位开关K1、K2、K3、K4的输入状态,并按照二进制编码关系0-F输出到数码管显示。如K4K3K2K1全部按下,则显示F;假设只有K2按下,则显示2。2.掌握LED数码管的静态显示。3.掌握I/O口的控制方法。二、PROTEUS电路设计:三、程序局部#includeunsigned char table=0*C0,0*F9,0*A4,0*B0,0*99,0*92,0*82,0*F8,0*80,0*90

3、,0*88,0*83,0*C6,0*A1,0*86,0*8E,;unsigned char KEY;void main()while(1)KEY = P2;switch(KEY)case 0*ff:P0 = table0;break;case 0*fe:P0 = table1;break;case 0*fd:P0 = table2;break;case 0*fc:P0 = table3;break;case 0*fb:P0 = table4;break;case 0*fa:P0 = table5;break;case 0*f9:P0 = table6;break;case 0*f8:P0 =

4、table7;break;case 0*f7:P0 = table8;break;case 0*f6:P0 = table9;break;case 0*f5:P0 = table10;break;case 0*f4:P0 = table11;break;case 0*f3:P0 = table12;break;case 0*f2:P0 = table13;break;case 0*f1:P0 = table14;break;case 0*f0:P0 = table15;break;default :break;实验三 外中断优先级实验一、实验目的:1.理解单片机中断优先级和优先权。2.用PRO

5、TEUS 设计,仿真基于AT89C51单片机的中断优先级实验。3.掌握中断编程方法。单片机主程序控制P0口数码管循环显示08;外中断0、外中断1发生时分别在P2口、P1口依次显示08。通过实验可演示高优先级可中断低优先级,但低优先级的中断请求不能中断高优先级。二、PROTEUS电路设计:三、程序局部#includeunsigned char code table=0*C0,0*F9,0*A4,0*B0,0*99,0*92,0*82,0*F8,0*80;/ 共阳数码管的段码void delay(int z) /延时子程序,大约1msint *,y;for(*=110;*0;*-)for(y=z;

6、y0;y-);int i0=0,i1=0;/ 用于中断0,1显示数码管的变量void main()int i;E*0 = 1;/开外部中断0E*1 = 1;/开外部中断1IT0 = 1;IT1 = 1;P*0 = 1;P*1 = 0;EA = 1;/开总中断while(1)for(i=0;i9;i+)/P0 循环显示08P0 = tablei;delay(200);void int0()interrupt 0 / 外部中断0优先级高于外部中断1 ,中断号为 0for(i0=0;i09;i0+) /显示08 P2 = tablei0;delay(200); void int1()interrup

7、t 2 /外部中断1,中断号为2for(i1=0;i19;i1+) /显示08 P1 = tablei1;delay(200);实验四 60S倒计时实验一、实验目的:1.通过AT89C51的定时器实现60S倒计时,显示采用两位数码管动态显示。2.用PROTEUS 设计,仿真基于AT89C51单片机的60S倒计时实验。二、PROTEUS电路设计:三、程序局部#include sbit GE = P21; sbit SHI = P20; int count = 0,number = 60; unsigned char code table=0*C0,0*F9,0*A4,0*B0,0*99,0*92

8、,0*82,0*F8, 0*80,0*90,0*88,0*83,0*C6,0*A1,0*86,0*8E; void delay(int z); void display(); void main() EA = 1; ET0 = 1; TMOD = 0*01; TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; TR0 = 1; while(1) display(); void delay(int z) int *,y; for(*=110;*0;*-) for(y=z;y0;y-); void display() SHI = 0; GE = 1;

9、P1 = tablenumber%10;delay(10);GE = 0;SHI = 1;P1 = tablenumber/10;delay(10); void time_count() interrupt 1 TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; count+; if(count = 20) count = 0; number-;if(number 0)number = 59; 实验五 矩阵式键盘的设计一、实验目的:1.掌握键盘设计中按键识别的原则。2.用PROTEUS 设计一个常规44的矩阵键盘。3.键盘编码规则自己定义,分别对

10、应数字键0-9、A-F,按下对应的按键显示在数码管上显示对应的数据。二、PROTEUS电路设计:三、程序局部#includesbit show_1 = P10;sbit show_2 = P11;sbit show_3 = P12;sbit show_4 = P13;unsigned char j,k,temp,key;unsigned char code table=0*C0,0*F9,0*A4,0*B0,0*99,0*92,0*82,0*F8,0*80,0*90,0*88,0*83,0*C6,0*A1,0*86,0*8E,;void delay(unsigned char i);void

11、display(unsigned char num);void key_scan();void main() while(1) key_scan(); display(key); void delay(unsigned char i) for(j=i;j0;j-) for(k=110;k0;k-);void display(unsigned char num) P0=tablenum; show_4 = 0;void key_scan()P2=0*ef; temp=P2; temp=temp&0*0f; if(temp!=0*0f) delay(10); if(temp!=0*0f) temp=P2; switch(temp) case 0*e7: key=0; break; case 0*eb: key=1; break; case 0*ed: key=2; break; case 0*ee: key=3; break; while(temp!=0*0f) temp=P2; temp=temp&0*0f; display(key); P2=0*df; temp=P2; temp=temp&0*0f; if(temp!=0*0f) delay(10); if(temp!=0*0f) temp=P2; switch(temp) case 0*d7: key=4;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号