📄 多位数码管动态显示软延时实现.txt
字号:
? /**************************************************************************
? * 标题: 多位数码管动态显示软延时实现
? * 日期: 2007.2.21
? * 软件: Keil C51
? * 芯片: AT89X51
? **************************************************************************/
?
? #include <reg51.h>
? #include <intrins.h>
?
? #define uchar unsigned char
?
? void delay_ms(uchar ms); // 延时毫秒@12M,ms最大值255
?
? uchar code dis_code[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, //段码表
? // 0 1 2 3 4 5 6 7 //对应内容
? 0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
? // 8 9 a b c d e f
? void main()
? {
? uchar data i = 0x00; // 循环控制变量兼偏移量,初值为0
? uchar data j = 0xfe; // 位码(选通各位数码管),初值为11111110
?
? while(1)
? {
? for(i = 0; i < 8; i++)
? {
? P2 = j; // 位码送入P2口显示
? P0 = dis_code[i]; // 段码表中取值送P0口
? delay_ms(1); // 动态显示各位间隔为1ms
? j = _crol_(j,1); // 位码循环左移1位选通下一数码管
? }
? }
? }
? void delay_ms(uchar ms) // 延时毫秒@12M,ms最大值255
? {
? uchar i;
? while(ms--)
? for(i = 0; i < 124; i++);
? }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -