求单片机51系列的计数器C语言程序,要求24进制,可进位

求单片机51系列的计数器C语言程序,要求24进制,可进位,第1张

#include <reg51.h >

#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)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12391857.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存