欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
單片機測速與1602顯示程序與電路
[打印本頁]
作者:
楊柱豪
時間:
2016-12-23 23:08
標題:
單片機測速與1602顯示程序與電路
STC12C單片機控制
光傳感器測速
PWM控制直流電機
下載:
程序 15:28.rar
(109.18 KB, 下載次數: 148)
2016-12-23 23:06 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
部分代碼預覽:
#include"mytype.h" //包含總合的頭文件
#define DATA P2 //定義P0口為數據端
//定義按鍵I/O口
sbit key0=P0^6; //正反轉、停止模式切換按鍵
sbit key1=P0^7; //加速按鍵
sbit key2=P0^2;
sbit key3=P0^1; //減速按鍵
//sbit PWM=P0^0;
//****************
uchar table2[16]=" _DGUT_ ";//第1行液晶顯示
uchar table1[16]= "000 Chen ZiXing";//第2行液晶顯示
uchar number_table[10]="0123456789";
sbit lcden=P3^2;//液晶使能端
sbit lcdrs=P3^5;//液晶讀寫控制端
sbit wela=P3^3;
//uchar number;
uchar ge=0,shi=0,bai=0;
//****************
//定義全局變量flag=0,
uchar speed=0,speed1=0; //正反轉的標志位,0停止,1正轉,2反轉
uint num; //定時器1的計數變量
int quan;
void delay(uint z)//延時函數
{
uint x,y;
for(x=z;x>0;x--)
for(y=310;y>0;y--);
}
void write_com(uchar com)//液晶寫地址函數
{
lcdrs=0;
P2=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)//液晶寫數據函數
{
lcdrs=1;
P2=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()//液晶初始化函數
{
wela=0;
lcden=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void Lcd_display()//液晶顯示函數,主要是刷新轉速專用
{
uint i;
table1[0]=number_table[bai];
table1[1]=number_table[shi];
table1[2]=number_table[ge];
write_com(0x80+0x40);
for(i=0;i<3;i++)
{
write_data(table1[i]);
delay(1);
}
}
void main()
{
uchar number;
time_init(); //定時器初始化
PWM_Init(); //PWM初始化
UART1_Init(9600);//串口初始化
DATA=0x00; //數據端初始化為0
init();
write_com(0x80);
for(number=0;number<16;number++)
{
write_data(table2[number]);
delay(10);
}
write_com(0x80+0x40);
for(number=0;number<16;number++)
{
write_data(table1[number]);
delay(10);
}
PWM_SET(46,0);//進去先讓電機速度為零
while(1)
{
keyscan(); //按鍵掃描
/******用定時器1計算時間,每1秒算一次速度直接顯示*******/
if(num>=20)//num 是T1計數器計數變量,numG=20時為1秒
{
TR0=0;TR1=0;//關定時器0/1中斷
num=0;//計數變量清零
ge=quan%10;quan=quan/10;
shi=quan%10;quan=quan/10;
bai=quan%10;
Lcd_display(); //LCD顯示控制
quan=0;//圈數記錄清零
TR1=1;TR0=1; //開定時器0/1中斷
}
/*******************************************************************/
}
}
void time_init()
{
TMOD=0x15; //設置定時器0為計數模式,定時器1為定時模式,都為工作方式1
TH0=(65536-1)/256;
TL0=(65536-1)%256;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
ET0=1; //開定時器0中斷
TR0=1; //啟動定時器0
ET1=1; //開定時器1中斷
TR1=1; //啟動定時器1
EA=1; //開啟總中斷
}
//*************************************************************//
//函數:keyscan()
//功能:實現按鍵掃描、同時控制電機速度
//
//////********************************************************//
void keyscan()
{
if(key0==0||key1==0||key2==0)
{
delay_ms(10);//延時去抖
if(key0==0)
{
UART1_SendStr("a");
if(speed<9)speed++;
else if(speed1<9){speed=0;speed1++;}
// else speed=9;
PWM_SET(speed1*10+speed,0);
while(!key0);
}
else if(key1==0)
{
UART1_SendStr("q");
if(speed>0)speed--;
else if (speed1>0){speed1--;speed=9;}
PWM_SET(speed1*10+speed,0);
while(!key1);
}
else if(key2==0)
{
UART1_SendStr("key2");
while(!key2);
}
write_com(0x80);
write_data(number_table[speed1]);
write_data(number_table[speed]);
}
}
void T0_time() interrupt 1 //外部中斷0函數,記錄紅外對管脈沖高個數,quan就是脈沖個數發,也是圈數
{
TH0=(65536-1)/256; //設置初值,每計數1就溢出
TL0=(65536-1)%256;
quan++;
}
void T1_time() interrupt 3 //定時器1函數,定時計算一秒的時間,num==20的時候就是1秒
{
TH1=(65536-45872)/256; //設置初值,每計數15872就溢出
TL1=(65536-45872)%256;
num++;
//if(num%speed==0)PWM=~PWM; //累加溢出次數,40次為1秒,晶振為22.1184(20次為1秒,晶振為11.0592)
}
void delay_ms(int xms) //延時函數,單位為ms
{
uchar m;
uint n;
for(n=0;n<xms;n++)
for(m=0;m<110;m++);
}
復制代碼
作者:
qq894308196
時間:
2016-12-23 23:45
STC12C單片機控制 正是我想要的,謝謝
作者:
大大29
時間:
2017-1-11 04:32
不錯 謝謝分享
作者:
tkf008
時間:
2017-1-11 07:59
謝謝,先收下了!辛苦!
作者:
科學我究
時間:
2017-1-11 11:01
謝謝不錯不錯
作者:
mj8abcd
時間:
2017-1-26 13:44
謝謝樓主分享。。。。。
作者:
chysh
時間:
2017-6-20 21:47
失望,下載完才發現沒有仿真圖
作者:
chysh
時間:
2017-6-20 21:47
失望,下載完才發現沒有仿真圖
作者:
RenLC
時間:
2017-8-6 12:03
謝謝分享
作者:
XXXZZZ
時間:
2017-8-7 16:49
沒有仿真圖
作者:
15659281171
時間:
2017-8-7 18:08
謝謝,先收下了!很快就要用到了!
作者:
j6920
時間:
2018-4-9 18:21
正想做個小車 , 有仿真更好了
作者:
906267461
時間:
2018-4-28 09:35
謝謝分享
作者:
youguxiake
時間:
2018-10-13 22:09
這不是51單片機嗎
作者:
小號487560745
時間:
2019-11-9 00:10
牛逼大佬的作為
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1