单片机接口实训

上传人:mg****85 文档编号:53903307 上传时间:2018-09-06 格式:PPT 页数:21 大小:1.41MB
返回 下载 相关 举报
单片机接口实训_第1页
第1页 / 共21页
单片机接口实训_第2页
第2页 / 共21页
单片机接口实训_第3页
第3页 / 共21页
单片机接口实训_第4页
第4页 / 共21页
单片机接口实训_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《单片机接口实训》由会员分享,可在线阅读,更多相关《单片机接口实训(21页珍藏版)》请在金锄头文库上搜索。

1、单片机接口实训,班级:XXX 姓名:XXX 日期:XXXXXXXX,实训项目,1.一个LED循环点亮 2.两个LED循环点亮 3.四个LED一起点亮 4.调节LED亮的快慢情况 5.碰头程序 6.外部中断(急救车与信号灯)程序 7.电子时钟程序,P1口输入/输出实验 实训要求与目的,1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮 2.学习P1口的使用方法 3.学习延时子程序的编写和使用,P1口输入/输出实验,实验说明:1.P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知当P1口用作输入口时,必须先对它置“1”。若不先对它置“1”,读入的数据是

2、不正确的。2.由于80C196系列CPU没有位操作,所以要对P1.0,P1.1进行与运算以判断该位为高还是低,然后再用与和或运算将P1.2,P1.3的相应位置高或低。3.8051延时子程序的延时计算问题,对于程序Delay:查询指令表可知MOV,DJNZ指令军需要两个机器周期,在6MHz晶振时,一个机器周期时间长短为12/6MHz,所以该程序执行时间为:(256255+2)2126261ms,P1口输入/输出实验,原理图:数据列表如下 灯 8 7 6 5 4 3 2 10 0 0 0 0 0 0 1 =10 0 0 0 0 0 1 1 =30 0 0 0 1 1 1 1 =151 0 0 0

3、0 0 0 1 =129 0 1 0 0 0 0 1 0 =660 0 1 0 0 1 0 0 =360 0 0 1 1 0 0 0 =240 0 0 1 1 0 0 0 =240 0 1 0 0 1 0 0 =360 1 0 0 0 0 1 0 =661 0 0 0 0 0 0 1 =129 0 表示不亮 1表示亮P1.0-LED0P1.1-LED1P1.2-LED2P1.3-LED3,一个LED依次循环亮的程序,#include 定义头文件void delay() 定义延时函数 unsigned int i; 定义一个无符号整形变量ifor (i=0; i20000; i+) 从0加到20

4、000 void main() 定义主函数 unsigned char index; 定义无符号字符型变量指数unsigned char LED; 定义无符号字符型变量LEDwhile (1) 定义循环LED = 1; LED只亮一个灯 将00000001赋值给for (index=0; index 8; index+) LED指数从0一直加1,加到7P1 = LED; 将LED赋给P1口LED = 1; LED左移一位delay(); 延时 ,两个LED循环点亮的程序,#include 定义头文件 void delay() 定义延时 unsigned int i; 定义一个无符号整型变量fo

5、r (i=0; i20000; i+) void main() 定义主函数 unsigned char index; 定义无符号字符型变量indexunsigned char LED; 定义无符号字符型变量LEDwhile (1) 定义循环 LED = 3; 将0000 0011赋给LEDfor (index=0; index 8; index+) P1 = LED 将LED赋给P1口LED = 1; LED左移一位delay(); 延时 ,四个LED一起点亮,#include 定义头文件; void delay() 延时 unsigned int I I加一的程序for (i=0; i200

6、00; i+) void main() 定义 主函数 unsigned char index; 定义无符号字符型指数unsigned char LED; 定义无符号字符型变量while (1) LED = 15; P1 = LED; 将0000 1111赋给LED 将LED赋给P1口P1=P1 ; 将P1按位取反delay(); 延时P1=P1; 将P1按位取反;delay(); 定义延时 ,四个LED一起亮程序,开始,设置初始值,数据输出,取反,延时,延时完成,是,否,调节LED亮的快慢情况,#include 定义头文件 void delay() 延时 unsigned int(中断指令)

7、i;for (i=0; i5000; i+) 调节时间 改变快慢 void main() 定义 主函数 unsigned char index; 定义无符号字符型指数unsigned char LED; 定义无符号字符型变量LEDwhile (1) LED = 1; 将0000 0001赋给LED for (index=0; index 8; index+) P1 = LED; 将LED赋给P1口LED = 1; LED左移一位delay(); 延时 ,调节时间调节LED显示快慢,碰头循环的程序,void delay() 定义延时 unsigned int(中断指令)i;for (i=0; i

8、20000; i+) void main() 定义主函数 unsigned char index;定义无符号字符型指数unsigned char LED;定义无符号字符型变量LEDwhile (1) LED=129; 将129赋给LEDP1=LED; 将LED赋给P1口;delay(); 延时LED=66; 将66赋给LEDP1=LED; 将LED赋给P1口delay(); 延时,LED=36; 将36赋给LEDP1=LED; 将LED赋给P1口delay(); 延时LED=24; 将24赋给LEDP1=LED; 将LED赋给P1口delay(); 延时LED=32; 将24赋给LEDP1=LED; 将LED赋给P1口delay();LED=66; 将66赋给LEDP1=LED;delay(); 延时LED=129; 将129赋给LEDP1=LED; 将LED赋给P1口delay() 延时,碰头循环的程序,开始,设置初始值,赋值,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

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