//包含头文件
#include <reg52.h>
#include <intrins.h>
//定义数据类型
#define uchar unsigned char
#define uint unsigned int
#define XH 20 //学号
//数码管段码表
uchar code SMG_CODE[] = {/*0,1,2,3,4,5,6,7,8,9,n,*/
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x5C,0x54,0x71,0x76,0x38,};
uchar array[] = {0,0}; //显示缓冲
//数码管位选引脚
sbit Wei1 = P3^0;
sbit Wei2 = P3^1;
//LED引脚
sbit LED = P1^7;
//计数值
uint Num = 0;
//显示标志位
uchar Flag = 0;
void delayms(uint x) //延时函数
{
uchar i;
while(x--)for(i = 0; i < 120; i++);
}
//显示数值
void Display(void)
{
P2 = 0x00;
Wei1 = 1; Wei2 = 0;
P2 = SMG_CODE[array[0]];
delayms(2);
P2 = 0x00;
Wei1 = 0; Wei2 = 1;
P2 = SMG_CODE[array[1]];
delayms(2);
}
//主函数
void main(void)
{
//显示学号
array[0] = XH/10;
array[1] = XH%10;
//初始化定时器 中断
TMOD = 0x51;
TH0 = (65536 - 50000)>>8;
TL0 = (65536 - 50000)&0xff;
ET0 = 1;
TH1 = 0;
TL1 = 0;
EX0 = 1;
IT0 = 1;
EX1 = 1;
IT1 = 1;
EA = 1;
PX0 = 0;
PX1 = 1;
while(1)
{
if(Flag == 1){Num = TH1<<8|TL1; if(Num < 99)Num = 99; array[0] = Num/10; array[1] = Num%10;} //显示标志位为1显示数值
Display(); //显示
}
}
//外部中断0
void EX0_IT0(void) interrupt 0
{
//启动停止定时器0 显示标志位置1
TR0 = ~TR0;
Flag = 1;
}
//定时器0中断函数
void ET0_T0(void) interrupt 1
{
static uchar i = 0;
//定时器初值
TH0 = (65536 - 50000)>>8;
TL0 = (65536 - 50000)&0xff;
//1S时间到 输出波形
if(++i == 20)
{
i = 0;
LED = ~LED;
}
}
//外部中断1
void EX1_IT1(void) interrupt 2
{
//启动停止定时器1 显示标志位置1
TR1 = ~TR1;
Flag = 1;
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于定时器的采样周期控制模块设计
共42个文件
bak:6个
obj:4个
lst:4个
需积分: 0 3 下载量 20 浏览量
2023-12-02
13:23:53
上传
评论
收藏 109KB ZIP 举报
温馨提示
实验内容:基于单片机控制的系统中,实现转速脉冲的周期测量,采用数码管或LED显示输出。 1、系统中1个LED发光二极管。外中断0接一个按键,作为系统启动/停止键。利用定时器T0产生周期2s的方波。 上电时,发光二极管灭。 当按下按键时,系统启动,产生2s的方波,发光二极管亮1s,灭1s,循环交替。再次按下按键时,系统停止,发光二极管灭。 再按下按键时,系统启动。 2、系统中有2位数码管,1个LED发光二极管。系统利用定时器T0产生周期2s的方波,利用定时器/计数器T1记录脉冲个数。 外中断0接一个按键,作为T0的启动/停止键。按一次启动定时器T0,再按一次停止。停止后恢复到上电状态。 外中断1接一个按键,作为T1的启动/停止键。按一次启动计数器T1,再按一次停止。停止后恢复到上电状态。 上电时,发光二极管灭,数码管显示学号后2位。 T0启动后,发光二极管亮1s,灭1s。 T1实现:记录由T1口所输入脉冲个数,用两位数码管输出。 (定时器分别用中断方式和查询方式实现。) 提示:段码线接P2口,位选线接P3.0,P3.1。数码管为共阴极型,位选为1时选通。
资源推荐
资源详情
资源评论
收起资源包目录
基于定时器的采样周期控制模块设计.zip (42个子文件)
20250203 实验二
1
程序
程序_uvopt.bak 6KB
程序_uvproj.bak 0B
程序 3KB
main.__i 43B
STARTUP.LST 14KB
程序.M51 5KB
main.OBJ 3KB
STARTUP.A51 6KB
程序.uvgui_ASUS.bak 66KB
程序.hex 706B
main.LST 2KB
程序.uvproj 13KB
程序.plg 818B
程序.uvgui.ASUS 66KB
STARTUP.OBJ 749B
程序.lnp 56B
main.c 740B
程序.uvopt 6KB
仿真.PWI 742B
仿真.DSN 33KB
Last Loaded 仿真.DBK 85KB
2
程序
程序_uvopt.bak 6KB
程序_uvproj.bak 0B
程序 5KB
main.__i 43B
STARTUP.LST 14KB
程序.M51 8KB
main.OBJ 5KB
STARTUP.A51 6KB
程序.uvgui_ASUS.bak 66KB
程序.hex 1KB
main.LST 4KB
程序.uvproj 13KB
程序.plg 904B
程序.uvgui.ASUS 66KB
STARTUP.OBJ 749B
程序.lnp 56B
main.c 2KB
程序.uvopt 6KB
仿真.PWI 742B
仿真.DSN 43KB
Last Loaded 仿真.DBK 43KB
共 42 条
- 1
资源评论
s1174670658
- 粉丝: 1
- 资源: 20
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功