標(biāo)題: 求大神將下面這篇c語(yǔ)程序轉(zhuǎn)換成匯編語(yǔ)言程序(關(guān)于M、T法測(cè)轉(zhuǎn)速的)) [打印本頁(yè)]
作者: Ayo 時(shí)間: 2016-8-11 19:31
標(biāo)題: 求大神將下面這篇c語(yǔ)程序轉(zhuǎn)換成匯編語(yǔ)言程序(關(guān)于M、T法測(cè)轉(zhuǎn)速的))
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define DataPort P0 //LCD1602數(shù)據(jù)端口
sbit LCM_RS=P2^5; //LCD1602命令端口
sbit LCM_EN=P2^7; //LCD1602命令端口
sbit KEY1=P1^1; //確認(rèn)按鍵
sbit KEY2=P1^3; //減按鍵
sbit KEY3=P1^5; //加按鍵
uchar table[] = "Mode selection:";
uint M1 = 0;bit M_FLAG = 0; //M法測(cè)速參數(shù)
uint M2 = 0;bit T_FLAG = 0; //T法測(cè)速參數(shù)
uint Z = 1,T = 1000,n = 100; //倍頻系數(shù)*編碼器光柵數(shù) 采樣周期
bit flag = 0;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
LCM_RS=0;
DataPort=com;
delay(5);
LCM_EN=1;
delay(5);
LCM_EN=0;
}
void write_data(uchar date)
{
LCM_RS=1;
DataPort=date;
delay(5);
LCM_EN=1;
delay(5);
LCM_EN=0;
}
void init()
{
LCM_EN=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80+0x00);
}
void main(void)
{
uchar i;
init(); //液晶初始化
write_com(0x80);
for(i = 0;i < 15;i++)
write_data(table);
while(!flag)
{
if(!KEY2)
{
delay(15);write_com(0x80 + 15);write_data('M');
M_FLAG = 1;T_FLAG = 0;while(!KEY2);
}
if(!KEY3)
{
delay(15);write_com(0x80 + 15);write_data('T');
T_FLAG = 1;M_FLAG = 0;while(!KEY3);
}
if(!KEY1 &&(T_FLAG || M_FLAG))
{flag = 1;while(!KEY1);}
}
write_com(0x80 + 0x40);
write_data('Z');
write_data('=');
write_data(Z / 100 + '0');
write_data(Z / 10 % 10 + '0');
write_data(Z % 10 + '0');
flag = 0;
while(!flag)
{
if(!KEY2)
{
delay(15);
Z--;
write_com(0x80 + 0x42);
write_data(Z / 100 + '0');
write_data(Z / 10 % 10 + '0');
write_data(Z % 10 + '0');
delay(15);while(!KEY2);
}
if(!KEY3)
{
delay(15);
Z++;
write_com(0x80 + 0x42);
write_data(Z / 100 + '0');
write_data(Z / 10 % 10 + '0');
write_data(Z % 10 + '0');
delay(15);while(!KEY3);
}
if(!KEY1)
{flag = 1;while(!KEY1);}
}
write_com(0x80 + 0x48);
write_data('T');
write_data('=');
write_data(T / 1000 + '0');
write_data(T / 100 % 10 + '0');
write_data(T / 10 % 10 + '0');
write_data(T % 10 + '0');
write_com(0x80 + 0x4E);
write_data('m');
write_data('s');
flag = 0;
while(!flag)
{
if(!KEY2)
{
delay(15);
T--;
write_com(0x80 + 0x4A);
write_data(T / 1000 + '0');
write_data(T / 100 % 10 + '0');
write_data(T / 10 % 10 + '0');
write_data(T % 10 + '0');
while(!KEY2);
}
if(!KEY3)
{
delay(15);
T++;
write_com(0x80 + 0x4A);
write_data(T / 1000 + '0');
write_data(T / 100 % 10 + '0');
write_data(T / 10 % 10 + '0');
write_data(T % 10 + '0');
while(!KEY3);
}
if(!KEY1)
{flag = 1;while(!KEY1);}
}
flag = 0;write_com(0x01);
IT0 = 1; //下降沿觸發(fā)
EX0 = 1;
TMOD = 0x11; //定時(shí)/計(jì)數(shù)器0、1工作于方式1
TH0 = 0xFC; //12.000
TL0 = 0x18;
ET0=1; //允許定時(shí)/計(jì)數(shù)器0 中斷
if(M_FLAG) TR0=1; //啟動(dòng)定時(shí)/計(jì)數(shù)器0 中斷
else if(T_FLAG) TR0=0; //啟動(dòng)定時(shí)/計(jì)數(shù)器0 中斷
EA=1;
while(1)
{
;
}
}
void Int0(void) interrupt 0
{
if(M_FLAG) M1++;
if(T_FLAG)
{
TR0=1;
if(flag)
{
flag = 0;
n = T*60/Z/M2;
write_com(0x80);
write_data('S');
write_data('p');
write_data('e');
write_data('e');
write_data('d');
write_data(':');
write_data(n / 10000 + '0');
write_data(n / 1000 % 10 + '0');
write_data(n / 100 % 10 + '0');
write_data(n / 10 % 10 + '0');
write_data(n % 10 + '0');
write_data('r');
write_data('/');
write_data('m');
write_data('i');
write_data('n');
EA = 0;
}
flag = 1;M2 = 0;
}
}
void Timer0(void) interrupt 1
{
TH0 = 0xFC; //12.000
TL0 = 0x18;
M2++;
if(T == M2)
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
中文在线观看免费高清
|
中文字幕一区二区三区四区
|
秋霞午夜鲁丝一区二区老狼
|
亚洲欧美在线视频
|
日韩亚洲在线
|
超碰中文字幕
|
成人国产精品一区二区
|
视频一区二区三区在线观看
|
一级片黄色
|
亚洲激情成人
|
日韩欧美一级片
|
日韩国产欧美
|
99久久综合
|
99热这里|
中文字幕+乱码+中文乱码91
|
欧美视频久久
|
91在线成人|
亚洲欧洲天堂
|
成人永久免费视频
|
在线欧美
|
手机看片欧美
|
一级大片免费看
|
三级网站视频
|
日韩国产精品一区二区
|
日韩一区二区在线视频
|
国产黄色一级片
|
欧美一级一级
|
国产成人黄色
|
a级片免费
|
国产精品国产三级国产专区53
|
毛片网站在线播放
|
亚洲成人免费
|
91视频在线看
|
99久久久国产精品
|
欧美在线a
|
一区二区三区黄色
|
黄色天天影视
|
欧美一级在线观看
|
午夜999
|
黄色免费毛片
|
一区二区三区在线观看视频
|