
#include <intrins.h >sbit key = P2^0
const unsigned char LED7Code[]={
0xC0, // 0
0xF9, // 1
0xA4, // 2
0xB0, // 3
0x99, // 4
0x92, // 5
0x82, // 6
0xF8, // 7
0x80, //数祥 8
0x90, // 9
0x88, // A
0x83, // B
0xC6, // C
0xA1, // D
0x86, // E
0x8E // F
}
unsigned char count = 0
unsigned char timer1s_flag
unsigned char hw,lw
unsigned char flagvoid delay(unsigned char n)
/*********************************************************/
void main()
{
TMOD=0x01
TH0=0xed
TL0=0xff
EA=1
ET0=1
TR0=1 while(1)
{
if(timer1s_flag>=100){
timer1s_flag = 0
}//500msif(key == 0)
{
delay(10)
if(key==0){
count++
if(count==24)
count =0
hw = (count+1)/10
lw = (count+1)%10
}
while(key==0)
}
}
}
void delay(unsigned char n)
{
unsigned char i,j
for(i=ni>0i--)
{
for(j=0j<150j++)
}
}
/*********************************************************/
// 定时器0中断服务程序.
/*********************************************************/
void timer0() interrupt 1 using 2
{
TH0=0xee
TL0=0x04 timer1s_flag++if(flag==0){
P3=0X40
P1=LED7Code[hw]
flag = 1
}
else{
P3=0X80
P1=LED7Code[lw]
flag = 0
}
} 这世基个类是的需要完整的和Proteus仿真图,扣 我!搜毕谨
#include <reg51.h>纳闭告#define uchar unsigend uchar
#define uint unsigned int
unsigned char code LED7Code[] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71}//数码管段码
void main()
{
uint k
TMOD=0X50//设置模式为1,计数模式
TH1=0X00
TL1=0X00//初始洞明值设定
IE=0X00//关全局中断
TR1=1//开定时计数器态早1运行
while(1)
{
if(TL1==16)//进行判断,为16时,计数值归零
TL1=0X00
k=TL1
P0=LED7Code[k]//数码管进行显示
}
}
此程序目的见http://zhidao.baidu.com/question/350774230.html
#include "源耐渣雹悄reg52.h"#define uchar unsigned char
#define uint unsigned int
#define dataport P1
sbit s1=P2^0
sbit s2=P2^1
sbit s3=P2^2
sbit wei1=P2^4
sbit wei2=P2^5
signed char a=0
uchar TABLE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}
//延时子程序
void delay1ms(uint t)
{
uint i
uint j
for(i=0i<ti++)
for(j=0j<116j++)
}
//显示子程序
void display(uchar n)
{
wei1=1
dataport=TABLE[n/10]
delay1ms(1)
wei1=0
wei2=1
dataport=TABLE[n%10]
delay1ms(1)
wei2=0
}
void main(void)/亩宏/主程序
{
while(1)
{
if(s1==0)
{
delay1ms(20)
if(s1==0)
{
a++
}
}
if(a=100)a=0
if(s2==0)
{
delay1ms(20)
if(s2==0)
{
a--
}
}
if(a<0)a=99
if(s3==0)
{
delay1ms(20)
if(s3==0)
{
a=0
}
}
display(a)
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)