?? yangliang12.c
字號:
#include<reg52.h>
#include<intrins.h>
#include"stdio.h"//或者寫成#include<stdio.h>
#define uint unsigned int
#define uchar unsigned char
#define size1 16
#define size2 6
sbit wela=P2^6;
sbit dula=P2^7;
int temp;//LED顯示器中間變量
int numofinterrupt=0;//數碼管中斷次數變量
int num1;//數碼管顯示數字表數組元素下標
int num2;//數碼管位選控制下標
int table[size1]={1,2,3,4,5,6,7,8,9,8,8,8,8,8,8,8,};//字符數組
int wetable[size2]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//位選信息數組
int count=0;//作為輸出字符數組的計數器
int control=1;//主程序中問題處理的標志控制循環標志
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//進入主函數執行
void main()
{
TMOD=0x01;//使用定時器中斷來進行數碼管持續時間2毫秒的顯示
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//使用定時器中斷進行定時操作
ET0=1;
TR0=1;
///////////////////////////////////////////////////////////
temp=0xfe;//led燈亮問題
P0=temp;
///////////////////////////////////////////////////////////
num1=0;//在還沒進入中斷處理子程序時,就應該使得數碼管顯示字符數組的第0個元素,否則會使數碼管剛開始顯示的是亂碼
num2=0;//數碼管位選在沒進中斷時就應該選中第一個數碼管來進行顯示
wela=1;//位選所存信號
P1=wetable[num2];//選中第一個數碼管
wela=0;
dula=1;//段選中的第一個數碼管顯示字符數組中的第一個數字
P1=table[num1];
dula=0;
///////////////////////////////////////////////////////////
while(control==1)
{
for(count=0;count<=(size1-1);count++)
{
printf("%d",table[count]);
}
if(count==15)
{count=0;}
}
}//主函數執行完成
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//以下是定時器中斷處理子程序
void time0() interrupt 1 using 1
{
TH0=(65536-50000)/256;//這是重新載入預置數,取得高八位
TH0=(65536-50000)%256;//取得預置數的低八位
numofinterrupt++;
if(numofinterrupt==40) //應該是1秒鐘就會變化一次的啊為什么實際程序變化這么慢呢???
{
numofinterrupt=0;//這句話千萬不能忘記了,我忘了寫,結果出了大錯啊,切忌!!
//以下2句是LED燈的顯示發光程序
temp=_crol_(temp,1);//顯示下一個LED燈
P0=temp;
num2++;//來選取下一個數碼管
if(num2==6)//六個數碼管用完時就應當在用第一個數碼管來進行重復顯示
{
num2=0;
}
wela=1;//位選所存信號
P1=wetable[num2];//
wela=0;
num1++;//顯示下一個字符數組中的字符
if(num1==16)
{num1=0;}
dula=1;
P1=table[num1];
dula=0;
}
}//定時中斷程序結束
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -