永发信息网

c语言51 io口程序设计

答案:1  悬赏:40  手机版
解决时间 2021-03-19 00:57
我做设计最后一步软件设计要求用51单片机来处理数据,要求从外部CPLD模块读入数据N、n、Ts、fs和n1、n2六个数据,然后利用公式一:T=(Ts*n)/N 公式二:f=(N*fs)/n 公式三:M=[(n1-n2)*360]/(2*n2)分别计算出T、f和M的值,并且送给显示模块显示出来(十进制显示)。
附:其中还有四个控制按键,按键一控制公式一进行计算并显示计算结果;按键二控制公式二进行计算并显示计算结果;按键三控制公式三进行计算并显示计算结果;按键四为复位键

麻烦大家帮忙,我目前还没有财富值,谢谢了~·

用C语言进行编程
最佳答案
//下列程序基本正确,剩下一些脉冲宽度定时,可自行完成。
#include
#define uchar unsigned char
#define uint unsigned int

sbit P00 = P0^0;
sbit P01 = P0^1;
sbit P02 = P0^2;

sbit k_1 = P3^0; //第一个输入

uchar t_10ms, k3;
//--------------------------------------
DL_x_10ms(uchar x)
{
t_10ms = 0;
TH0 = (65536 - 10000) / 256;
TL0 = (65536 - 10000) % 256; //定时10ms@12MHz
TR0 = 1; //启动定时.
while(t_10ms < x); //不到x*10ms,原地等待.
TR0 = 0; //关闭定时.
}
//--------------------------------------
void main(void)
{
TMOD = 01; //T0定时方式1
TH0 = (65536 - 10000) / 256;
TL0 = (65536 - 10000) % 256; //定时10ms@12MHz
TR0 = 0; //暂时不启动.
ET0 = 1;

IT0 = 1;
IT1 = 1;
EX0 = 0;
EX1 = 0;

EA = 1;
k3 = 1;
while(1) { //
//--------------------------------------
while((k_1 == 1) || (k3 == 0));//K1没有按,或者 K3尚未执行 原地等待.
//K1按了一次,就往下执行.
while(k_1 == 0); //等待K1释放.
k3 = 0; //以后K1按下两次、三次...,也不会执行.

//进入第一个中断,P0.0口输出低电平,P0.1口输出高电平,延时1.5S后P0.0口输出高电平。.
P00 = 0; P01 = 1;
DL_x_10ms(150);
P00 = 1;
EX0 = 1; //开放INT0(K2)中断
//循环到前面,等待(K1按下且K3=1)
}
}
//--------------------------------------
T0_INT() interrupt 1
{
TH0 = (65536 - 10000) / 256;
TL0 = (65536 - 10000) % 256; //定时10ms@12MHz
t_10ms++;
}
//--------------------------------------
X0_INT() interrupt 0 //K2输入下降沿,将进入本函数
{
//进入第二个中断,延时1.11S后P0.2口输出低电平,然后.
DL_x_10ms(111);
P02 = 0; //P0.2口输出低电平
//输出低电平多少时间?题目没有说。
//---------------------
//高0.15S,
P02 = 1; //P0.2口输出高.
DL_x_10ms(15);
//---------------------
//低0.3S,
P02 = 0; //P0.2口输出低电平.
DL_x_10ms(30);
//下面的定时,可以自行编写
//高0.3S,
//低0.58S,
//高0.12S,
//低1.08S,
//高2.55S,
//低0.47S,
//高0.075S,高低电平很多次这样。.
EX0 = 0;
EX1 = 1; //开放INT1(K3)中断
}
//--------------------------------------
X1_INT() interrupt 2
{
//当进入第三个中断,P0.1口输出低电平。.
P01 = 0;
EX1 = 0;
k3 = 1; //=1,将在主函数中有用
}
//--------------------------------------
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大家好!我是一名大专护理系的学生。我有一个
那一天,我笑了 作文600字
日前的意思
什么播放器可以把视频中的歌曲导出来变成MP3
联发科mt6582四核1.3ghz和高通骁龙msm8960双
关于鼠的成语有哪些?
lvana中文什么意思
鸿昌厨卫地址在哪,我要去那里办事
司马光为救小孩,不是按常规让人脱离水,而是
汽车做底子灰边磨不平是为啥啊 总是摸着接头
寒冰和EZ的大飞到对面泉水要多久?(分别从自
几月出生的蛇宝宝好
小手拉大手做干净整洁的我。作文400字
疾控中心预防接种门诊地址在什么地方,想过去
合欢树文章开头两段反复提到我小时候作文比赛
推荐资讯
子宫息肉样增生物,腺体呈分泌反应,间质细胞蜕
北京四惠公交枢纽站哪里能办理一卡通卡
推荐几本讲述欧美发达国家经济发展历史的书籍
舜北公园(南)自行车租赁点地址有知道的么?有
酷辣大嘴巴在什么地方啊,我要过去处理事情
湖南栀子花装饰设计工程有限公司在哪里啊,我
memor 是什麽意思?
煮狗肉的时候放了姜片,煮了两个小时,煮了才
new balance 999樱花绿 如何鉴别真假
尚品广告我想知道这个在什么地方
模拟城市5能不能修改游戏速度 能不能比黑豹速
伏道四街村地址在什么地方,我要处理点事!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?