📄 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 + -