新手上路
- 积分
- 46
- 金钱
- 46
- 注册时间
- 2016-9-10
- 在线时间
- 7 小时
|
本帖最后由 wuxixiaoli 于 2016-9-10 20:42 编辑
从网上买的8为数码管,两片595芯片驱动的。网上都是51的程序,STM32的程序在家搞了半天,终于搞出来了,图片和附件。希望对大家有帮助。注意是固定的显示01234567,大家运用可以改程序动态显示数据的。
#include "delay.h"
#include "sys.h"
#include "smg.h"
#include "led.h"
void date_in(u8 temp)
{
u8 i;
for(i=0;i<8;i++)
{
SCK=0;
if((temp&0x80) == 0x80)
{
SI =1; //′®DDêy¾Yêä3ö
}
else
{
SI = 0;
}
temp<<=1;
SCK=1; //òÆÎ»êäèëê±Öó£¬éÏéyÑØêäèë
delay_us(3);
SCK=0;
}
}
void date_out(void)
{
RCK=0; //2¢DDêä3öê±Öó
delay_us(10);
RCK=1;
delay_us(10);
RCK=0;
}
**************************************************************************************
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "smg.h"
unsigned char duan[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
u8 i;
//unsigned char duan[]={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
unsigned char wei[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
int main(void)
{
delay_init(); //Ñóê±oˉêy3õê¼»ˉ
LED_Init(); //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
while(1)
{
for(i=0;i<8;i++)
{
date_in(wei);
date_in(duan);
date_out();
delay_us(2000);
PE2=!PE2;
}
}
}
|
|