发光二极管流水灯实验(17页).doc

上传人:1595****071 文档编号:35635642 上传时间:2022-08-22 格式:DOC 页数:17 大小:1.95MB
返回 下载 相关 举报
发光二极管流水灯实验(17页).doc_第1页
第1页 / 共17页
发光二极管流水灯实验(17页).doc_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《发光二极管流水灯实验(17页).doc》由会员分享,可在线阅读,更多相关《发光二极管流水灯实验(17页).doc(17页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

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 x,y;for(x=z;x0;x-)for(y=110;y0;y-);void main()int i,tmp;c

2、ontrol = 0;P0 = 0xef;delay(1000);for(i=1;i1)+ 0x80;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=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0

3、x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,;unsigned char KEY;void main()while(1)KEY = P2;switch(KEY)case 0xff:P0 = table0;break;case 0xfe:P0 = table1;break;case 0xfd:P0 = table2;break;case 0xfc:P0 = table3;break;case 0xfb:P0 = table4;break;case 0xfa:P0 = table5;break;case 0xf9:P0 = table6;break;case 0xf8:P0

4、 = table7;break;case 0xf7:P0 = table8;break;case 0xf6:P0 = table9;break;case 0xf5:P0 = table10;break;case 0xf4:P0 = table11;break;case 0xf3:P0 = table12;break;case 0xf2:P0 = table13;break;case 0xf1:P0 = table14;break;case 0xf0:P0 = table15;break;default :break;实验三 外中断优先级实验一、实验目的:1.理解单片机中断优先级和优先权。2.用

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

6、=z;y0;y-);int i0=0,i1=0;/ 用于中断0,1显示数码管的变量void main()int i;EX0 = 1;/开外部中断0EX1 = 1;/开外部中断1IT0 = 1;IT1 = 1;PX0 = 1;PX1 = 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()inter

7、rupt 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=0xC0,0xF9,0xA4,0xB0,0x99,0

8、x92,0x82,0xF8, 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E; void delay(int z); void display(); void main() EA = 1; ET0 = 1; TMOD = 0X01; TH0 = (65536-50000)/256; TL0 = (65536-50000)%256; TR0 = 1; while(1) display(); void delay(int z) int x,y; for(x=110;x0;x-) for(y=z;y0;y-); void display() SHI = 0; GE =

9、 1;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=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,;void delay(unsigned char i);vo

11、id 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=0xef; temp=P2; temp=temp&0x0f; if(temp!=0x0f) delay(10); if(temp!=0x0f) t

12、emp=P2; switch(temp) case 0xe7: key=0; break; case 0xeb: key=1; break; case 0xed: key=2; break; case 0xee: key=3; break; while(temp!=0x0f) temp=P2; temp=temp&0x0f; display(key); P2=0xdf; temp=P2; temp=temp&0x0f; if(temp!=0x0f) delay(10); if(temp!=0x0f) temp=P2; switch(temp) case 0xd7: key=4; break;

13、case 0xdb: key=5; break; case 0xdd: key=6; break; case 0xde: key=7; break; while(temp!=0x0f) temp=P2; temp=temp&0x0f; display(key); P2=0xbf; temp=P2; temp=temp&0x0f; if(temp!=0x0f) delay(10); if(temp!=0x0f) temp=P2; switch(temp) case 0xb7: key=8; break; case 0xbb: key=9; break; case 0xbd: key=10; br

14、eak; case 0xbe: key=11; break; while(temp!=0x0f) temp=P2; temp=temp&0x0f; display(key); P2=0x7f; temp=P2; temp=temp&0x0f; if(temp!=0x0f) delay(10); if(temp!=0x0f) temp=P2; switch(temp) case 0x77: key=12; break; case 0x7b: key=13; break; case 0x7d: key=14; break; case 0x7e: key=15; break; while(temp!

15、=0x0f) temp=P2; temp=temp&0x0f; display(key); 实验六 AD转换程序设计一、实验目的:1.掌握转换器ADC0809的使用。2.用PROTEUS 设计,仿真基于AT89C51单片机的A/D转换实验。3.通过改变电位器的值改变模拟量的输入,经转换为数字量在LED上显示,比对模拟量和数字量的关系。二、PROTEUS电路设计:三、程序部分#includesbit OE = P31;sbit START = P33;sbit NUM_1 = P34;sbit NUM_2 = P35;sbit NUM_3 = P36;sbit NUM_4 = P37;sbit

16、dp = P17;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned int date;void show();void delay(int z)int x,y;for(x=z;x0;x-)for(y=110;y0;y-); void main()EX0 = 1;IT0 = 1;EA = 1; START = 0;START = 1;START = 0;while(1);void over() interrupt 0O

17、E = 1;date = P0;OE = 0;show();START = 0;START = 1;START = 0;void show()NUM_3 = 1;NUM_2 = 1;P1=tabledate/51;dp = 1;NUM_1 = 0;delay(5);NUM_1 = 1;P1=tabledate%51*100/51/10;NUM_2 = 0;delay(5);NUM_2 = 1;P1=tabledate%51*100/51%10;NUM_3 = 0;delay(5);实验七 双机通信实验一、实验目的:1.掌握单片机串口通信程序的设计。2.了接RS232接口通信的特点。3.双机通信

18、:分别把接收到的对方通过逻辑开关输入的信息在本地数码管上显示,如下图甲机的逻辑开关数据为81H,乙机通过串口接收该数据并数码关管显示,而甲机显示乙机发送的数据88H。二、PROTEUS电路设计:三、程序部分#includevoid init()TMOD = 0X20;/定时器1方式2TH1 = 0XFD;TL1 = 0XFD;/装入初值TR1 = 1;/启动定时器SM0 = 0;SM1 = 1; /设置方式1TI = 0;RI = 0;ES = 1; /打开串口中断EA = 1; /打开总中断ES = 1; /打开串口中断REN = 1; /接收使能SBUF = P1;void main()init();while(1);void serial() interrupt 4 if(RI)RI = 0; P0 = SBUF; / 从缓冲区中把接收的字符放入c中 if(TI)TI = 0;SBUF = P1;-第 17 页-

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

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com