【51单片机学习过程记录】9 中断之定时计数器0的使用2
来源:互联网 发布:威海手机数据恢复公司 编辑:程序博客网 时间:2024/05/14 08:47
程序说明:使用定时计数器0定时,每秒在数码管显示0到9的变化
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include <reg52.h>
#define uchar unsigned char#define uint unsigned int
sbit duan=P2^6;
sbit wei=P2^7;
uchar code num[]={0x3f,0x6,0x5b,0x4f,0x66,0x6d,0x7d,0x7,0x7f,0x6f};
uchar code guwei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar p,q;
//延时函数
void delay(uint x)
{
uint i,y;}
for(i=x;i>0;i--)
for(y=210;y>0;y--);
void main()
{
EA=1;}
ET0=1;
TMOD=0x01;
TR0=0;
TH0=(65536-50000)/256; //设为50ms
TL0=(65536-50000)%256;
P1=0x0;
p=0; //用来计算一秒
q=0; // 其变化用于数码管显示
TR0=1;
while(1);
//数码管显示每秒数字变化
void display(uchar n)
{
P0=guwei[0];}
wei=1;
wei=0;
P0=num[n];
duan=1;
duan=0;
//定时计数器0中断函数
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
p++;
if(p==20)
{
p=0;display(q);q++;if(q==10)
q=0;
}
}
程序小结:
每一篇学习实践的记录都是在前面的学习和实践中延伸出来的,如果有新的知识点,会详述之,否则,在前文都有提及。
这个程序只是在定时计数器的基础上加上了数码管显示不同数字的功能,需要注意的应该是,如何把每次中断一秒,以不同的数字显示出来,也就是说数码管显示的数字是变化的,程序中我使用变量q作为数码管变化显示的根据,在中断函数中令q从0到9变化,然后把q的值传给显示函数display()。
过程插曲:
相信有不少人都遇到
error 65:access violation at C:0x0000 :no ‘execute/read’ permission
这个问题,百度问,也会发现很多这样的问题,大部分是汇编程序,大概是程序制定的起始地址不正确,但我写的是c程序,然后继续找答案。
结果是 让老师晕在厕所 的出错,是的,正如问题出现的原因是程序执行的初始地址出错,应该在程序入口处找问题,
很菜的出错,就是我把void main() 写成 void mian() 打错了单词。
以后要注意。
0 0
- 【51单片机学习过程记录】9 中断之定时计数器0的使用2
- 【51单片机学习过程记录】8 中断 之定时计数器0的使用
- 【51单片机学习过程记录】7 中断之 定时计数器0 操作前理解过程
- 【51单片机学习过程记录】10 中断之定时计数器1的应用
- 【51单片机学习过程记录】16 中断之 串口中断的应用2(中断方式)
- 【51单片机学习过程记录】12中断 之外部中断的应用2
- 学习笔记之-51单片机定时计数器
- 【51单片机学习过程记录】11 中断之外部中断的应用
- 【51单片机学习过程记录】14 中断之串口中断的应用1(查询方式)
- 51单片机的中断与定时计数器尝试
- 【51单片机学习过程记录】13中断 之串口中断应用前的了解过程(较详细)
- 51单片机的定时/计数器
- 【51单片机学习过程记录】15 中断之串口中断查询方式中出现的问题及分析
- 单片机之定时/计数器
- 关于51单片机学习中计数器/定时器中断的理解
- 单片机的定时/计数器
- 51单片机定时计数器
- 51单片机之中断的实现过程
- java--Cookie应用
- Hdu4554 叛逆的小明
- 【SQL】按字段分组查询符合条件记录的方法
- opencv3学习笔记(一)——opencv入门
- KMP模版 【KMP】
- 【51单片机学习过程记录】9 中断之定时计数器0的使用2
- Hdu 5150 Sum Sum Sum
- 解决场景加载慢的一种方法
- 由翻转字符窜再次理解递归
- Hdu 2569 彼岸
- POJ 3461 Oulipo【KMP】
- CSU 1598 最长公共前缀 【KMP】
- 75个国内主流源码类学习网站
- 排序算法