标题:
蓝桥杯各个模块源码下载-强烈推荐
[打印本页]
作者:
1216564
时间:
2018-4-6 14:32
标题:
蓝桥杯各个模块源码下载-强烈推荐
参加蓝桥杯的小伙伴可以学习一下。
0.png
(45.72 KB, 下载次数: 50)
下载附件
2018-4-6 21:48 上传
全部资料51hei下载地址:
课后练习及课上例程.rar
(282.49 KB, 下载次数: 10)
2018-4-6 21:50 上传
点击文件名下载附件
下载积分: 黑币 -5
单片机源程序如下:
/*
例程:数码管课后习题例程
作者:电子设计工坊
*/
#include "reg51.h"
#include "intrins.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
unsigned char distance_table[3];
//-----------------------------------------------
/* define constants */
#define FOSC 11059200L
#define T1MS (65536-FOSC/12/1000) //1ms timer calculation method in 12T mode
/* define SFR */
sbit TEST_LED = P1^0; //work LED, flash once per second
/* define variables */
WORD count; //1000 times counter
WORD sonic_count;
bit sonic_flag;
//-----------------------------------------------
unsigned char code T_display[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
unsigned char code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
/* Timer0 interrupt routine */
void tm0_isr() interrupt 1 using 1
{
static char i;
TL0 = T1MS; //reload timer0 low byte
TH0 = T1MS >> 8; //reload timer0 high byte
if (sonic_count-- ==0)
{
sonic_count=200;
sonic_flag=1;
}
if (count-- == 0) //1ms * 1000 -> 1s
{
count = 1; //reset counter
P2=0xe0;P0=~distance_table[i];P2=0;
P2=0xc0;P0=T_COM[i];P2=0;
i++;
if(i==3) i=0;
}
}
//-----------------------------------------------
sbit TX = P1^0;
sbit RX = P1^1;
#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();}
void send_wave(void)
{
unsigned char i = 8; //??8???
do
{
TX = 1;
somenop;somenop;somenop;somenop;somenop;
TX = 0;
somenop;somenop;somenop;somenop;somenop;
}
while(i--);
}
void Delay2ms() //@11.0592MHz
{
unsigned char i, j;
_nop_();
i = 4;
j = 146;
do
{
while (--j);
} while (--i);
}
/* main program */
void main()
{
unsigned int t,distance;
TMOD = 0x01; //set timer0 as mode1 (16-bit)
TL0 = T1MS; //initial timer0 low byte
TH0 = T1MS >> 8; //initial timer0 high byte
TR0 = 1; //timer0 start running
ET0 = 1; //enable timer0 interrupt
EA = 1; //open global interrupt switch
count = 0; //initial counter
while(1)
{
if(sonic_flag)
{
sonic_flag=0;
send_wave();
TR1 = 1;
while((RX == 1) && (TF1 == 0));
TR1 = 0;
if(TF1 == 1)
{
TF1 = 0;
distance = 999;
}
else
{
t = TH1;
t <<= 8;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
作者:
1216564
时间:
2018-4-6 14:45
盖楼,来个人审核下啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1