首页 > 其他 > 详细

B站普中51单片机代码自敲打(一)

时间:2020-09-12 18:51:04      阅读:84      评论:0      收藏:0      [点我收藏+]

单片机扩展74HC165

 1 #include <REGX52.H>
 2 #include <INTRINS.H>
 3 
 4 typedef unsigned int u16;
 5 typedef unsigned char u8;
 6 
 7 #define LED P0
 8 
 9 sbit IN_PL = P1^6;
10 sbit IN_DATA = P1^7;
11 sbit SCK = P3^6;
12 
13 
14                     
15 u8 Read74HC165()
16 {
17     u8 indata;
18     u8 i;
19     
20     IN_PL = 0;
21     _nop_();
22     IN_PL = 1;
23     _nop_();
24     
25     indata = 0;
26     for(i = 0; i < 8; i++)
27     {
28         indata = indata << 1;
29         SCK = 0;
30         _nop_();
31         
32         indata |= IN_DATA;
33         SCK = 1;
34     }
35     return indata;
36 }
37 
38 void main()
39 {
40     u8 h165Value;
41     LED = 0;
42     while(1)
43     {
44         h165Value = Read74HC165();
45         if(h165Value != 0XFF)
46         {
47             LED = ~h165Value; 
48         }
49     }
50 }

 

 单片机扩展74HC595

 1 #include <REGX52.H>
 2 #include <INTRINS.H>
 3 
 4 typedef unsigned int u16;
 5 typedef unsigned char u8;
 6 
 7 #define LED = P0
 8 
 9 sbit RCLK1 = P3^5;
10 sbit SRCLK = P3^6;
11 sbit SER = P3^4;
12 
13 
14 void HC595SendByte(u8 dat)
15 {
16     u8 i;
17     for(i = 0; i < 8; i++)
18     {
19         SER = dat>>7;
20         dat <<= 1;
21         
22         SRCLK = 0;
23         _nop_();
24         _nop_();
25         SRCLK = 1;
26     }
27         RCLK1 = 0;
28         _nop_();
29         _nop_();
30         RCLK1 = 1;
31 }
32 
33 void delay(u16 i)
34 {
35     while(i--);
36 }
37 
38 void main()
39 {
40     u8 LedNum;
41     LedNum = 0X01;
42     
43     while(1)
44     {
45         HC595SendByte(LedNum);
46         LedNum = _crol_(LedNum,1);
47         delay(50000);
48     }
49 }

 

B站普中51单片机代码自敲打(一)

原文:https://www.cnblogs.com/Alei-/p/13657661.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!