标题:
PIC单片机电子钟程序+仿真电路
[打印本页]
作者:
#include51.h
时间:
2019-1-21 23:36
标题:
PIC单片机电子钟程序+仿真电路
ppppp.jpg
(145.69 KB, 下载次数: 88)
下载附件
2019-1-21 23:34 上传
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
#define CS RA5
uchar secs = 0;
uchar minutes = 0;
uchar hours = 0;
unsigned char disbuf[8] = {1,2,3,4,5,6,7,8};
void delay_ms(uint n)
{
uchar i;
while(n--)
{
for(i=0;i<100;i++);
}
}
void Port_Initial(void)
{
TRISC = 0xD7;
PORTC = 0x00;
TRISA = 0x00;
PORTA = 0x00;
}
void Time0_Initial(void)
{
T0CS = 0;
PSA = 1;
T0IF = 0;
T0IE = 1;
GIE = 1;
TMR0 = 0x00;
}
volatile unsigned int cnt = 0;
void interrupt ISR(void)
{
TMR0 = 0x13;
T0IF = 0;
CLRWDT();
cnt ++;
if(cnt==500)
{
cnt = 0;
secs ++;
}
if(secs==60)
{
secs = 0;
minutes ++;
}
if(minutes==60)
{
minutes = 0;
hours ++;
}
if(hours==24)
{
hours = 0;
}
}
void SPI_Initial(void)
{
PIR1 = 0;
SSPCON = 0x30;
SSPSTAT = 0x00;
}
void Display(uchar *str)
{
uchar i;
for(i=0;i<8;i++)
{
MAX7221_WRITE(i+1,str[i]);
}
}
void HEXTOBCD(void)
{
disbuf[0] = hours/10;
disbuf[1] = hours%10;
disbuf[2] = 10;
disbuf[3] = minutes/10;
disbuf[4] = minutes%10;
disbuf[5] = 10;
disbuf[6] = secs/10;
disbuf[7] = secs%10;
}
void main()
{
SPI_Initial();
delay_ms(10);
Port_Initial();
delay_ms(10);
Time0_Initial();
delay_ms(10);
MAX7221_Initial();
delay_ms(10);
while(1)
{
HEXTOBCD();
delay_ms(10);
Display(disbuf);
delay_ms(10);
}
}
复制代码
0.png
(5.56 KB, 下载次数: 85)
下载附件
2019-1-22 02:55 上传
全部资料51hei下载地址:
PIC电子钟.rar
(16.99 KB, 下载次数: 31)
2019-1-21 23:35 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
shuisheng
时间:
2019-2-13 17:11
值得学习了!谢谢1
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1