?? 動態顯示.c
字號:
/********************************************************************
* 文件名 : 動態顯示.c
* 描述 : 該文件用于控制數碼管的動態顯示,數碼管從 000 顯示到 255。
動態顯示時,數碼管只要每秒閃爍次數在28次以上,人眼不會看到數碼管的閃爍。
* 創建人 : 東流,2009年4月8日
* 版本號 : 2.0
* 技術支持論壇:www.zidh.com/bbs(請進入“贊助商板塊”中的“東流電子工作室”)
* 感謝“中國自動化資訊網”對本工作室的大力支持。
***********************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[10] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x09};
/********************************************************************
* 名稱 : Delay_1ms()
* 功能 : 延時子程序,延時時間為 1ms * x
* 輸入 : x (延時一毫秒的個數)
* 輸出 : 無
***********************************************************************/
void Delay(uint i)
{
uchar x,j;
for(j=0;j<i;j++)
for(x=0;x<=148;x++);
}
/********************************************************************
* 名稱 : Main()
* 功能 : 數碼管的顯示
* 輸入 : 無
* 輸出 : 無
***********************************************************************/
void Main(void)
{
uchar i = 0,j = 0;
P2 = 0x00; //關所有數碼管
while(1)
{
P0 = table[i % 10]; // i 值的 個位數
P2 = 0x01; //點亮第一位數碼管
Delay(8);
P0 = table[i / 10 % 10]; // i 值的 十位數
P2 = 0x02; //點亮第二位數碼管
Delay(8);
P0 = table[i / 100]; // i 值的 百位數
P2 = 0x04; //點亮第三位數碼管
Delay(8);
j++;
if(j == 200) //利用 j 值的變化,來控制數碼管數值變化間隔的時間
{
j = 0;
i++;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -