51单片机实现外部中断00H-FFH、000-255、0000-1023
外部中断00H-FFH
#include< reg51.h>
#define uint unsigned int
#define uchar unsigned char
sfr P0M0 = 0x94;
sfr P0M1 = 0x93;
sfr P2M0 = 0x96;
sfr P2M1 = 0x95;
uchar count;
uchar i;
uchar code leddata[]={
0xC0, //"0"
0xF9, //"1"
0xA4, //"2"
0xB0, //"3"
0x99, //"4"
0x92, //"5"
0x82, //"6"
0xF8, //"7"
0x80, //"8"
0x90, //"9"
0x88, //"A"
0x83, //"B"
0xC6, //"C"
0xA1, //"D"
0x86, //"E"
0x8E, //"F"
0x89, //"H"
0xC7, //"L"
0xC8, //"n"
0xC1, //"u"
0x8C, //"P"
0xA3, //"o"
0xBF, //"-"
};
uchar code ledwei[]={
0x01,0x02,0x04,0x08,
0x10,0x20,0x40,0x80
};
void delay(uint ms){
uint i,j;
for(i = ;i < ms; i++)
for(j = ;j < ; j++);
}
void init(){
EX0 = ;
IT0 = ;
EA = ;
}
void display(){
while(){
P2 = ~ledwei[];
P0 = leddata[i];
delay();
P2 = ~ledwei[];
P0 = leddata[count];
delay();
P2 = ~ledwei[];
P0 = leddata[];
delay();
}
}
void main(){
P0M0 = 0x00;
P0M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00; init();
while(){
display();
}
}
void int0() interrupt {
count++;
if(count == ){
count = ;
i++;
if(i == ){
i = ;
}
}
}
外部终端实现数码管000-255
#include< reg51.h>
#define uint unsigned int
#define uchar unsigned char
sfr P0M0 = 0x94;
sfr P0M1 = 0x93;
sfr P2M0 = 0x96;
sfr P2M1 = 0x95;
uchar count;
uchar i,j,m;
uchar code leddata[]={
0xC0, //"0"
0xF9, //"1"
0xA4, //"2"
0xB0, //"3"
0x99, //"4"
0x92, //"5"
0x82, //"6"
0xF8, //"7"
0x80, //"8"
0x90, //"9"
0x88, //"A"
0x83, //"B"
0xC6, //"C"
0xA1, //"D"
0x86, //"E"
0x8E, //"F"
0x89, //"H"
0xC7, //"L"
0xC8, //"n"
0xC1, //"u"
0x8C, //"P"
0xA3, //"o"
0xBF, //"-"
0xFF, //??
0xFF //???
};
uchar code ledwei[]={
0x01,0x02,0x04,0x08,
0x10,0x20,0x40,0x80
};
void delay(uint ms){
uint i,j;
for(i = ;i < ms; i++)
for(j = ;j < ; j++);
}
void init(){
EX0 = ;
IT0 = ;
EA = ;
}
void display(){ while(){
P2 = ~ledwei[];
P0 = leddata[j];
delay();
P2 = ~ledwei[];
P0 = leddata[i];
delay();
P2 = ~ledwei[];
P0 = leddata[count];
delay();
}
}
void main(){
P0M0 = 0x00;
P0M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00; init();
while()
{
display();
}
}
void int0() interrupt {
count++;
m++;
if(m == ){
m = ;
count = ;
i = ;
j = ;
}
if(count == ){
count = ;
i++;
if(i == ){
i = ;
j++;
if(j == ){
j = ;
}
}
} }
0000-1023
#include< reg51.h>
#define uint unsigned int
#define uchar unsigned char
sfr P0M0 = 0x94;
sfr P0M1 = 0x93;
sfr P2M0 = 0x96;
sfr P2M1 = 0x95;
uchar count;
uchar i,j,m,n;
uchar code leddata[]={
0xC0, //"0"
0xF9, //"1"
0xA4, //"2"
0xB0, //"3"
0x99, //"4"
0x92, //"5"
0x82, //"6"
0xF8, //"7"
0x80, //"8"
0x90, //"9"
0x88, //"A"
0x83, //"B"
0xC6, //"C"
0xA1, //"D"
0x86, //"E"
0x8E, //"F"
0x89, //"H"
0xC7, //"L"
0xC8, //"n"
0xC1, //"u"
0x8C, //"P"
0xA3, //"o"
0xBF, //"-"
0xFF, //??
};
uchar code ledwei[]={
0x01,0x02,0x04,0x08,
0x10,0x20,0x40,0x80
};
void delay(uint ms){
uint i,j;
for(i = ;i < ms; i++)
for(j = ;j < ; j++);
}
void init(){
EX1 = ;
IT1 = ;
EA = ;
}
void display(){ while(){
P2 = ~ledwei[];
P0 = leddata[n];
delay();
P2 = ~ledwei[];
P0 = leddata[j];
delay();
P2 = ~ledwei[];
P0 = leddata[i];
delay();
P2 = ~ledwei[];
P0 = leddata[count];
delay();
}
}
void main(){
P0M0 = 0x00;
P0M1 = 0x00;
P2M0 = 0x00;
P2M1 = 0x00; init();
while() {
display();
}
}
void int0() interrupt {
count++;
m++;
if(m == ){
m = ;
count = ;
i = ;
j = ;
}
if(count == ){
count = ;
i++;
if(i == ){
i = ;
j++;
if(j == ){
j = ;
n++;
if(n == ){
n = ;
}
}
}
}
51单片机实现外部中断00H-FFH、000-255、0000-1023的更多相关文章
- 51单片机实现外部中断0-F
#include< reg51.h> #define uint unsigned int #define uchar unsigned char sfr P0M0 = 0x94; sfr ...
- 51单片机实现定时器中断0-F
#include <reg51.h> #define uint unsigned int #define uchar unsigned char sfr P0M0 = 0x94; sfr ...
- 嵌入式外部中断控制编程方法论—比較CC2541(51核)和S5PV210(ARM核)
这是一篇阐述怎样对嵌入式SOC外部中断进行控制编程的方法论文章.希望读者理解本篇文章后.能够具备对市场上全部已经面世和将来面世的嵌入式芯片的外部中断进行控制编程的能力. 笔者原创的技术分享一直都恪守下 ...
- 51单片机SRF寄存器
1.21个寄存器介绍 51系列单片机内部主要有四大功能模块,分别是I/O口模块.中断模块.定时器模块和串口通信模块(串行I/O口),如其结构和功能如下图: 图1 51单片机结构和功能图 ...
- 51单片机外部中断INT0实例(汇编程序)
;普中51开发板 ;单片机的P3.2(INT0)引脚与按键K3脚连接 ;用汇编语言实现:按一次K1外部中断INT0响应一次,LED显示值加1(十进制), ;前提是共阴数码LED第一位,需要设定,由P0 ...
- 51单片机中断interrupt……using……
51单片机中断细节的一些问题. interrupt0:外部中断0interrupt1:定时器中断0interrupt2:外部中断interrupt3:定时器中断1interrupt4:串口 using ...
- 十天学会单片机Day1点亮数码管(数码管、外部中断、定时器中断)
1.引脚定义 P3口各引脚第二功能定义 标号 引脚 第二功能 说明 P3.0 10 RXD 串行输入口 P3.1 11 TXD 串行输出口 P3.2 12 INT0(上划线) 外部中断0 P3.3 1 ...
- c语言编写51单片机中断程序,执行过程是怎样的?
Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序:#include<reg52.h> void main(void) { EA=1; //开放总中断 E ...
- ET 与RETI 基于51单片机中断跳出指令“RETI”浅议
最近在基于51单片机编程的过程中出现了个很奇怪的问题“程序执行中在寄存器EA=1,ET0=1,TR0=1条件下,单TF0=1时并没有执行中断”.在有过单片机中断编程经历者都知道当EA=1,ET0=1的 ...
随机推荐
- 调用URL 接口服务
1.Net调用URL 接口服务 using System; using System.Collections; using System.Configuration; using System.Dat ...
- 【洛谷P1037】 产生数
产生数 题目链接 本着“水题不可大做”的原则,我直接字符串hash+爆搜,成功爆栈.. 我们发现,依次搜索每一位能取到的数字个数,最后乘起来即可(乘法原理) 然后又爆了一个点.. long long存 ...
- 【luogu P1807 最长路_NOI导刊2010提高(07)】 题解
题目链接:https://www.luogu.org/problemnew/show/P1807 求最大路?就是把权值取相反数跑最短路. #include <cstdio> #includ ...
- 技巧:Vimdiff 使用
技巧:Vimdiff 使用 各种 IDE 大行其道的同时,传统的命令行工具以其短小精悍,随手可得的特点仍有很大的生存空间,这篇短文介绍了一个文本比较和合并的小工具:vimdiff.希望能对在 Unix ...
- FastJson反序列化漏洞利用的三个细节 - TemplatesImpl的利用链
0. 前言 记录在FastJson反序列化RCE漏洞分析和利用时的一些细节问题. 1. TemplatesImpl的利用链 关于 parse 和 parseObject FastJson中的 pars ...
- Jmeter的简单介绍
Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测 试但后来扩展到其他测试领域. 它可以用于测试静态和动态资源例如静态文件 ...
- VM虚拟机网卡LAN区段模拟内网使用教程
目录 1. 测试环境 2. 设置LAN区段并测试 2.1. 添加LAN区段 2.2. 在虚拟机中设置静态IP地址 2.3. 测试同一LAN区段的主机是否可以联通 2.4 ...
- 启用image-filter扩展模块
进入lnmp目录打开lnmp.conf配置文件 修改Nginx_Modules_Options=' --prefix=/usr/local/nginx --with-http_image_filter ...
- h5移动端页面meta标签
<!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang="zh-cmn-Hans"&g ...
- 关于api接口
前阵子一直疯狂的找关于php的api接口方面的资料来学习,总结了一下,无非就是请求数据,然后返回数据,当然也要设置相关安全措施,比如认证口令 等.返回数据格式是json 还是xml 看自己需求咯