码迷,mamicode.com
首页 > 其他好文 > 详细

C51回顾二

时间:2015-01-31 12:44:06      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:

一.在使用多位一体数码管时,它们内部的公共端是独立的,而负责显示什么数字的段线全部是连在一起的,独立的公共端可以控制具体哪一位数码管可以显示,连在一起的段线可以控制到底显示什么数字。通常我们把公共端叫做位选线,连接在一起的段线叫做段选线。通常单位数码管是10个引脚,二位数码管也是10个引脚,四位数码管是12位引脚。

二.在嵌入式编程中,根据不同的需要来建立自己的码表会经常遇到的,这里共阴极数码管的码表在C51中可以这样建立,以下只是一个示例:

 unsigned char code table[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,

0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};分别代表0~F的数字。这里code表示编码的意思,编译后数组直接分配到程序空间中,去掉code后,定义的数组编译后会被分配到内存空间。

三.我们知道控制一个多位数码管的显示,需要两类信号,一个是段选信号,一个是位选信号,这里我们要先送哪一个信号为好了?

1)先送位选信号,在送段选信号。这里要注意在送位选信号以前,必须先清除段选总线上的信号,以免段选总线上的信号立即被显示,而此时被显示的数据不一定是我们实际要送的段选信号。简单的过程描述为消影,送位选信号,在送段选信号。

2)先送段选信号,然后消影,在送位选信号。

注:这里我们通常在硬件上需要加数据锁存器,如74HC573.

 

四.C51中断服务程序的写法:

void  函数名() interrupt 中断号 using 工作组

{

中断服务程序内容

}

注:中断函数不能带返回值;

中断函数也不能带任何形参;

中断号是指单片机中几个中断源的序号,这个序号是编译器识别不同中断的唯一符号。

工作组是指这个中断函数使用单片机内存中4组工作寄存器中的哪一组,C51编译器在编译程序时会自动分配工作组,因此“using 工作组”我们可以省略不写。

 

五.面对51单片机的中断系统,可以从以下几个问题思考?

1)有几个中断源?每个中断源的触发方式有几种(也可理解为中断源的触发条件是什么)?

2)每个中断源的中断优先级是否可设置?还是默认它是最低或最高的,还是按查询次序来处理?

3)中断请求标志位,请求中断前是硬件还是软件控制请求?请求中断得到响应是硬件还是软件结束请求?

4)中断允许标志位,是几级允许控制?它的允许是否与外部引脚也有关(即不是纯软件的控制)?

5)中断对应的寄存器是位操作和字节操作都可以还是只能字节操作?

6)中断能否被打断,有两个概念:中断能否被自身的中断所打断?中断能否被其他中断所打断?

 

 

 

 

 

C51回顾二

标签:

原文地址:http://blog.csdn.net/tangxing1212/article/details/43338809

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!