PIC单片机对数码管的动态扫描显示设计

2020-01-15来源: elecfans关键字:PIC单片机  数码管  动态扫描显示

#include//包含单片机内部资源预定义

__CONFIG(0x1832);

//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡

PIC单片机对数码管的动态扫描显示设计
 

voiddelay();//delay函数申明

voidinit();//I/O口初始化函数申明

constcharTABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92};//定义常数0-5的数据表格

voidmain()//主函数

{

while(1)//死循环,让数码管持续点亮

{

init();//调用初始化函数

PORTD=TABLE[0];//D口输出数据表格第1个数据0

PORTA=0X3E;//点亮第1位数码管

delay();//延时一定时间,保证数码管亮度

PORTD=TABLE[1];//显示数据1(同数据0)

PORTA=0X3d;

delay();

PORTD=TABLE[2];//显示数据2(同数据0)

PORTA=0X3b;

delay();

PORTD=TABLE[3];//显示数据3(同数据0)

PORTA=0X37;

delay();

PORTD=TABLE[4];//显示数据4(同数据0)

PORTA=0X2f;

delay();

PORTD=TABLE[5];//显示数据5(同数据0)

PORTA=0X1f;

delay();

}

}

voidinit()//I/O口初始化函数

{

TRISA=0X00;//设置A0输出,其他输入

TRISD=0X00;//设置D口输出

ADCON1=0X07;//设置A口为普通I/O口

PORTA=0xff;

PORTD=0xff;//先熄灭所有显示

}

voiddelay()//延时程序

{

inti;//定义整形变量

for(i=0x100;i--;);//延时

}

关键字:PIC单片机  数码管  动态扫描显示 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic485761.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:如何使用PIC单片机扩展8255A并口
下一篇:如何利用PIC单片机实现计时秒表功能

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

PIC单片机ADC的编程设计
#include__CONFIG(0X1F71);#define uchar unsigned char#define uint unsigned intconst uchar Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};const uchar Tab1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};//带小数点的代码 void DisPlay(uchar date1,uchar date2,uchar date3,uchar date4);void DelayMS(uint z){uint
发表于 2020-01-09
PIC单片机ADC的编程设计
PIC单片机实现LCD1602显示字母A
PIC单片机LCD1602显示单个A字程序STATUS EQU 3H ;定义状态寄存器地址PORTA EQU 5H ;定义RA口数据寄存器地址PORTC EQU 7H ;定义RC口数据寄存器地PORTD EQU 8H ;定义RD口数据寄存器地址TRISA EQU 85H ;定义RA口方向控制寄存器地址TRISC EQU 87H ;定义RC口方向控制寄存器地址TRISD EQU 88H ;定义RD口方向控制寄存器地址ADCON1 EQU 9FH ;定义ADC模块控制寄存器1的地址;********************Z EQU 2 ;定义0状态位的位地址RP0 EQU 5 ;定义页选位RP0的位地址
发表于 2020-01-09
PIC单片机实现LCD1602显示字母A
PIC单片机定时器1的实际应用
#define uint unsigned int__CONFIG(0x3B31);void init();uint intnum;void main(){init();while(1){/*if(intnum==20){intnum=0;RD0=!RD0;}*/}#include#define uchar unsigned char#define uint unsigned int__CONFIG(0x3B31);void init();uint intnum;void main(){init();while(1){/*if(intnum==20){intnum=0;RD0=!RD0;}*/}} void init(){
发表于 2020-01-09
PIC单片机定时器1的实际应用
PIC单片机对LED数码管矩阵键盘显示的设计
#include#include “。./head/config.h”__CONFIG(HS&WDTDIS&LVPDIS&PWRTEN);//对熔丝位进行设置单片机LED共阳极段码表(带小数点) 0~9const char table1[]={0X0A,0XFA,0X8C,0XA8,0X78,0X29,0X09,0XBA,0X08,0X28,0x18,0x49,0x0f,0xc8,0x0d,0x1d};数码管位码表const char table[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};unsigned int result = 0,lastresult
发表于 2020-01-09
PIC单片机对LED数码管矩阵键盘显示的设计
PIC单片机定时器0的应用
#include#define uchar unsigned char#define uint unsigned int__CONFIG(0x3B31);void init();uint intnum;void main(){init();while(1){if(intnum==5){intnum=0;RD0=!RD0;}}}void init(){TRISD=0;PORTD=0;OPTION=0x07;INTCON=0xa0;TMR0=61;}void interrupt TIme0(){T0IF=0;TMR0=61;intnum++;}
发表于 2020-01-09
PIC单片机定时器0的应用
PIC单片机INT0中断的原理
RB0/INT0、RB1/INT1及RB2/INT2引脚的外部中断是边沿触发的;如果INTCON2 寄存器中相应的INTEDGx位被置1,则为上升沿触发;如果该 INTEDGx 位清零,则为下降沿触发。当RBx/INTx引脚上出现一个有效边沿时,相应标志位 INTxF 被置1 。在重新使能该中断前,必须在中断服务程序中先用软件将标志位INTxF 清零。通过对相应的使能位INTxE 清零,可以禁止该中断。如果INTxE 位在进入休眠状态前被置1 ,则所有的外部中断(INT0、INT1 及INT2)能把处理器从休眠状态中唤醒。如果全局中断使能位 GIE 被置1 ,则处理器将在唤醒之后转移到中断向量。INT1 和INT2 的中断
发表于 2020-01-09
PIC单片机INT0中断的原理
小广播
何立民专栏 单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved