泰安做网站多少钱课题组研究网站怎么做
- 作者: 五速梦信息网
- 时间: 2026年03月21日 08:22
当前位置: 首页 > news >正文
泰安做网站多少钱,课题组研究网站怎么做,响应式网站开发的特点,开源wordpress主题本文是关于51单片机中断系统的扩展实验。 文章目录 一、 扩展实验一#xff1a;使用外部中断0控制蜂鸣器#xff0c;外部中断1控制直流电机二、扩展实验二#xff1a;修改定时器初值#xff0c;设定3秒钟的定时时间让LED模块闪烁三、扩展实验三#xff1a;使用定时器1和数… 本文是关于51单片机中断系统的扩展实验。 文章目录 一、 扩展实验一使用外部中断0控制蜂鸣器外部中断1控制直流电机二、扩展实验二修改定时器初值设定3秒钟的定时时间让LED模块闪烁三、扩展实验三使用定时器1和数码管设计一个数字时钟 一、 扩展实验一使用外部中断0控制蜂鸣器外部中断1控制直流电机 外部中断扩展实验一实现的功能使用外部中断0控制蜂鸣器发声/不发声外部中断1控制直流电机转动/停止。 由蜂鸣器的内容可以知道蜂鸣器分为有源蜂鸣器和无源蜂鸣器蜂鸣器有两个管脚要使蜂鸣器发声需要有电流通过蜂鸣器即管脚一端接正极管脚另一端接负极。有源蜂鸣器只需给一定的电压即可发声无源蜂鸣器需要一定频率的脉冲才可发声。这里设计了两种蜂鸣器都由外部中断0控制。 直流电机的驱动方式与蜂鸣器类似。 proteus中硬件设计如下为显示蜂鸣器的发声这里使用了一个LED显示发声与否。蜂鸣器的一端连接到电源另一端经过ULN2003芯片连接P1.5口当P1.50时蜂鸣器发声直流电机的一端连接到电源另一端经过ULN2003连接到P1.0口当P1.00时电机转动。为体现中断使用独立按键模块连接到P3.2和P3.3口当按键按下蜂鸣器发声或电机转动。 软件设计如下 /*实现功能外部中断0控制蜂鸣器发声外部中断1控制直流电机转动- 与外部中断0和外部中断1有关的有两个寄存器IE和TCON- IE是中断允许控制寄存器TCON是中断请求标志寄存器。- IE中包括了- 总中断允许位(EA)- 外部中断0/1允许位(EX0/EX1)- 定时器0/1允许位(ET0/ET1)- 串口中断允许位(ES);- TCON中的低四位是外部中断允许和触发方式控制位包括了- IT0/IT1是外部中断0/1触发方式控制位0表示低电平触发1表示下降沿触发- IE0/IE1是外部中断0/1请求标志位[2023-12-19] zoya /#include reg52.h #include typedef.h #include Delay.hsbit BEEP P1^5; sbit MOTOR P1^0; sbit CTR_INT0 P3^2; sbit CTR_INT1 P3^3;/************************************************************************
- 函数名 IntInit
- 函数功能 外部中断0/1初始化设置中断触发方式为边沿触发
- 输入 void
- 输出 void ***********************************************************************/ void IntInit() {// 1. 设置中断触发方式IT01;IT11;// 2. 打开外部中断0/1EX01;EX11;// 3. 打开总中断EA1; }void main() {MOTOR0;BEEP0;IntInit(); while(1); }/**********************************************************************
- 函数名 Int0
- 函数功能 外部中断0中断服务函数
- 控制蜂鸣器发声
- 输入 void
- 输出 void ***********************************************************************/ void Int0() interrupt 0 {delayms(10); // 按键延时消抖if(0 CTR_INT0){BEEP ~BEEP;} }/**********************************************************************
- 函数名 Int1
- 函数功能 外部中断1中断服务函数
- 控制直流电机转动
- 输入 void
- 输出 void ************************************************************************/ void Int1() interrupt 2 {delayms(10); // 按键延时消抖if(0 CTR_INT1){MOTOR~MOTOR;} }仿真结果 二、扩展实验二修改定时器初值设定3秒钟的定时时间让LED模块闪烁 如何计算定时器初值 以使用12MHz的晶振频率计算。如果使用的是12MHz晶振单片机内部的时钟频率为12分频即12/12MHz1MHz那么对应的机器周期为1/1MHz1us。即使用12MHz晶振的机器周期为1us。 如果要定时1ms需要计数1ms/1us1000个定时器使用方式1工作那么初值为 2 16 − 1000 64536 2^{16}-1000 64536 216−100064536 0xFC18。即初值THx0xfc,TLx0x18。 如果要定时1s可以通过初值设置定时1ms当定时结束重新赋初值并设定一个全局变量累计定时1ms的次数当该全局变量累计1000次时表示定时1s。 如果要设定3s时间可以通过初值设定定时3ms其它同定时1ms。定时3ms需要计数3ms/1us3000定时器使用方式1工作初值为 2 16 − 3000 2^{16} - 3000 216−3000 62536 0xF448即初值THx0xF4,TLx0x48。 该实验在前面使用示例的基础上更改计数初值即可实现定时3s实现LED模块的闪烁。proteus中设计LED模块如下定时器模块在单片机内部。 软件设计如下 /*实现功能定时器0定时3s实现LED模块亮灭- 与定时/计数器工作有关的寄存器有IE、TCON、TMOD、THx、TLx- IE是中断允许控制寄存器TCON是中断请求标志寄存器TMOD是定时/计数器工作方式寄存器- THx和TLx是计数初值赋值寄存器。- IE中包括了- 总中断允许位(EA)- 外部中断0/1允许位(EX0/EX1)- 定时器0/1允许位(ET0/ET1)- 串口中断允许位(ES);- TCON中的高四位用于控制定时/计数器的启动和中断申请包括TR0/1、TF0/1- TR0/TR1是T0/T1运行控制位TR01时开始工作TR00时停止工作TR1与TR0类似- TF0/TF1是T0/T1溢出中断请求标志位溢出时由硬件自动置位CPU响应中断后由硬件自动清0可随时查询该位状态也可软件置1或清0.- TMOD高四位控制T1低四位控制T0高四位和低四位分别为有GATE、C/T、M1M0- GATE是门控位- GATE0表示不受外部中断信号影响仅TR0/TR1控制定时/计数器工作- GATE1表示受外部中断信号影响即TR0/TR1INT0控制定时/计数器工作- C/T是定时/计数器模式选择位C/T0为定时模式C/T1为计数模式- M1M0是工作方式设置位有四种方式00 01 10 11[2023-12-20] zoya */#include reg52.h #include typedef.h #include Delay.h#define GPIO_LED P2 /***********************************************************************
- 函数名 Timer0Init
- 函数功能 定时器0初始化工作方式1定时3ms仅TR0启动或停止计数
- 输入 void
- 输出 void ***********************************************************************/ void Timer0Init() {// 1. 设置工作方式1仅TR0控制TMOD | 0x01;// 2. 设置定时3ms的初值0xf448TH0 0xf4;TL0 0x48;// 3. 打开中断允许位EA 1;ET0 1;// 4. 置位TR0开始计数TR0 1; }void main() {Timer0Init(); while(1); }/**********************************************************************
- 函数名 Timer0
- 函数功能 定时器0中断服务函数定时3s控制LED模块亮灭
- 输入 void
- 输出 void ************************************************************************/ void Timer0() interrupt 1 {static u16 i;// 重新赋初值TH0 0xf4;TL0 0x48;i;if(1000 i){i0;GPIO_LED ~GPIO_LED;} }仿真结果 三、扩展实验三使用定时器1和数码管设计一个数字时钟 定时器的设置参考扩展实验二。 数字时钟采用24小时制显示使用“00-00-00”格式。 这里数码管使用一个八位一体的共阴极数码管使用芯片74HC138控制数码管的位选使用芯片74HC245控制数码管的段选P0口控制74HC245的输入P2.2 ~ P2.4控制74HC138的输入。proteus设计如下 软件设计如下 /*实现功能定时器1和数码管设计一个数字时钟- 与定时/计数器工作有关的寄存器有IE、TCON、TMOD、THx、TLx- IE是中断允许控制寄存器TCON是中断请求标志寄存器TMOD是定时/计数器工作方式寄存器- THx和TLx是计数初值赋值寄存器。- IE中包括了- 总中断允许位(EA)- 外部中断0/1允许位(EX0/EX1)- 定时器0/1允许位(ET0/ET1)- 串口中断允许位(ES);- TCON中的高四位用于控制定时/计数器的启动和中断申请包括TR0/1、TF0/1- TR0/TR1是T0/T1运行控制位TR01时开始工作TR00时停止工作TR1与TR0类似- TF0/TF1是T0/T1溢出中断请求标志位溢出时由硬件自动置位CPU响应中断后由硬件自动清0可随时查询该位状态也可软件置1或清0.- TMOD高四位控制T1低四位控制T0高四位和低四位分别为有GATE、C/T、M1M0- GATE是门控位- GATE0表示不受外部中断信号影响仅TR0/TR1控制定时/计数器工作- GATE1表示受外部中断信号影响即TR0/TR1INT0控制定时/计数器工作- C/T是定时/计数器模式选择位C/T0为定时模式C/T1为计数模式- M1M0是工作方式设置位有四种方式00 01 10 11使用一个八位一体的共阴极数码管显示时间74HC138芯片控制数码管的位选74HC245控制数码管的段选。[2023-12-20] zoya */#include reg52.h #include typedef.h #include Delay.h#define GPIO_DISPLAY P0 sbit LSAP2^2; sbit LSBP2^3; sbit LSCP2^4;// 共阴极数码管的码表0-9以及: u8 code smg[] {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x67, 0x40};static u16 h, m, s;/***********************************************************************
- 函数名 Timer0Init
- 函数功能 定时器0初始化工作方式1定时3ms仅TR0启动或停止计数
- 输入 void
- 输出 void ***********************************************************************/ void Timer1Init() {// 1. 设置工作方式1仅TR0控制TMOD | 0x10;// 2. 设置定时1ms的初值0xFC18TH1 0xFC;TL1 0x18;// 3. 打开中断允许位EA 1;ET1 1;// 4. 置位TR1开始计数TR1 1; }void DigDisplay() {LSA0; LSB0; LSC0; GPIO_DISPLAY smg[h/10];delayms(1);LSA1; LSB0; LSC0; GPIO_DISPLAY smg[h%10];delayms(1);LSA0; LSB1; LSC0; GPIO_DISPLAY smg[10];delayms(1);LSA1; LSB1; LSC0; GPIO_DISPLAY smg[m/10];delayms(1);LSA0; LSB0; LSC1; GPIO_DISPLAY smg[m%10];delayms(1);LSA1; LSB0; LSC1; GPIO_DISPLAY smg[10];delayms(1);LSA0; LSB1; LSC1; GPIO_DISPLAY smg[s/10];delayms(1);LSA1; LSB1; LSC1; GPIO_DISPLAY smg[s%10];delayms(1); }void main() {GPIO_DISPLAY 0x00;Timer1Init(); while(1){DigDisplay();} }/**********************************************************************
- 函数名 Timer1
- 函数功能 定时器1中断服务函数控制数码管显示
- 输入 void
- 输出 void **************************************************************************/ void Timer1() interrupt 3 {static u16 j;// 重新赋初值TH1 0xFC;TL1 0x18;j;if(1000 j){j0;s;if(60 s){s0; m;if(60 m){m0; h;if(24 h){h0;}}}} }仿真结果
- 上一篇: 泰安中商网络做的网站怎么进入成立一个做网站的公司
- 下一篇: 泰安做网站建设的网站开发人员介绍
相关文章
-
泰安中商网络做的网站怎么进入成立一个做网站的公司
泰安中商网络做的网站怎么进入成立一个做网站的公司
- 技术栈
- 2026年03月21日
-
泰安整站优化手机建站平台
泰安整站优化手机建站平台
- 技术栈
- 2026年03月21日
-
泰安营销型手机网站建设亚马逊主机wordpress
泰安营销型手机网站建设亚马逊主机wordpress
- 技术栈
- 2026年03月21日
-
泰安做网站建设的网站开发人员介绍
泰安做网站建设的网站开发人员介绍
- 技术栈
- 2026年03月21日
-
泰和县城乡建设局网站招标网站哪个比较好
泰和县城乡建设局网站招标网站哪个比较好
- 技术栈
- 2026年03月21日
-
泰兴网站建设phpnow安装wordpress
泰兴网站建设phpnow安装wordpress
- 技术栈
- 2026年03月21日
