当前位置:首页 > 单片机 > 单片机
[导读]C源代码:#include /*定义字型字位口*/ #define DIGPORT P2 #define WORDPORT P0/*定义键盘口*/ #define KEYPORT P1#define uint unsigned int #define uchar unsigned char #define uong unsigned longsbit P_

C源代码:

#include

/*定义字型字位口*/
#define DIGPORT P2
#define WORDPORT P0

/*定义键盘口*/
#define KEYPORT P1

#define uint unsigned int
#define uchar unsigned char
#define uong unsigned long

sbit P_7=P3^7; //PWM信号输出

bit OVER;
uint k,dt;
uong KEYNUM;
uchar qu,NUM;

void Delay(uint ms)
{
while(--ms);
}


void timer0(void) interrupt 1 using 1
{
TL0=-(10248%256);
TH0=-(10248%256);
NUM+=1;
if(NUM>=10){
TR1=0;
TR0=0;
OVER=1;
}
}

uint CK(void)
{
uint number=0;
P_7=1;
OVER=0;NUM=0;
EA=1;ET0=1;
TH0=(10203/256);
TH0=(10203%256);
TH1=0;
TL1=0;
TMOD=0x51;
TR0=1;
TR1=1;
Delay(dt);
P_7=0;
while (!OVER);
OVER=0;
number=TH1*256+TL1;
return(number);
}

void Display_LED(uong nu)
{
uint ii=0;
uong aa,bb;
uint xx[]={-0x10,-0x10,-0x10,-0x10,-0x10,-0x10,-0x10,-0x10};
do
{
bb=nu/10;
aa=nu-bb*10;
xx[ii]=aa;
nu=bb;ii++;
}while(nu>0);
DIGPORT=0xf0; WORDPORT=0x30+xx[0];
DIGPORT=0xf1; WORDPORT=0x30+xx[1];
DIGPORT=0xf2; WORDPORT=0x30+xx[2];
DIGPORT=0xf3; WORDPORT=0x30+xx[3];
DIGPORT=0x0f; WORDPORT=0x30+xx[4];
DIGPORT=0x1f; WORDPORT=0x30+xx[5];
DIGPORT=0x2f; WORDPORT=0x30+xx[6];
DIGPORT=0x3f; WORDPORT=0x30+xx[7];
}

void getkey()
{
qu=0;k=0;
KEYNUM=0;
do
{
switch(KEYPORT)
{
case 0xbd:
KEYNUM=KEYNUM*10;
break;
case 0xf6:
KEYNUM=KEYNUM*10+1;
break;
case 0xf5:
KEYNUM=KEYNUM*10+2;
break;
case 0xf3:
KEYNUM=KEYNUM*10+3;
break;
case 0xee:
KEYNUM=KEYNUM*10+4;
break;
case 0xed:
KEYNUM=KEYNUM*10+5;
break;
case 0xeb:
KEYNUM=KEYNUM*10+6;
break;
case 0xde:
KEYNUM=KEYNUM*10+7;
break;
case 0xdd:
KEYNUM=KEYNUM*10+8;
break;
case 0xdb:
KEYNUM=KEYNUM*10+9;
break;
case 0xbe:
KEYNUM=KEYNUM/10;
break;
case 0xbb:
qu=1;
}
Delay(6000);
Delay(6000);
Delay(6000);
Delay(6000);
Delay(6000);
Delay(6000);
Delay(6000);
Delay(6000);

if(KEYNUM>100000000) break;
Display_LED(KEYNUM);
}while(qu==0);
}


void main(void)
{
uong f;
P_7=0;
dt=1000;
getkey();
for(;;){
f=0;
f=CK()*12;
Display_LED(f);
if((f>KEYNUM)&&(dt>100)) dt=dt-(f-KEYNUM)/10;
if((f }
}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

直流电机由于其独特的性能特点,在众多工况中都发挥着重要作用。在工业生产领域,直流电机常用于需要精确调速和高动态响应的场合。

关键字: 直流电机

MS8844 提供了四个可独立控制的半 H 桥驱动器,这一架构设计使其具备了广泛的应用场景。它能够轻松驱动两个直流电机,为许多需要双电机协同工作的设备,如移动机器人的左右轮驱动,提供了便利。同时,也能驱动一个步进电机,满...

关键字: MS8844 H 桥驱动器 直流电机

我的工作是戏剧和布景设计。我经常想知道是否有一种方法可以直接将舞台设备与灯光台连接起来,这样技术团队就可以从灯光台同步这些效果。这是我在这方面的第一次经验。

关键字: 伺服电机 直流电机 RS485模块

解锁Arduino与我们令人兴奋的直流电机控制项目的力量!在本指南中,我们将向您展示如何使用L293D电机驱动器屏蔽来无缝管理单个直流电机的方向和速度。这个项目非常适合对机器人和自动化感兴趣的初学者和爱好者。无论您是计划...

关键字: L293D 电机驱动器 直流电机 Arduino

在电子电路设计中,利用三极管搭建 H桥来控制直流电机是一种常见的方式。H桥电路能够实现直流电机的正反转和速度调节,广泛应用于机器人控制、电动车辆驱动等领域。然而,有时会出现上电瞬间电机转动的现象,这不仅影响设备的正常运行...

关键字: 三极管 直流电机 H桥电路

在本文中,我们将使用555定时器IC和IRFZ44N N沟道MOSFET制作降压转换器,并将其用作LED调光电路或电机速度控制器电路。该电路基本上是一个简单的电力电子DC-DC Buck转换器,可用于降压,其效率导致更好...

关键字: 555定时器 Buck调节器 LED 调光器 直流电机

保持食物的安全和卫生,以保持食物新鲜和可食用,这有助于减少食物浪费。解决这个问题的一个办法是为储存的食物保持合适的环境条件,以控制分解的速度。食物分解取决于不同的参数,湿度、细菌和温度等参数是影响食物分解速度的主要因素。...

关键字: ESP8266 MQ3传感器模块 DHT11传感器模块 直流电机

在现代电子产品中,自动控制系统,电子仪器设备、家用电器、电子玩具等等方面,直流电机都得到了广泛的应用。大家熟悉的录音机、电唱机、录相机、电子计算机等,都不能缺少直流电机。所以直流电机的控制是一门很实用的技术。

关键字: 直流电机 控制技术

车库门太重,打开和关闭要费很大的力气。在这个万物互联的物联网时代,我们也应该改进它。想象一下,只需点击智能手机就可以轻松打开车库门,这正是我们要在这个智能车库门物联网项目中构建的,我们将使用ESP32开发板和Arduin...

关键字: 物联网 智能车库门 直流电机 Wi-Fi ESP32

pwm控制的基本原理随着电力需求的不断增加,电源管理技术愈加重要。开关电源作为一种高效能、可靠性高的电源,找到广泛的应用。

关键字: pwm 控制 电源
关闭