定时器源码
1. sTC单片机 用定时器定时 来控制步进电机 驱动器L298求 源码 可调速
/*-----------------------------------------------
名称:步进电机实验
编写:shifang
日期:2013.12
修改:无
内容:本程序用于测试两个4相步进电机常规驱动 用矩阵键盘 调节速度
红外传感器 测速
1602液晶显示 1-30速度等级,数字越大,速度越大
------------------------------------------------*/
#include <reg52.h>
#include"LCD1602.h"
#include "jzhjp.h"
sbit cesu1=P3^2;
sbit cesu2=P3^3;
unsigned char code table[11]="0123456789.";// 显示段码值0~9
unsigned char code table1[]="A:"; //电机1正转加减速等级
unsigned char code table2[]="B:"; //电机1反转加减速等级
uint count=0; //外部中断0计脉冲定义变量
uchar temp1=0; //定时器1计数定义变量
long int v1; //电机1的速度
void Init_Timer0(void); //定时器中断初始化函数
/*------------------------------------------------
主函数
------------------------------------------------*/
void main()
{
unsigned char num1,num2;
Init_Timer0(); //定辩肆时器中断初始伍灶罩化
LCD_init(); //LCD1602初始化
write_com(0x80); //显示A:
for(num1=0;num1<2;num1++)
{
write_data(table1[num1]);
delay(5);
}
write_com(0x80+0x40); //显示B:
for(num2=0;num2<2;num2++)
{
write_data(table2[num2]);
delay(5);
}
Coil_OFF //初始化全部断电
while(1)
{
write_com(0x82); //显示电机1正转加速值
write_data(table[Speed/10]);
write_data(table[Speed%10]);
write_com(0x80+0x42); //显示电机1反转加速值
write_data(table[Speed1/10]);
write_data(table[Speed1%10]);
write_com(0x80+11); //显示电机1速度值
write_data(table[v1/100]);
write_data(table[v1%100/10]);
write_data(table[10]);
write_data(table[v1%10]);
keyscan(); //矩阵键盘腔闹扫描
}
}
/*------------------------------------------------
定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |= 0x11; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
//TH0=0x00; //给定初值
//TL0=0x00;
TH1=(65536-100000)/256; //给定初值50ms
TL1=(65536-100000)%256;
ET1=1; //定时器1中断打开
PT0=1; //优先级打开
EA=1; //总中断打开
IT0=1; //1表示边沿触发
IT1=1; //1表示边沿触发
}
/*------------------------------------------------
定时器0中断子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1
{
static unsigned char times,i;
static unsigned char times1,j;
TH0=(65536-500)/256; //重新赋值 0.5ms
TL0=(65536-500)%256;
if(flag==1) //电机1正转
{
if(times==(50-Speed))
{
times=0;
switch(i)
{
case 0:Coil_a1;i++;break;
case 1:Coil_ab1;i++;break;
case 2:Coil_b1;i++;break;
case 3:Coil_bc1;i++;break;
case 4:Coil_c1;i++;break;
case 5:Coil_cd1;i++;break;
case 6:Coil_d1;i++;break;
case 7:Coil_da1;i++;break;
case 8:i=0;break;
default:break;
}
}
else
times++;
}
if(flag1==1) //电机1反转
{
if(times1==(50-Speed1))
{
times1=0;
switch(j)
{
case 0:Coil_da1;j++;break;
case 1:Coil_d1;j++;break;
case 2:Coil_cd1;j++;break;
case 3:Coil_c1;j++;break;
case 4:Coil_bc1;j++;break;
case 5:Coil_b1;j++;break;
case 6:Coil_ab1;j++;break;
case 7:Coil_a1;j++;break;
case 8:j=0;break;
default:break;
}
}
else
times1++;
}
}
/*------------------------------------------------
定时器0中断子程序
------------------------------------------------*/
void time1() interrupt 3
{
TH1=(65536-10000)/256; //重装初值10ms
TL1=(65536-10000)%256;
temp1++;
if(temp1==100) //1s采样1次
{
temp1=0;
v1=count*3; //速度单位:转/min
count=0; //v=(count/20/1)*60=count*3;
}
}
/*--------------------------------------------------
外部中断0子程序
---------------------------------------------------*/
void ISR_INT0(void) interrupt 0
{
if(cesu1==0) //电机1码盘脉冲计数
{
delay(5);
if(cesu1==0)
{
count++;
}
while(!cesu1);
}
}
显示部分你自己弄一下
2. 求每日定时在服务器的FTP上取数据文件的源码(java)
这个是可以向服务器端发送文字的程序,就是在客户端发送一句hello在服务器也可以接受到hello,这个程序可以修改一下就可以了。具体修改方法是增加一个定时器,然后把字符流改成字节流,现在有点忙,你先研究啊,近两天帮你写写看。
服务器端:
import java.net.*;
import java.io.*;
public class DateServer {
public static void main(String[] args) {
ServerSocket server=null;
try{
server=new ServerSocket(6666);
System.out.println(
"Server start on port 6666...");
while(true){
Socket socket=server.accept();
new SocketHandler(socket).start();
/*
PrintWriter out=new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()
)
);
out.println(new java.util.Date().toLocaleString());
out.close();
*/
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(server!=null) {
try{
server.close();
}catch(Exception ex){}
}
}
}
}
class SocketHandler extends Thread {
private Socket socket;
public SocketHandler(Socket socket) {
this.socket=socket;
}
public void run() {
try{
PrintWriter out=new PrintWriter(
new OutputStreamWriter(
socket.getOutputStream()
)
);
out.println(
new java.util.Date().
toLocaleString());
out.close();
}catch(Exception e){
e.printStackTrace();
}
}
}
客户端:
package com.briup;
import java.io.*;
import java.net.*;
public class FtpClient {
public static void main(String[] args) {
if(args.length==0) {
System.out.println("Usage:java FtpClient file_path");
System.exit(0);
}
File file=new File(args[0]);
if(!file.exists()||!file.canRead()) {
System.out.println(args[0]+" doesn't exist or can not read.");
System.exit(0);
}
Socket socket=null;
try{
socket=new Socket(args[1],Integer.parseInt(args[2]));
BufferedInputStream in=new BufferedInputStream(
new FileInputStream(file)
);
BufferedOutputStream out=new BufferedOutputStream(
socket.getOutputStream()
);
byte[] buffer=new byte[1024*8];
int i=-1;
while((i=in.read(buffer))!=-1) {
out.write(buffer,0,i);
}
System.out.println(socket.getInetAddress().getHostAddress()+" send file over.");
in.close();
out.close();
}catch(Exception e){
e.printStackTrace();
}finally{
if(socket!=null) {
try{
socket.close();
}catch(Exception ex){}
}
}
}
}
3. C语言 电子时钟源代码程序 带图 谢谢 最好有注释
#include <stdio.h>
#include <time.h>
#include"stdlib.h"
#include "windows.h"
void main ()
{
while(1)
{
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( " 07The current date/time is: %s", asctime (timeinfo) );
Sleep(1000);
system("cls");
}
}