?? 多位數碼管動態顯示軟延時實現.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 + -