标题:
单片机驱动74hc164秒表显示的仿真和源程序
[打印本页]
作者:
longgyue
时间:
2018-7-15 10:25
标题:
单片机驱动74hc164秒表显示的仿真和源程序
单片机74hc164秒表仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(13.17 KB, 下载次数: 26)
下载附件
2018-7-15 16:33 上传
0.png
(50.47 KB, 下载次数: 26)
下载附件
2018-7-15 16:34 上传
单片机源程序如下:
#include<iom16v.h>
#include<macros.h>
#define uchar unsigned char
#define uint unsigned int
#define CP_L PORTC&=~BIT(0)
#define CP_H PORTC|=BIT(0)
#define DATA_L PORTC&=~BIT(1)
#define DATA_H PORTC|=BIT(1)
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uint num=0;
void delay_ms()
{
uint i;
for(i=0;i<1141;i++);
}
void delay(uchar time)
{
uint i;
for(i=0;i<time;i++)
delay_ms();
}
void send_data(uchar data)
{
uint i;
for(i=0;i<8;i++)
{
CP_L;
if(data&0x80)
DATA_H;
else
DATA_L;
CP_H;
data<<=1;
}
}
//定时1秒
void Timer1_init()
{
TCCR1A=0X00;
TCCR1B=0X04;//256分频
TCNT1H=0x85;
TCNT1L=0xED;
}
#pragma interrupt_handler miao:9
void miao()
{
TCNT1H=0x85;
TCNT1L=0xED;
if(num==60)
num=0;
num++;
}
void Display(uchar i,uchar j)
{
send_data(j);
PORTC&=~BIT(i);
delay(10);
PORTC|=BIT(i);
}
void main()
{
DDRC=0XFF;
Timer1_init();
TCNT1H=0x85;
TCNT1L=0xED;
TIMSK|=BIT(2);
SREG|=BIT(7);
while(1)
{
Display(2,table[num%10]);
Display(3,table[num/10]);
}
}
复制代码
所有资料51hei提供下载:
74hc164_miao.rar
(28.65 KB, 下载次数: 23)
2018-7-15 10:24 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1