51单片机c语言控制led显示屏,51单片机的中断方法以及对LED显示器的控制设计

描述

初学51单片机,中断快把我弄晕了,终于明白点了,怕忘了,贴在这里需要时方便自己找

锁存器电路

6f63e91a9029ed25372e1e38102c2f84.png

LED显示器连接电路

f867156082a19e8d64995a97ff04a09c.png

数码表编制方式:共8位从低4位到高4位,显示送高电平,如数字2二进制是0101 1011即16进制为:0x5B

0b1d66513a020c40c9abd25370cde97f.gif

C语言程序代码如下:

1 #include

2 #define uint unsigned int

3 #define uchar unsigned char

4

5 sbit dula = P2^6; //段选

6 sbit wela = P2^7; //位选

7 uchar time,num; //定时器0计数次数,数码管显示字符

8

9 void init(); //初始函数化定义

10 void desplay(); //显示函数定义

11 void delay(uint); //延时函数定义

12

13 //数字字码表 0-F

14 uchar code table[]={

15 0x3f,0x06,0x5b,0x4f,

16 0x66,0x6d,0x7d,0x07,

17 0x7f,0x6f,0x77,0x7c,

18 0x39,0x5e,0x79,0x71};

19

20 //主函数

21 void main()

22 {

23 init(); //初始化

24 desplay(); //显示

25 }

26

27 //初始化

28 void init()

29 {

30 TMOD = 1;  //工作方式

31 TH0 = 0xEE;

32 TL0 = 0x00;

33 ET0 = 1;  //打开定时器0中断

34 EA = 1;  //打开总中断

35 TR0 = 1;  //开始计时(数)

36 num = 1;

37 }

38 //数码管显示

39 void desplay()

40 {

41 wela = 1;

42 P0 = 0xFE;

43 wela = 0;

44 P0 = 0xff;

45 dula = 1;

46 P0 = 0x3F;

47 dula = 0;

48 while (1)

49 {

50 if (time==200)

51 {

52 time=0;

53 dula=1;

54 P0=table[num];

55 dula=0;

56 num++;

57 if(num==16)

58 num=0;

59 delay(10);

60 }

61 }

62 }

63 //定时器0中断

64 void time0() interrupt 1

65 {

66 TH0 = 0xEE;

67 TL0 = 0x00;

68 time++;

69 }

70 //显示延时

71 void delay(uint x)

72 {

73 uchar i;

74 while (x--)

75 for (i=0;i《110;i++);

76 }

来源;21ic

打开APP阅读更多精彩内容

点击阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值