欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
STM32+74HC595源碼 三位數碼管顯示時間,按鍵調節時間加減,一個按鍵執行
[打印本頁]
作者:
向往同學
時間:
2018-11-29 10:20
標題:
STM32+74HC595源碼 三位數碼管顯示時間,按鍵調節時間加減,一個按鍵執行
數碼管電路原理圖如下:
360截圖20181129101756227.jpg
(70.69 KB, 下載次數: 82)
下載附件
2018-11-29 10:18 上傳
單片機源程序如下:
595驅動:
#include "stm32f10x.h"
#include "HC595.h"
#include "delay.h"
#include "key.h"
#define uint unsigned int
#define uchar unsigned char
//初始化PA0、PA1和PA2為輸出口,并使能這個端口的時鐘
//HC595 IO初始化
void HC595_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能PA端口時鐘
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2; //端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽輸出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2); //PA0,1,2 輸出高
}
void HC595_Display(unsigned char Bai, unsigned char Shi, unsigned char Ge)
{
uchar k;
uchar n = Ge;
uchar m = Shi;
uchar x = Bai;
for(k=0;k<8;k++)
{
if(n&0x80) HC595_SDI = 1;
else HC595_SDI = 0; //判斷當前發送位數據
n <<= 1; //左移一位
HC595_CLK = 0;
//delay_ms(1);
HC595_CLK = 1; //移位寄存器操作
//delay_ms(1);
}
for(k=0;k<8;k++)
{
if(m&0x80)HC595_SDI =1;
else HC595_SDI = 0; //判斷當前發送位數據
m <<= 1; //左移一位
HC595_CLK = 0;
//delay_ms(1);
HC595_CLK = 1; //移位寄存器操作
//delay_ms(1);
}
for(k=0;k<8;k++)
{
if(x&0x80)HC595_SDI =1;
else HC595_SDI = 0; //判斷當前發送位數據
x <<= 1; //左移一位
HC595_CLK = 0;
//delay_ms(1);
HC595_CLK = 1; //移位寄存器操作
//delay_ms(1);
}
HC595_LE = 1;
//delay_ms(1);
HC595_LE = 0; //鎖存數據
//delay_ms(1);
}
//void HC595_Off(void)
//{
// //OE = 1;
//}
//void SMG(void)
//{
//
// u8 key;
// int a=0;//b=0, c=0;
// unsigned char Bai_Wei,Shi_Wei,Ge_Wei; //千位,百位,十位,個位Qian_Wei,
// //數碼管編碼
// unsigned char table[] =
// {0xc0,0xf9,0xa4,0xb0,0x99,
// 0x92,0x82,0xf8,0x80,0x90,
// 0xff,0x00,0x90,0x86,0xaf,
// 0xc0,0x89,0xc7,0x8e,0xc1,0x7f};
// //0,1,2,3,4,5,6,7,8,9,全暗,全亮,g,E,r,O,H,L,F,U,小數點,共陽數碼管使用
//
//
// key=KEY_Scan(0); //掃描按鍵
// if(key==KEY_LEFT)
// {
// a++;
//
// }
// Bai_Wei = table[a];
// Shi_Wei = table[2];
// Ge_Wei = table[3];
// HC595_Display(Bai_Wei,Shi_Wei,Ge_Wei);
//}
復制代碼
//2位數碼管測試代碼
//樊川技術
//實驗現象:3位數碼管輪流顯示數碼管編碼表里面的字符
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "HC595.h"
#include "key.h"
#include "time.h"
unsigned char Qian_Wei,Bai_Wei,Shi_Wei,Ge_Wei; //千位,百位,十位,個位
float d=0;
//數碼管編碼
unsigned char table[] =
{0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,
0xff,0x00,0x90,0x86,0xaf,
0xc0,0x89,0xc7,0x8e,0xc1,0x7f};
//0,1,2,3,4,5,6,7,8,9,全暗,全亮,g,E,r,O,H,L,F,U,小數點,共陽數碼管使用
unsigned char table1[] =
{0xc0,0xf9,0xa4,0xb0};
//0,1,2,3,4,5,6,7,8,9,全暗,全亮,g,E,r,O,H,L,F,U,小數點,共陽數碼管使用
int KEY_ING=1;
int main(void)
{
u8 key;
int a=0,b = 0,c = 0;
SystemInit(); //系統時鐘初始化為72M SYSCLK_FREQ_72MHz
delay_init(72); //延時函數初始化
NVIC_Configuration(); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
LED_Init(); //LED端口初始化
HC595_Init();
KEY_Init();
TIM4_Init(1000,36000-1); //定時500ms
// //清空LED數碼管
// Bai_Wei = table[10];//清空LED
// Shi_Wei = table[10];//清空LED
// Ge_Wei = table[10];//清空LED
// HC595_Display(Bai_Wei, Shi_Wei,Ge_Wei);
// delay_ms(3000);
while(1)
{
key=KEY_Scan(0); //掃描按鍵
switch(key)
{
case KEY_DOWN: KEY_ING=1;break; //按下K_DOWN按鍵 熄滅D2指示燈
case KEY_LEFT: c=c+5;break; //按下K_LEFT按鍵 點亮D3指示燈
case KEY_RIGHT: c=c-5;break; //按下K_RIGHT按鍵 熄滅D3指示燈
}
if(c == 10)
{
c = 0;
b++;
}
if(c == -5)
{
c = 5;
b--;
}
if(b == -1)
{
b = 9;
a--;
}
if(b == 10)
{
b = 0;
a++;
}
if(a == 3)
{
b= 0;
c= 0;
}
if(a <0)
{
a=0;
b=0;
c= 0;
}
d=a*10+b+0.1*c;
Bai_Wei = table1[a];
Shi_Wei = table[b];
Ge_Wei = table[c];
HC595_Display(Bai_Wei,Shi_Wei,Ge_Wei);
}
}
復制代碼
Keil代碼下載:
STM32_3位數碼管定時程序.rar
(295.17 KB, 下載次數: 190)
2018-11-29 15:23 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
cooleaf
時間:
2019-3-19 20:11
正在弄這個程序,感謝樓主分享啊!
作者:
Automan_cool
時間:
2021-5-20 15:03
感謝樓主的精彩分享!
作者:
yayayunyun
時間:
2022-2-10 11:15
沒有原理圖,圖片不清晰
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1