如何让单片机定时器计数器/计数器C/T0工作于方式1定时1ms?求用汇编语言编程,谢谢。

照片风格各异,时而腾空跃起,时而单手托举。
暴雨把房屋淹没,因为走得着急,40万借条没来得及拿。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  ///////////////////////////////////////////////////////////////////////////
  实现功能: 配置1的相关寄存器,使其实现定时器中断功能,然后通过在数码
  实验板型号:BS-XYD-C52
  实验名称: 定时器1实现
  编写人: 谢应东
  编写日期:
  ///////////////////////////////////////////////////////////////////////////
  #include&reg52.h&
  #define uchar unsigned char //定义unsigned char 为 uchar
  #define uint unsigned int //定义unsigned int 为 uint
  uchar cTime_10ms_ //中断次数计数单元
  uchar cTime_1s_ //判断是否为1s的变量
  uchar uDis_buff[2]; //显示缓冲区,存放要显示的2个字符的段码值
  uchar cT //秒计数单元
  #define Time_1s_Sign 100 //根据中断周期,判断是否到一秒的标志
  sbit Duan=P2^6; //定义数码管的段选使能端
  sbit Wei =P2^7; //定义数码管的位选使能端
  #define Digital_tube_Wei_Enable Wei=1; //开启控制数码管的位选使能端
  #define Digital_tube_Wei_Disable Wei=0; //关闭控制数码管的位选使能端
  #define Digital_tube_Duan_Enable Duan=1; //开启控制数码管的段选使能端
  #define Digital_tube_Duan_Disable Duan=0; //关闭控制数码管的段选使能端
  #define Digital_tube_Duan P0 //定义数码管数据端口
  uchar code Dis_table[]= //将BCD码转换成数码管扫描码的数组
  {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};
  uchar code Dis_Position[]= //定义数码管位选的数组
  {0x3e,0x3d,0x3b,0x37,0x1f,0x2f};
  ///////////////////////////////////////////////////////////////////////////
  函数名称:毫秒延时函数
  函数功能:实现毫秒级的延时
  参数介绍:Delay_MS: 定义需要延时的毫秒的数值
  iNumber: 记录Delay_MS的数值,以for语句实现所要求的延时
  iValue: 要延时毫秒所要进行的循环数值,本数值为实际测得
  返回值: 无
  注意事项:本实验是在所用晶振为12M的前提下实现的毫秒延时,本函数是通过循环的形
  式完成,所以如果改变了晶振的频率,请做相应的改变
  ///////////////////////////////////////////////////////////////////////////
  void DelayMs(uint Delay_MS)
  uint iNumber,iV
  for(iNumber=0;iNumber&Delay_MS;iNumber++) //用for语句实现的延时
  iValue=107; //107这个数值是通过测定而得
  while(iValue--);
  ///////////////////////////////////////////////////////////////////////////
  函数名称:One_DigitalTube_display
  函数功能:完成在实验板上数码管指定显示,即在特定的数码管上显示特定的数字,比
  在第一个数码管上显示0
  参数介绍:uData:要显示的数字的BCD码数组
  uNumber:选择哪个数码管显示,即让某个特定数码管显示
  返回值: 无
  注意事项:实验板上的数码管是共阴极的数码管,如果使用共阳极的数码管,请注意不
  要弄反了
  ///////////////////////////////////////////////////////////////////////////
  void One_DigitalTube_display(uchar uData,uchar uNumber)
  Digital_tube_Duan_E //使能数码管的段选
  Digital_tube_Duan=Dis_table[uData];//输入所要显示的数值
  Digital_tube_Duan_D //关闭数码管的段选
  Digital_tube_Duan=Dis_Position[uNumber]; //点亮特定的数码管
  Digital_tube_Wei_E //使能数码管的位选
  Digital_tube_Wei_D //关闭数码管的位选
  DelayMs(5); //调整时序,以实现稳定显示
  ///////////////////////////////////////////////////////////////////////////
  函数名称:Time_to_disbuffer
  函数功能:把要在数码管上显示的数值,进行取余、取整,即对数值进行分割,这样以
  便显示在分离的数码管
  参数介绍:无
  返回值: 无
  注意事项:无
  ///////////////////////////////////////////////////////////////////////////
  void Time_to_disbuffer()
  uDis_buff[1]=cT //对cTime的数值取余,即就是取cTime的个位
  uDis_buff[0]=cTime/10; //对cTime的数值取整,即就是取cTime的十位
  ///////////////////////////////////////////////////////////////////////////
  函数名称:Init_time1
  函数功能:配置定时器1,配置的模式是定时器1采用16位定时器模式,在定时器1的输入
  数值寄存器输入特定的数值,使其每次中断的周期为10ms,同时允许定时器1
  中断,并打开总中断
  参数介绍:无
  返回值: 无
  注意事项:无
  ///////////////////////////////////////////////////////////////////////////
  void Init_time1(void)
  TMOD |= 0x10;
  TH1=()/256;
  TL1=()%6; //定时器0的,写入数值寄存器的低8位
  EA=1; //总中断打开
  ET1=1; //定时器T0允许中断
  TR1=1; //定时器T0开始工作
  ///////////////////////////////////////////////////////////////////////////
  函数名称:Timer_Display
  函数功能:把显示缓冲区的数值显示在数码管上
  参数介绍:cNumber:记录for语句的循环次数
  返回值: 无
  注意事项:无
  ///////////////////////////////////////////////////////////////////////////
  void Timer_Display()
  uchar cN
  for(cNumber=0;cNumber&2;cNumber++)
  One_DigitalTube_display(uDis_buff[cNumber],cNumber);
  DelayMs(2);
  ///////////////////////////////////////////////////////////////////////////
  函数名称:main
  函数功能:利用定时器1中断,在数码管上实现以一分钟为周期的计数器
  参数介绍:无
  返回值: 无
  注意事项:无
  ///////////////////////////////////////////////////////////////////////////
  void main()
  Init_time1(); //初始化定时器1
  cTime=0;
  while(1)
  if(cTime_1s_ok)
  cTime_1s_ok=0;
  if(++cTime&=60) //每次自加一,同时判断是否到1分钟
  cTime=0;
  Time_to_disbuffer(); //新调整好的时间送入显示缓冲区
  Timer_Display(); //更新显示内容
  ///////////////////////////////////////////////////////////////////////////
  函数名称:Interrupt_handler_time1
  函数功能:重新给寄存器TH1和TL1赋值,判断是否到达一秒,如果到一秒了,把相应的
  变量赋予正值,以方便其他的程序编写
  参数介绍:无
  返回值: 无
  注意事项:无
  ///////////////////////////////////////////////////////////////////////////
  void Interrupt_handler_time1(void) interrupt 3
  TH1=()/256;//定时10毫秒
  TL1=()%6;
  cTime_10ms_counter++;
  if(cTime_10ms_counter==Time_1s_Sign) //判断是否到达一秒
  cTime_10ms_counter=0;
  cTime_1s_ok=1;
  原文链接:
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
电子工程世界(EEWorld)是一家专为中国电子工程师和电...
10683文章数
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬初夜
客服热线:86-10-
客服邮箱:1 Pages: 1/2& & &Go
luoguangzhi
级别: 实习会员
发帖数量: 28 个
工控威望: 26 点
下载积分: 110 分
在线时间: 19(小时)
注册时间: 最后登录:
[GX编程软件写梯形图程序时,输出为什么没法写进定时器指令T&& 计数器C&&&&&& ???请教高人&&&&谢谢
有小知识,无大学问。
级别: 论坛版主
工控威望: 6922 点
下载积分: 72342 分
在线时间: 2614(小时)
注册时间: 最后登录:
点线圈输出----( )指令后,输入T0 K15 这样的格式。或者直接回车呼出输入框后,填入OUT T0 K15这样的格式。 注意中间有空格
-----------------------------------------My E-Mail :
.cn/u/-----------------------------------------略懂……
penzhenjian
级别: 略有小成
发帖数量: 280 个
工控威望: 389 点
下载积分: 1808 分
在线时间: 154(小时)
注册时间: 最后登录:
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *最后登录: *
工控人好辛苦
级别: 略有小成
发帖数量: 160 个
工控威望: 206 点
下载积分: 404 分
在线时间: 62(小时)
注册时间: 最后登录:
大概你是没写常数的值吧
支持国货,少说多做。
级别: 略有小成
发帖数量: 319 个
工控威望: 403 点
下载积分: 13340 分
在线时间: 233(小时)
注册时间: 最后登录:
<div class="f14" id="read_楼是对的
耐得住挫折的打磨,我们将迸发出比钻石还璀璨的光芒——
级别: 论坛先锋
发帖数量: 839 个
工控威望: 1046 点
下载积分: 658 分
在线时间: 734(小时)
注册时间: 最后登录:
引用引用第1楼sjm213于 23:16发表的 Re:GX编程软件写梯形图程序时,输出为什么没法写进定时器指令T&& J计数 .. :点线圈输出----( )指令后,输入T0 K15 这样的格式。或者直接回车呼出输入框后,填入OUT T0 K15这样的格式。 注意中间有空格
成功的路上需要帮助
级别: 探索解密
发帖数量: 33 个
工控威望: 106 点
下载积分: 349 分
在线时间: 21(小时)
注册时间: 最后登录:
指令弄错了。
wangcheng18
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *最后登录: *
照1楼的方法肯定是可以的,还不行就是你方法有误。
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *最后登录: *
你没把o&欧“写成0“零”?我就混淆过还几回。尤其是笔记本电脑。二者相隔很近。
级别: 略有小成
发帖数量: 452 个
工控威望: 390 点
下载积分: 3882 分
在线时间: 221(小时)
注册时间: 最后登录:
你没把O&欧“写成0“零”?我就混淆过还几回。
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *最后登录: *
操作有问题
1 Pages: 1/2& & &Go> 问题详情
8051定时器/计数器T0工作方式0和方式1的区别是()A.前者是16位后者是13位B.前者是16位后者是8位C.
悬赏:0&答案豆
提问人:匿名网友
发布时间:
8051定时器/计数器T0工作方式0和方式1的区别是( )A.前者是16位后者是13位B.前者是16位后者是8位C.前者是13位后者是8位D.前者是13位后者是16位请帮忙给出正确答案和分析,谢谢!
网友回答(共0条)
我有更好的答案
您可能感兴趣的试题
1协调CPU与外围设备之间的数据传送的是(&&)A.三态门B.锁存器C.缓冲器D.寄存器2MCS-51单片机在正常运行程序时RST引脚是(&&)A.高电平B.低电平C.脉冲输入D.高阻态
相关考试课程
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……君,已阅读到文档的结尾了呢~~
第六章 习题&#40;1&#41;
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
第六章 习题&#40;1&#41;
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口&#xe621; 上传我的文档
&#xe602; 下载
&#xe60c; 收藏
该文档贡献者很忙,什么也没留下。
&#xe602; 下载此文档
正在努力加载中...
定时器计数器t0.t1接口习题
下载积分:1000
内容提示:定时器计数器t0.t1接口习题
文档格式:DOC|
浏览次数:8|
上传日期: 02:10:07|
文档星级:&#xe60b;&#xe612;&#xe612;&#xe612;&#xe612;
该用户还上传了这些文档
定时器计数器t0.t1接口习题
官方公共微信

我要回帖

更多关于 stm8 1ms定时器 的文章

 

随机推荐