找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6938|回复: 5
打印 上一主题 下一主题
收起左侧

关于单片机的一些问题,code和interrupt 3是怎么定义的?

[复制链接]
跳转到指定楼层
楼主
ID:467774 发表于 2019-1-14 11:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.unsigned char code   dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; 这是定义了一个一维数组dispbit,可是code在这里是什么意思啊?

2.void T1zd(void) interrupt 3      //3定时器1的中断号  1定时器0的中断号 0外部中断1 2外部中断2  4串口中断
{
TH1 = 0x1c;    //12.000
  TL1 = 0x18;

   LedNumVal++;
如上是一个定时响应程序,我的问题是interrupt 3是怎么定义的,我并没有定义过啊,而且头文件中#include <reg52.H>,#include <intrins.h>好像也没有定义过,求人解惑下,谢谢!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:467774 发表于 2019-1-14 11:26 | 只看该作者
有人吗???
回复

使用道具 举报

板凳
ID:410399 发表于 2019-1-14 16:29 | 只看该作者
1。“code”是单片机C语言特有的关键字
在单片机中RAM的空间特别小,特别珍贵。RAM空间,存放变量。而一些常量,比如码表等常量放在ROM中。所以单片机中code就是告诉单片机这个数据放入ROM中。
本例中dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; 数组内容为常量,故加上code,以节约RAM的空间。
其实code放在unsigned char 前也可以,比如code unsigned char dispbit[8]效果一样。
2.关于void T1zd(void) interrupt 3
“interrupt ”是单片机c语言中断关键字,至于后面的0,1,2,3,4,5,分别表示
0-外部中断0
1-定时器0
2-外部中断1
3-定时器1
4-串口中断
5-定时器2
“interrupt ”是单片机c语言中断关键字,是c51 语言在单片机中规定的,在程序编译时指明中断的类型。当相应的中断发生时,并执行这个中断函数。
本例中当定时器计数时间一到(即 TH1和TL1全部计满,并溢出 ),便执行下面程序,将0x1c放到 TH1中 0x18放到TL1 中,再开始重新计数(不断加1),每计满一次 LedNumVal值 加1。如此下去。。。
回复

使用道具 举报

地板
ID:76084 发表于 2021-9-29 23:37 | 只看该作者
mosqu 发表于 2019-1-14 16:29
1。“code”是单片机C语言特有的关键字
在单片机中RAM的空间特别小,特别珍贵。RAM空间,存放变量。而一些 ...

感谢大佬答疑解惑
回复

使用道具 举报

5#
ID:514901 发表于 2021-9-30 09:04 | 只看该作者
code修饰的变量,会被放到代码区,也就是单片机的FLASH里面,能节省单片机宝贵的RAM空间,代价就是这个变量是只读属性。
interrupt 3是指定这个函数为中断函数,中断3对应的是定时器1中断
回复

使用道具 举报

6#
ID:106977 发表于 2021-9-30 13:09 | 只看该作者
表明你的问题很多。单片机的书还要认真学习,还有很多基础问题你都不明白!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表