当前位置:首页 > 单片机并行IO口的应用实验
一、实验目的
1、熟悉Proteus软件和Keil软件的使用方法 。 2、熟悉单片机应用电路的设计方法 。
3、掌握单片机并行I/O口的直接应用方法 。 4、掌握单片机应用程序的设计和调试方法。 二、设计要求
1、用Proteus软件画出电路原理图。要求在P1.0至P1.7口线上分别接 LED0至LED7八个发光二极管,在P3.0口线上接一蜂鸣器。
2、编写程序:要求LED0至LED7以秒速率循环右移。 3、编写程序:要求LED0至LED7以秒速率循环左移。 4、编写程序:要求在灯移动的同时,蜂鸣器逐位报警。 三、实验程序流程框图和程序清单
延时程序流程框图:
延时程序入口设置循环体1的循环次数为设置循环体2的循环次数为设置循环体3的循环次数为判断循环体3是否到达循环次数Y执行循环体判断循环体2是否到达循环次数N执行循环体N执行循环体YN判断循环体1是否到达循环次数Y返回
...
实验程序流程框图:
开始
初始化#FE A,#FF P1,设置循环次数为七次(A) P1,延迟 左移一位P3.0清零 延迟 再将P3.0置1N判断是否循环7次YY设置循环次数为7次延迟,(A) P1,左移一位P3.0清零 延迟 再将P3.0置1N判断是否循环7次结束
...
汇编程序:
ORG 0000H
MOV A, #11111110B MOV P3, #0FFH
MAIN : MOV R0, #07H LOOP1: LCALL DELAY
MOV P3, A RL A CLR P2.0 LCALL SETB P2.0
DJNZ MOV LOOP2: LCALL MOV RR CLR P2.0 LCALL SETB P2.0
DJNZ LJMP DELAY: MOV DL1: MOV DL0: MOV DJNZ DJNZ DJNZ RET END
...
DELAY R0, R0, DELAY
P3, A A DELAY R0, MAIN R7, R6, R5, R5, R6, R7, LOOP1 #07H LOOP2 #17H #98H #46H $ DL0 DL1
C语言程序:
#include
unsigned char temp; int i; void delay(void); sbit speaker=P2^0; void main()
{ temp=0xfe; P3=temp; while(1) {
for(i=0;i<7;i++) {
temp=_crol_(temp,1); speaker=0; delay(); speaker=1;
delay(); P3=temp; }
for(i=0;i<7;i++) {
speaker=0;
temp=_cror_(temp,1); delay(); speaker=1;
delay(); P3=temp; } } }
void delay(void) {
unsigned char a,b,c; for(c=167;c>0;c--) for(b=171;b>0;b--) for(a=16;a>0;a--); _nop_; }
...
共分享92篇相关文档