如何利用单片机让4位数码管显示?
发布网友
发布时间:2022-04-19 19:42
我来回答
共1个回答
热心网友
时间:2023-06-26 19:24
//段码由P0口输出,P2.3-P2.0依次接位选的高到低\x0d\x0a#include
\x0d\x0atypedef unsigned char u8;\x0d\x0atypedef unsigned int u16;\x0d\x0avoid Delay(void);\x0d\x0avoid Disp(void);\x0d\x0au16 Cnt;\x0d\x0au8 code LED[]={\x0d\x0a0x3F,// 0\x0d\x0a0x06,// 1\x0d\x0a0x5B,// 2\x0d\x0a0x4F,// 3\x0d\x0a0x66,// 4\x0d\x0a0x6D,// 5\x0d\x0a0x7D,// 6\x0d\x0a0x07,// 7\x0d\x0a0x7F,// 8\x0d\x0a0x6F,// 9\x0d\x0a0x77,// A\x0d\x0a0x7C,// B\x0d\x0a0x39,// C\x0d\x0a0x5E,// D\x0d\x0a0x79,// E\x0d\x0a0x71// F\x0d\x0a};\x0d\x0avoid Delay(void)\x0d\x0a{\x0d\x0au16 i;\x0d\x0afor(i = 0;i < 200;i ++)\x0d\x0a;\x0d\x0a}\x0d\x0avoid Disp(void)\x0d\x0a{\x0d\x0au8 i,k = 0x01;\x0d\x0afor(i = 0;i < 4;i ++)\x0d\x0a{\x0d\x0aP0 = LED[(Cnt >>(i * 4)) & 0x000f];\x0d\x0aP2 = k | 0xf0;\x0d\x0ak <<= 1;\x0d\x0aDelay();\x0d\x0aP0 = 0xff;\x0d\x0aP2 &= 0xf0;\x0d\x0a}\x0d\x0a}\x0d\x0avoid main(void)\x0d\x0a{\x0d\x0au8 i;\x0d\x0aCnt = 0;\x0d\x0awhile(1)\x0d\x0a{\x0d\x0afor(i = 0;i < 100;i ++)//显示100次,显示值加1\x0d\x0a{\x0d\x0aDisp();\x0d\x0a}\x0d\x0aCnt ++;\x0d\x0a}\x0d\x0a}