学好单片机,先掌握单片机的结构、特点和原理,67页内容详细介绍
单片机内容概述
单片机的
概念 :一片半导体硅片集成:中央处理单元(CPU)、存储器(RAM、ROM)、并行I/O、串行I/O、定时器/计数器、中断系统、系统时钟电路及系统总线。用于测控领域的单片微型计算机,简称单片机。
单片机使用时,通常是处于测控系统的核心地位并嵌入其中,所以国际上通常把单片机称为嵌入式控制器。
单片机的
分类 :(1)通用型单片机就是其内部可开发的资源(如存储器、I/O等各种外围功能部件等)可以全部提供给用户。
用户根据需要,设计一个以通用单片机芯片为核心,再配以外围接口电路及其它外围设备,并编写相应的软件来满足各种不同需要的测控系统。通常所说的和本书介绍的是指通用型单片机。
(2)专用型单片机是专门针对某些产品的特定用途而制作的单片机。
单片机
67页内容详细介绍单片机(文末有获取)
1000G机械必备设计资料内容详情
这1000G资料涉及的范围很广,具体来说包括机械设计、机械原理、模具、机械加工、材料类、电气行业、各种零件模型和非标等等领域,具体内容有:上千份文档类(各类机械设计手册、液压类手册、自动化类手册等等,所有历史文章的PPT源文件等)、常用的设计工具(一些自动计算表格)以及各类视频教程类,我相信这1000G资料对于提升你的能力一定会有很大的帮助。同时在你工作中遇到相关问题的时候,这些资料也能提供很好的指导作用。
目录
计算表格
设计手册
视频教程
各类工具
PPT源文件
获取方式
单片机入门-C51语言用按键中断和查询两种方法调整电子钟参数解说
单片机入门-C51语言用按键中断和查询两种方法调整电子钟参数解说视频:
视频教程
传统的单片机中断5个。包括两个外部中断(int0,int1),2个定时中断t1,t0,和一个串口中断(uart)。中断具有简单直观、易于控制。
优点:
响应快、电平和时钟触发中断、计数中断、定时中断、来自串口数据中断、睡眠中断唤醒模式中断。
缺点:
只能采用单任务机制,程序只能按顺序依次执行,缺乏灵活性,只能使用中断函数实时地处理一些较短的任务,在较复杂的应用中使用极为不便。
按键控制有查询和中断两种方式,中断必须借助中断引脚,而查询按键可用任何IO端口。按键较少时,一个按键占用一个IO口,而按键数量较多时,多采用矩阵形式,如常用,4个端口作为输出、4个端口作为输入的4*4矩阵来获得16个按键。
按键控制用查询方法步骤:
设计好按键电路;声明按键对应的IO管脚变量,如sbit KEY=P1^6;用if语句判断是否按键按下,如if(KEY==0);延时消除抖动。按键控制用外部中断方法步骤:
1.设计好按键电路;
2.设置外部中断用触发方式IT0/IT1
3.使能外部中断EX0/EX1
4.使能总中断EA
5.中断函数程序的编写
本文用到的电路图如下:
本文用到的代码如下:
#include "lcd12864.h"
unsigned char count=0;
unsigned char hour=15,minute=59,second=34;
unsigned char CLOCK[]="15:59:34";
unsigned char keyNum=0;
sbit KEY_ADD=P1^6;
sbit KEY_SUB=P1^7;
void int0() interrupt 0//处理功能选择的按键中断请求
{
keyNum++;
if(keyNum>3)
{
keyNum=0;
}
}
void timer0() interrupt 1
{
TH0=0x3c;//T0 15536-->65536 =50ms
TL0=0xb0;
count++;
if(count==20)//1S
{
count=0;
second++;
if(second==60)
{
second=0;
minute++;
if(minute==60)
{
minute=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
}
}
void mydelay(unsigned int k)
{
unsigned char i;
unsigned int j;
for(j=k;j>0;j--)
for(i=124;i>0;i--);
}
void main()
{
lcd_init();
lcd_clr();
IT0=1;
EX0=1; //按键1 外部中断0
TMOD=0x01;
TH0=0x3c;//T0 15536-->65536 =50ms
TL0=0xb0;
ET0=1;//T0
EA=1;
TR0=1;//启动定时器
printchars(5,0,"Clock",0);
while(1)
{
CLOCK[0]=hour/10+0x30;
CLOCK[1]=hour%10+0x30;
CLOCK[3]=minute/10+0x30;
CLOCK[4]=minute%10+0x30;
CLOCK[6]=second/10+0x30;
CLOCK[7]=second%10+0x30;
printchars(4,2,CLOCK,0);
{
if(keyNum==1)
{
ds(0,4,'H',0);
}
if(keyNum==2)
{
ds(0,4,'M',0);
}
if(keyNum==3)
{
ds(0,4,'S',0);
}
TR0=0;
switch(keyNum)
{
case 0:break;
case 1:
{
if(KEY_ADD==0)//用户按下加1按键
{
if(hour<23)hour++;else hour=0;
}
if(KEY_SUB==0)//用户按下减1按键
{
if(hour>0)hour--;else hour=23;
}
mydelay(1000);
break;
}
case 2:
{
if(KEY_ADD==0)//用户按下加1按键
{
if(minute<59)minute++;else minute=0;
}
if(KEY_SUB==0)//用户按下减1按键
{
if(minute>0)minute--;else minute=59;
}
mydelay(1000);
break;
}
case 3:
{
if(KEY_ADD==0)//用户按下加1按键
{
if(hour<59)second++;else second=0;
}
if(KEY_SUB==0)//用户按下减1按键
{
if(hour>0)second--;else second=59;
}
mydelay(1000);
break;
}
}
TR0=1;
}
}
}
相关问答
51 单片机 中定时器的四种工作方式的各自定时范围?工作方式013位计数模式最大范围0-8191工作方式116位计数模式最大范围0-65535工作方式28位自动重装计数模式0-255工作模式3(只有T0)TL0和TH0将被分割...
单片机 同时运行几个 中断 ?单片机可以同时运行多个中断,但是它们之间需要通过优先级来进行区分和控制。当有多个中断同时发生时,单片机会根据各个中断的优先级先后执行,处理高优先级的中...
单片机中断 响应时间肿么计算-ZOL问答中断响应时间:从外部中断请求有效(外部中断请求标志置1)到转向中断入口地址所需要的响应时间。每个机器周期的S5P2时刻,INTx引脚的电平被锁存到内部寄存器中...
一个关于 单片机 的定时 中断 的问题.有这样一句话:假设时钟频率...[最佳回答]51单片机在内部要对晶振12MHZ,所以12M晶振除以12就是1M,即1秒钟有1M个时钟周期,每个时钟周期就是10^-6秒,即1us.TH0和TL0分别为定时器T0的高八位和...
51 单片机 怎么用 中断 检测编码器?在使用51单片机中断检测编码器时,需要将编码器的A、B相信号接到单片机的外部中断口,然后通过编程设置外部中断的触发方式和中断服务程序。当编码器发生旋转时...
【18.MCS-51 单片机 的最小时序定时单位是()。A.状态B.拍节C....[最佳回答]CDACBBBCC
单片机 C语言定时器怎么调用-ZOL问答单片机中通过中断的方式来调用定时器。具体的调用方式可以参考通过如下程序:程序功能:利用定时器进行定时,实现每秒中led闪烁一次#include
答:51单片机的中断系统有以下几种寄存器:中断允许寄存器IEEA——全局中断ES——串口中断ET2——定时器2中断EX1——外部中断1ET1——定时器1中断EX0...
单片机中断 优先级是如何划分的?CPU同时接收到几个中断时,首先响应优先级别最高的中断请求。正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。正在进行的低优先级中断服务,能被...
单片机 编程:8个流水灯每隔一秒亮一个,用 中断 的方式。求完整编程啊!(低电平亮的,而且只能有?unsignedintTimeCounter=0;主程序定时器初始化256分之一秒;while(1);//这段你自己写,因为不知道什么单片机,时钟多少。。。计数范围可能不够考虑累...uns...