日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言一位共阳数码管编程,求一个共阳四位数码管滚动显示1234的程序

發布時間:2025/3/20 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言一位共阳数码管编程,求一个共阳四位数码管滚动显示1234的程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

/*******************************************************************************

* 文件名: 數碼管

* 描??述:

* 功??能:數碼管的使用

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

#include "stc15w.h"//頭文件

#include "intrins.h"

/*******************************************************************************

* 文件名: 重定義

* 描??述:

* 功??能:

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

typedef unsigned char uint8;

typedef unsigned int??uint16;

typedef unsigned long uint32;

/*******************************************************************************

* 文件名:共陽數碼管真值表

* 描??述:

* 功??能:

* 作??者:大核桃

* 版本號:1.0.1(2015.03.03)

*******************************************************************************/

code uint8 LedChar[] = {

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e

};

uint8 counter = 0;

/*******************************************************************************

* 文件名:單獨位定義

* 描??述:

* 功??能:

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

sbit LED0 = P1^0;//第1組LED

sbit LED1 = P1^1;//第2組LED

sbit LED2 = P1^2;//第3組LED

sbit LED3 = P1^3;//第4組LED

sbit LED4 = P1^4;//第5組LED

sbit LED5 = P3^2;//第6組LED

sbit LED6 = P0^0;//第7組LED

sbit LED7 = P0^1;//第8組LED

sbit LEDS1 = P3^3;//數碼管1

sbit LEDS2 = P3^4;//數碼管2

sbit LEDS3 = P3^6;//數碼管3

sbit LEDS4 = P3^7;//數碼管4

/*******************************************************************************

* 文件名:函數前置聲明

* 描??述:

* 功??能:

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

void Mcu_Port_Init();

void LedScan();

void Delay500ms(); //24MHZ

void Time0_Init();//定時器0

/*******************************************************************************

* 文件名

* 描??述: 主函數

* 功??能:入口

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

void main(void)

{

uint8 count = 0;

Mcu_Port_Init();//IO上電初始化

Time0_Init();

LED0 = 0;//第1組LED,如果使能請置為1

LED1 = 0;

LED2 = 0;

LED3 = 0;

LED4 = 0;

LED5 = 0;

LED6 = 0;

LED7 = 0;

while(1);

}

/*******************************************************************************

* 文件名:void LedScan()

* 描??述: LED刷新

* 功??能:

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

void LedScan()

{

static uint8 i = 0;

P2 = 0Xff;

switch(i)

{

case 0: LEDS4 = 0;LEDS1 = 1;P2 = LedChar[counter];i++;break;

case 1: LEDS1 = 0;LEDS2 = 1;P2 = LedChar[counter];i++;break;

case 2: LEDS2 = 0;LEDS3 = 1;P2 = LedChar[counter];i++;break;

case 3: LEDS3 = 0;LEDS4 = 1;P2 = LedChar[counter];i = 0;break;

default:break;

}

}

/*******************************************************************************

* 文件名:void Time0_Init()

* 描??述: 定時器0初始化

* 功??能:1毫秒@11.0592MHz

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

void Time0_Init(void)

{

AUXR |= 0x80;? ? ? ? //定時器時鐘1T模式

TMOD &= 0xF0;? ? ? ? //設置定時器模式

TL0 = 0xCD;? ? ? ? ? ? ? ? //設置定時初值

TH0 = 0xD4;? ? ? ? ? ? ? ? //設置定時初值

ET0 = 1;

TR0 = 1;? ? ? ? ? ? ? ? //定時器0開始計時

EA = 1;

}

/*******************************************************************************

* 文件名:

* 描??述: 中斷函數

* 功??能:1毫秒@11.0592MHz

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

void ET0_IRQHandler() interrupt 1

{

static uint16 tmr500ms = 0;

TL0 = 0xCD;? ? ? ? ? ? ? ? //設置定時初值

TH0 = 0xD4;? ? ? ? ? ? ? ? //設置定時初值

LedScan();

tmr500ms++;

if(tmr500ms == 500)

{

tmr500ms = 0;

//小燈間隔500ms亮滅

counter++;

if(counter > 9)

{

counter = 0;

}

}

}

/*******************************************************************************

* 文件名:void Mcu_Port_Init()

* 描??述: io初始化

* 功??能:

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

void Mcu_Port_Init()

{

//將P0口低二位配置為推挽輸出

//234567位配置位高阻輸入

P0M1 = 0xFC;//1111 1100

P0M0 = 0X03;//0000 0011

//P0 = 0X01;//第6個

//P0 = 0X02;//第7個

//高3位配置高阻輸入,用作模擬口

//其他配置推挽輸出,驅動LED

P1M1 = 0xE0;//1110 0000

P1M0 = 0X1F;//0001 1111

//P2口配置準雙向口

P2M1 = 0X00;

P2M0 = 0X00;

P2 = 0Xff; //上電為1111 1111

//? ? ? ? //P54,P55口為推挽輸出

P5M1 = 0X00;

P5M0 = 0X00;

P5 = 0xFF;

//P37,P36,3.2,P3.3 P3.4口為推挽輸出

P3M1 = 0X00;

P3M0 = 0XFC;

P3 = 0X23; //0010 0111//第5個LED端口

}

/*******************************************************************************

* 文件名:void Delay500ms()? ? ? ? ? ? ? ? //@24.000MHz

* 描??述:Y5內核延時

* 功??能:

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

void Delay500ms()? ? ? ? ? ? ? ? //@24.000MHz

{

unsigned char i, j, k;

_nop_();

_nop_();

i = 46;

j = 153;

k = 245;

do

{

do

{

while (--k);

} while (--j);

} while (--i);

}

/*******************************************************************************

* 文件名:void Delay500ms()? ? ? ? ? ? ? ? //@24.000MHz

* 描??述:Y1內核延時

* 功??能:

* 作??者:大核桃

* 版本號:1.0.1(2017.05.23)

*******************************************************************************/

//void Delay500ms()? ? ? ? ? ? ? ? //@24.000MHz

//{

//? ? ? ? unsigned char i, j, k;

//

//? ? ? ? _nop_();

//? ? ? ? i = 8;

//? ? ? ? j = 154;

//? ? ? ? k = 122;

//? ? ? ? do

//? ? ? ? {

//? ? ? ? ? ? ? ? do

//? ? ? ? ? ? ? ? {

//? ? ? ? ? ? ? ? ? ? ? ? while (--k);

//? ? ? ? ? ? ? ? } while (--j);

//? ? ? ? } while (--i);

//}

總結

以上是生活随笔為你收集整理的c语言一位共阳数码管编程,求一个共阳四位数码管滚动显示1234的程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。