标题: 这单片机程序中间那个display函数是干啥的? [打印本页]
作者: 晴天11 时间: 2019-9-14 21:12
标题: 这单片机程序中间那个display函数是干啥的?
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
#define SEG P0//(P0.0开始一场接入a-h)
#define WE P2 // (P2.0开始依次接入1-4)
void delay (uint z)
{
uint x,y;
for(x = z;x > 0;x--)
for(y = 110;y > 0;y--)
{
}
}
void display_led(uchar WEI,uchar NUM)
{
uchar code scandate[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code bitdate[] = {0xf7,0xfb,0xfd,0xfe};
WE = bitdate[WEI-1];
delay(5);
SEG = scandate[NUM];
}
void main(void)
{ SEG = 0x00;
WE = 0xff;
while(1)
{
display_led(1,8);
display_led(2,8);
display_led(3,8);
display_led(4,8);
}}
作者: 晴天11 时间: 2019-9-14 21:12
数码管动态扫描
作者: wulin 时间: 2019-9-15 06:32
这是一个4位共阴极数码管动态驱动测试程序,display_led是显示函数,动态配置段码和位码就可以在数码管显示相应数字,给你改了一点,通过显示效果更易理解。
- #include<reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- #define SEG P0//(P0.0开始一场接入a-h)
- #define WE P2 // (P2.0开始依次接入1-4)
- void delay (uint z)
- {
- uint x,y;
- for(x = z;x > 0;x--)
- for(y = 110;y > 0;y--);
- }
- void display_led(uchar WEI,uchar NUM)
- {
- uchar code scandate[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- uchar code bitdate[] = {0xf7,0xfb,0xfd,0xfe};
- WE = bitdate[WEI-1];
- // delay(5);
- SEG = scandate[NUM];
- }
- void main(void)
- {
- SEG = 0x00;
- WE = 0xff;
- while(1)
- {
- display_led(1,5);
- delay(5);
- display_led(2,6);
- delay(5);
- display_led(3,7);
- delay(5);
- display_led(4,8);
- delay(5);
- }
- }
复制代码
作者: angmall 时间: 2019-9-15 06:48
程序中间那个display函数是数码管显示函数
作者: csmyldl 时间: 2019-9-15 06:59
用于4位数码管显示的
作者: TERGET 时间: 2019-9-15 07:04
这是数码管显示吧,WE是位选,SEG是段选
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |