|
用單片機(jī)控制數(shù)碼管的靜態(tài)顯示
C語言源程序:
#include<reg52.h> //52單片機(jī)頭文件包含
#define uint unsigned int //定義宏uint 為 unsigned int
#define uchar unsigned char //定義宏uchar 為 unsigned char
sbit wei1=P2^0; //第一位數(shù)碼管位選
uchar num;//定義無符號字符變量num
uchar code table[]={0xC0,0xF9,0xA4,0xB0,
0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,
0xC6,0xA1,0x86,0x8E};//在代碼區(qū)定義無符號table數(shù)組(共陽數(shù)碼管表分別代碼了0-F的數(shù)碼顯示
void delay_xMs(uint z);//延時(shí)函數(shù)原型說明
void main() //入口函數(shù)
{
while(1) //主循環(huán)
{
for(num=0;num<16;num++) //for 循環(huán) 循環(huán)16次 每次num的值加1 控制16個(gè)數(shù)的數(shù)碼顯示
{
wei1=0;//給低電頻打開第一個(gè)數(shù)碼顯示管
P0=table[num];//將table數(shù)組中的值復(fù)制給P0用于數(shù)碼管顯示數(shù)字
delay_xMs(1000);//延時(shí)1秒
}
}
void delay_xMs(uint z) //延時(shí)函數(shù) 參數(shù)1:延時(shí)的毫秒數(shù)
{
uint x;//定義無符號整型變量x
uchar y;//定義無符號字符變量y
for(x=z;x>0;x--)//for循環(huán) 進(jìn)行z次
{
for(y=0;y<100;y++);//for 循環(huán)循環(huán)100次
}
}
//實(shí)驗(yàn)效果 單片機(jī)數(shù)碼管的第一位循環(huán)從0顯示到F
|
|