实验设备:Keil4
PC
实验内容与具体要求:
掌握通用I/O口的初始化及使用。
掌握单片机P5口驱动LED。当端口为低电平时,点亮LED,当端口为高电平时LED熄灭。
依次实现以下显示模式:
(1) LED0-LED3亮,LED4-LED7灭;LED0-LED3灭,LED4-LED7亮;
(2) 点亮非连续2个发光管(如:LED0亮,LED1灭,LED2亮)右循环;
(3) 点亮非连续2个发光管(如:LED0亮,LED1灭,LED2亮)左循环;
(4) 单数LED与双数LED礁体点亮4次。
LED与P5口对应关系:
LED0-P5.0;
LED1-P5.1;
LED2-P5.2;
LED3-P5.3;
LED4-P5.4;
LED5-P5.5;
LED6-P5.6;
LED7-P5.7;
本次实验使用的语言是c
具体代码实现
#include"c8051f020.h"
void stay(unsigned int x) //延时函数
{unsigned int i,j;for(i=1;i<x;i++)for(j=1;j<110;j++);}void show1(){unsigned int i;for(i=1;i<,=6;i++){P5=0x0F;//八个二极管状态00001111stay(500);P5=0xF0;//八个二极管状态11110000stay(500);}}void show2(){unsigned char a;int i;a=0x5F;//八个二极管状态01011111for(i=0;i<=4;i++){P5=a;stay(500);a=_cror_(a,1);//左移函数,每次循环向左移一位}}void show3(){unsigned char a;int i;a=0xFa;for(i=0;i<=5;i++){P5=a;stay(500);a=_crol_(a,1);//右移函数,每次循环向右移一位}}void show4(){unsigned int i;for(i=1;i<=5;i++){P5=0x55;//八个二极管状态010110101stay(500);P5=0xaa;//八个二极管状态10101010stay(500);}}void main(){ OSCXCN=0X95;//启用外部晶振P74OUT=0x0c;WDTCN=0xDE;//WDTCN=0xAD;//关闭看门狗show1();//调用函数1show2();//调用函数2show3();//调用函数3show4();//调用函数4}
本文发布于:2024-02-01 01:29:29,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170672216932854.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |