PIC18F458控制数码管显示1~8数字程序

发布者:czc天天最新更新时间:2015-07-06 来源: 51hei关键字:PIC18F458  数码管显示 手机看文章 扫描二维码
随时随地手机看文章
本程序是基于PIC18F458控制LED数码管显示1~8数字的C语言程序,笔者也是刚刚学习PIC单片机,也是和大家一起学习交流吧!不多说了,先贴程序:
#include "p18f458.h"

static volatile int table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff};//段码

volatile unsigned char data;

/*初始化子程序*/

void initial()

{

   TRISA=0x00; /*A口设置为输出*/

   TRISC=0x00; /*SDO引脚为输出,SCK引脚为输出*/

   INTCON=0x00;    /*关闭所有中断*/

   SSPCON1=0x30;   /*SSPEN=1;CKP=1,FOSC/4*/

   SSPSTAT=0xC0;   /*时钟下降沿发送数据*/

   PIR1=0;     /*清除SSPIF标志*/

}

/*显示子程序*/

void SPILED(char data)

{

   PORTAbits.RA5=0;/*LACK送低电平,为锁存做准备*/

   SSPBUF=data;                    /*启动发送*/

   do

   {

   ;

   }while(PIR1bits.SSPIF==0);      /*等待发送完毕*/

   PIR1bits.SSPIF=0;               /*清除SSPIF标志*/

   PORTAbits.RA5=1;                /*最后给锁存信号,代表显示任务完成*/

}

/*主程序*/

main()

{

   unsigned  i;

   initial();                      /*系统初始化*/

   for(i=8;i>0;i--)             /*连续发送8个数据*/

   {

       data=table[i];              /*通过数组的转换获得待显示的段码*/

       SPILED(data);               /*发送显示段码显示*/      

   }

   for(;;)//无限循环

   {

   }

}
关键字:PIC18F458  数码管显示 引用地址:PIC18F458控制数码管显示1~8数字程序

上一篇:一种基于PIC单片机和GPS接收模块的手持式GPS定位系统
下一篇:基于PIC16F877单片机数码管显示矩阵键值

推荐阅读最新更新时间:2024-03-16 14:23

51单片机-数码管显示函数
1.代码选择 有时我们需要6个数码管显示我们想要看到的数字,比如计算结果呈现在数码管上,然而当要显示的数为“520”时又不想前面的3个数码管亮(也就是高位为0不显示),我们把这部分功能代码封装为带参数的函数,传入的参数就是要显示的数值。参数定义的是unsigned long类型,也就是支持0~4294967296的数值(2的32次方等于4294967296)。 示例1: void ShowNumber(u32 num) { LedBuff =LedChar ; LedBuff =LedChar ; LedBuff =LedChar ; LedBuff =LedChar ; LedBuff =LedChar ;
[单片机]
51单片机实现数码管动态显示60~0
硬件电路原理图 元件清单 C语言程序 #include reg51.h unsigned char table ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //数码管字符码 void show(unsigned char n); void delay(unsigned int k); void main() { unsigned char i; int j; while(1) { for(i=60;j=60,i 0;i--) while(j--) show(i); } } void show(unsigned char n) { P0=table ; P1
[单片机]
51单片机实现<font color='red'>数码管</font>动态<font color='red'>显示</font>60~0
基于51单片机的电压表-数码管显示
一.硬件方案 本设计基于STC89C52单片机的一种电压测量电路,该电路采用ADC0832A/D转换芯片,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单, 可以测量0~9V的电压值,并在四位LED数码管上显示电压值。如图: 二.设计功能 (1)ADC0832模数转换,0-9V电压测量; (2)4位数码管显示测量电压值; (3)10K可调电阻模拟电压测试; (4)当提供电源电源为精准的5V电源时,精度为正负0.02V; 三.设计原理图 (1)原理图主要采用AD软件进行设计,如图: (2)Protues仿真图如下: 四.软件设计 (1)程序流程图 (2)主程序源码 /**************
[单片机]
基于51单片机的电压表-<font color='red'>数码管</font><font color='red'>显示</font>
拉幕式数码管显示技术原理与分析
1.实验任务   用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。AT89S51单片机的P1.0-P1.2控制74LS138的A,B,C端子。在8位数码管上从右向左循环显示“12345678”。能够比较平滑地看到拉幕的效果。 2.电路原理图 图4.21.1 3.系统板上硬件连线 (1).把“单片机系统”区域中的P0.0/AD0-P0.7/AD7用8芯排线连接到“动态数码显示”区域中的a-h端口上; (2).把“三八译码模块”区域中的Y0-Y7用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; (3).
[单片机]
拉幕式<font color='red'>数码管</font><font color='red'>显示</font>技术原理与分析
PIC单片机驱动LED数码管显示程序
;*****该程序用于驱动led数码管显示,在8个LED数码管上依次显示数字1、2、3、4、5、6、7、8******* ;****http://www.51hei.com 单片机学习网经典程序已测试,led数码管共阴和共阳不同请修改码值转换表部分 LIST P=18F458 INCLUDE "P18F458.INC" ;所用的寄存器 XIANR EQU 0X20 ORG 0X00 GOTO MAIN ORG 0X30 ;****************以下为码值转换表******************** CONVERT ADDWF PCL,1 RETLW 0XC0 ;0,显示段码与具体的硬件连接有关 RETLW 0XF9
[单片机]
PIC单片机开发板:数码管动态扫描程序,显示静态效果
//------------------------------------------------------------------------------------------------------------------------- /*这是自已写的:数码管动态扫描,显示静态效果 心得,显示看起来像乱码,实际上是位置不对(要选送段选,再打开位选)的缘故。 改为delay(300);则流水速度加快 */ #include pic.h #define uchar unsigned char #define uint unsigned int __CONFIG(0x3B31);// void delay(uchar x)
[单片机]
PIC单片机开发板:<font color='red'>数码管</font>动态扫描程序,<font color='red'>显示</font>静态效果
8只数码管滚动显示1~8
程序功能,从左到依次显示0,1,2,3,4,5,6,7 八个数字 程序源代码如下: /* 8只数码管同时显示不同字符 */ #include reg51.h typedef unsigned char uint8; typedef unsigned int uint16; code uint8 LED_CODE = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8}; void delay(uint16 x) { uint16 i,j; for(i = x; i 0; i --) for(j = 114; j 0; j --); } void main() { uint8
[单片机]
8只<font color='red'>数码管</font>滚动<font color='red'>显示</font>1~8
AT89C51+DS1302+DS18B20六位数码管显示时钟程序
#include #define uchar unsigned char #define uint unsigned int #include DS1302.h #include DS18B20.h #define sec 0x80 #define min 0x82 #define hou 0x84 #define read 0x01 unsigned char hour,minute,second,id=0,timecount,re_disp=0,p,n0,n1; bit flag; #define leddata P0 //定义数码管的段选 sbit ssw=P2^7; //小时十位 sbit sw=P2^6; //小时个
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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