PIC入门1,跑马灯和数码管显示实验

发布者:世界因你而精彩最新更新时间:2016-10-31 来源: eefocus关键字:PIC入门  跑马灯  数码管显示 手机看文章 扫描二维码
随时随地手机看文章
我使用的是爱晶3ePIC实验板,以下都是自己写的程序,只是为了纪念和学习交流使用,别无它意。在我的

 相册里有板子的原理图。

跑马灯实验:

程序:

//适合3epic实验板,是跑马灯程序
#include
unsigned int i;
//主函数
main()
{
 TRISD=0X00; //D口为输出模式,接LED的正极
 TRISE=0X00; //E口为输出输出模式,LED使能,接LED的负极  
while(1)   
 {
  PORTE=0X00;
  PORTD=0X01;    //点亮第一个LED
  for(i=0;i<50000;i++); //延时

  PORTD=0X02;    //点亮第二个LED
  for(i=0;i<50000;i++);
  
  PORTD=0X04;
  for(i=0;i<50000;i++);

  PORTD=0X08;
  for(i=0;i<50000;i++);

  PORTD=0X10;
  for(i=0;i<50000;i++);

  PORTD=0X20;
  for(i=0;i<50000;i++);

  PORTD=0X40;
  for(i=0;i<50000;i++);

  PORTD=0X80;
  for(i=0;i<50000;i++);
       
 }
}
数码显示实验:

程序:

//适合3epic实验板,是LED显示数据实验
#include  
#include       
volatile  unsigned  char  data;
static volatile int table[]={
0X3F,0X06,0X5B,0X4F,
0X66,0X6D,0X7D,0X07,
0X7F,0X6F,0X77,0X7C,
0X39,0X5E,0X79,0X71};
volatile  unsigned  char  data;
//主函数
main()
{
 unsigned i,a;
 TRISB=0x00;  //段选控制为输出
 TRISD=0x00;  //位选控制位输出
 while(1)
  {
  for(i=0;i<16;i++)
   {
    PORTB=0xE0;   //段选
   data=table[i];  
   PORTD=data;   //位选
   for(a=0;a<50000;a++);  //延时
   
   }  
  }
}

单键控制LED灯。

程序:

//适合3ePIC实验板,单按键控制一个LED灯
#include  
#include   
//系统初始化
void initial()
{
 TRISE=0x00;  //E口为输出
 TRISB=0xFF;  //B口为输入
 TRISD=0x00;  //D口为输出
}

//主函数
main()
{
  initial();
  PORTE=0x00;  //控制LED灯的负极
 while (1)
 {
 if(RB0==0)   //如果sw7按下,则LED0亮
  PORTD=0x01;
 else
  PORTD=0x00;  //没有按键按下,LED0灭
 }
}

键盘控制数码管实验:

因为没有加去键抖动,所以编的不是很好,事情一忙就没有修改。

程序:

//适合3EPIC实验板,键盘控制数码管
#include  
#include   

unsigned int i;
unsigned char j;
//初始化
void initial()
{
 TRISB=0x1E;
 TRISD=0x00;
 j=0; 
}
//延时
void DELAY()
{
 for(i=0;i<50000;i++)
 continue;
}
//主函数
main()
{
 static int table[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};
  
  initial();
  RB5=0;
 while (1)
 {

 if(RB1==0)
  {
   DELAY();
   j=1;
  }
 if(RB2==0)
  {
   DELAY();
   j=2;
  }
 if(RB3==0)
  {
   DELAY();
   j=3;
  }
 if(RB4==0)
  {
   DELAY();
   j=4;
  } 
  
  PORTD=table[j];
 
 }
}

关键字:PIC入门  跑马灯  数码管显示 引用地址:PIC入门1,跑马灯和数码管显示实验

上一篇:PIC入门2,看门狗和PWM波产生实验
下一篇:C51入门2,定时器和中断应用

推荐阅读最新更新时间:2024-03-16 15:18

4×4矩阵键盘,控制数码管显示
题目要求: 两个数码管显示0-59秒的秒表。一矩阵键盘,输入0-F。 当A键按下后,进入修改时间状态,此时在分别按下0-9中的任意两个数,数码管时间更改。 如按下09,数码管此时显示09。 再按下A键,数码管从09继续跑。 写出C语言程序,端口随便接。 问题关键是如何实现A按下后,数码管秒数的改变。麻烦行家帮帮忙。非常感谢。 悬赏分:100 | 解决时间:2011-3-11 16:55 //======================================= 最佳答案: 下列程序已经调好,按键显示电路可见: http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/ef
[单片机]
4×4矩阵键盘,控制<font color='red'>数码管</font><font color='red'>显示</font>
单片机红外解码,短按开关灯,长按调光,数码管显示键值
//红外解码,实验板测试正常,8位数码管显示遥控编码(用户码,用户反码,右边3位数码管显示PWM值), //两片74hc573驱动8位共阴数码管 //CH-键短按开关灯,+键长按调光,数码管显示键值;长按调光的解码程序目前网上很难找到,我琢磨了很久才把程序调通//压缩包里有完整的程序代码,有逻辑分析仪测试的连发码的波形 单片机源程序如下: #include INCSTC89C52RC.H #include INCMY_SET.H #include INCIR_NEC.H //调用NEC解码头文件 #define DIGI_PORT P0 // 宏定义数码管端口,如果端口改变,只需修改这一句即可 #d
[单片机]
单片机红外解码,短按开关灯,长按调光,<font color='red'>数码管</font><font color='red'>显示</font>键值
51单片机STC89C52驱动一个数码管显示0~9,A~F
程序源码 /*-----------------------包含头文件区域-------------------------*/ #include reg52.h //单片机头文件 /*-----------------------数据类型定义区域-----------------------*/ typedef unsigned char u8; //定义类型unsigned char别名为u8 typedef unsigned int u16; //定义类型unsigned int别名为u16 /*-----------------------用户自定义数据区域---------------------*/
[单片机]
51单片机STC89C52驱动一个<font color='red'>数码管</font><font color='red'>显示</font>0~9,A~F
Micro Chip MPLAB IDE编译PIC系列16F630_001_跑马灯
一, 打开文件(可以随文下载放置在文档中打开)。(如下图1所示) 图1 二,可见工程文件。(如下图2,3,4所示) 图2 图3 图4 三,双击main.c。(如下图5所示) 图5 四,编辑main.c 代码如Micro Chip MPLAB IDE编译PIC系列16F630_001_跑马灯(如下图6所示) 图6 五,Main.c 代码: /* Main.c file generated by New Project wizard * Created: 周五 7月 31 2020 Processor: PIC16F630 Compiler: HI-TECH C for PIC10/12/16 */ //#in
[单片机]
Micro Chip MPLAB IDE编译<font color='red'>PIC</font>系列16F630_001_<font color='red'>跑马灯</font>
LabView学习笔记(6)跑马灯之顺序结构与局部变量的使用
本例使用局部变量,通过练习使用顺序结构和While循环,又一次实现了跑马灯的效果。 前面板设计: 程序框图设计: 运行发现与前面while循环+移位寄存器效果一样!
[测试测量]
通过38译码器控制数码管显示数字
今天终于把38数码器控制原理及编程序搞得一点点了,之前因为是P0^1,2,3三个口控制数码管的位操作,一直搞不懂其原理,呵呵,看了下PDF文档,以及编程实例,总算明白一点点了,刚刚编成了一连串的数字,这证明我的猜想应该是对的。好高兴。昨天是想请教一个网友的,他叫我自己再认真研究下,嘿嘿。看来有些东西真的需要支持,这样才会成功才会深刻,特别是学习这东西。 程序如下:#include reg52.h sbit DECORDER_A = P0^0; sbit DECORDER_B = P0^1; sbit DECORDER_C = P0^2; unsigned char d; void main() { while(1)
[单片机]
通过38译码器控制<font color='red'>数码管</font><font color='red'>显示</font>数字
八路LED跑马灯实验
现在让我们开始做第一个实验:八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了,在焊接前要看仔细. 下面我们来完成软件编程设计,这里我们没有采用高深的编程技巧,而是用了最笨、最直接的向端口送数的办法来实现,一来程序比较简单,没必要玩深沉,而且初学者看起来直观易懂。 ORG 0000H START:MOV P1,#01111111B;最下面的LED点亮 LCALL DELAY;延时
[单片机]
八路LED<font color='red'>跑马灯</font>实验
8255数码管显示线路
本内容提供了8255数码管显示电路图      8255数码管显示效果图   
[电源管理]
8255<font color='red'>数码管</font><font color='red'>显示</font>线路
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved