本文共 641 字,大约阅读时间需要 2 分钟。
#include "reg51.h"#include "intrins.h"// QA1~8接交通灯sbit SER = P3^4; // 74HC595串行数据sbit RCK = P3^5; // 74HC595存储寄存器时钟sbit SCK = P3^6; // 74HC595移位寄存器时钟typedef unsigned char u8;void HC595(u8 serialData){ int i; u8 tempData; RCK = 0; SCK = 0; for (i = 0; i < 8; ++i) { tempData = serialData >> i; SER = tempData & 0x01; _nop_(); SCK = 1; // 上升沿移位 _nop_(); SCK = 0; } _nop_(); RCK = 1; // 上升沿并口发出8位数据 _nop_();}void Delay(int i){ while (i--);}void main(){ u8 array[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80}; while (1) { int i; for (i = 0; i < 8; ++i) { HC595(~array[i]); // led是低电平点亮,所以取反 Delay(1000 * 500); } } }
转载地址:http://iwmai.baihongyu.com/