pic12f675单片机学习程序2
更新时间:2023-04-12 09:23:02 阅读量: 实用文档 文档下载
pic12f675单片机学习程序2
//将INT处的短路帽插上,注意led处的短路帽‘2’和‘3’ 要拔掉 ;led 处的短路帽‘1’
要插上 ;
//RST处的短路帽要插上
//实验现象,上电后,led0先是亮,然后每按一次 INT处的按钮 LED0的状态都会改变一
次(即一次暗一次亮)
//引用头文件
#include
#define u8 unsigned char
#define u16 unsigned int
void yanshi(void) //延时子函数
{
u8 i;
u16 j;
for(j=2435;j>0;j--)
{
for(i=100;i>0;i--)
{
;
}
}
}
void interrupt GP_int0(void)
{
static u8 i=0;
if(1 == INTF)
{
if(0==i)
{
GPIO0=1;
i=1;
}
else
{
GPIO0=0;
i=0;
}
INTF=0;
}
}
void init(void) {
CMCON=0X07;//比较器关闭
ANSEL=0X00;//设GP0到GP3都为数字IO口OPTION=0X80;//禁止GPIO上拉
TRIS0=0;//GP0口设为输出
INTE=1;//使能GP2的外部中断
yanshi();//延时一段时间,防止上电误动作
INTF=0;//清一下中断标志
GPIO0=0;//先点亮LED0
GIE=1;//全局中断使能
}
void main(void) {
init();
while(1)
{
;
}
}
//tmer0 查询方式实现1s的定时
// led0 每1秒闪烁一次(查询方式) //选用内部晶振 4M
//把0处短路帽按上
//引用头文件
#include
//符号变量替换
#define u8 unsigned char
#define u16 unsigned int
#define led GPIO0
//用c语言嵌套汇编来实现“喂狗” #define clrwdt() asm("CLRWDT") //全局变量的声明
u8 n=0;
void init(void)
{
CMCON=0X00;//比较器关闭
ANSEL=0X00;//设GP0到GP3都为数字IO口
OPTION=0X07;//禁止GPIO上拉定时器0 预分频为 1:256 TRIS0=0;//GP0口设为输出
TMR0=156;//每39次溢出是1S }
void tmer0(void) {
if(T0IF==1)
{
n++;
TMR0=156;
T0IF=0;
if(n==39)
{
led=0;
}
if(n==39*2)
{
led=1;
n=0;
}
}
}
void main(void)
{
init();//初始化
while(1)//循环
{
clrwdt();
tmer0();
}
}
//tmer0 中断方式实现1s的定时
// led0 每1秒闪烁一次(中断方式)
//选用内部晶振 4M
//把0处短路帽按上
//引用头文件
#include
//符号变量替换
#define u8 unsigned char
#define u16 unsigned int #define led GPIO0 //用c语言嵌套汇编来实现“喂狗”
#define clrwdt() asm("CLRWDT")
//全局变量的声明
u8 n=0;
void init(void)
{
CMCON=0X00;//比较器关闭
ANSEL=0X00;//设GP0到GP3都为数字IO口
OPTION=0X07;//禁止GPIO上拉定时器0 预分频为 1:256 TRIS0=0;//GP0口设为输出
T0IF=0;
T0IE=1;
GIE=1;
TMR0=156;//每39次溢出是1S
}
void interrupt tmer0(void) {
if(T0IF==1&&T0IE==1)
{
n++;
TMR0=156;
T0IF=0;
if(n==39)
{
led=0;
}
if(n==39*2)
{
led=1;
n=0;
}
}
}
void main(void)
{
init();//初始化
while(1)//循环
{
clrwdt();
}
}
//tmer1 中断方式实现1分钟的定时
//由于是使用PIC12F675 的内部晶振,内部晶振不是很精确,所以1分钟延时的误差在+/-
6秒之内都是可以接受的。
// led0 每1分钟闪烁改变亮灭状态一次(中断方式) //选用内部晶振 4M //把0处短路帽按上
//引用头文件
#include
//符号变量替换
#define u8 unsigned char #define u16 unsigned int #define led GPIO0 //用c语言嵌套汇编来实现“喂狗”
#define clrwdt() asm("CLRWDT")
//全局变量的声明
u8 n=0;
void init(void)
{
CMCON=0X00;//比较器关闭
ANSEL=0X00;//设GP0到GP3都为数字IO口
OPTION=0X07;//禁止GPIO上拉定时器0 预分频为 1:256 TRIS0=0;//GP0口设为输出
GIE=1; //总中断使能
T1CON=0X34;//tmer1 8分频
TMR1IF=0; //tmer1 中断标志清零
TMR1L=0X00;
TMR1H=0X00;
PEIE=1; //外围功能使能
TMR1IE=1; //tmer1 中断使能
TMR1ON=1; //tmer1 计时开启
led=0;
}
void interrupt tmer0(void) {
if(TMR1IF==1&&TMR1IE==1) //检验是否是tmer1中断
{
n++;
TMR1L=0X00;
TMR1H=0X00;
TMR1IF=0; //tmer1 中断标志清零
if(n==115)
{
led=1;
}
if(n>=230) //用 ">=" 比用 "==" 好(纠错功能,如果 "n==230" 时,由于各种原因如外界干扰等,没有执行中断程序,这是 ">=" 显然比 "==" 好) {
led=0;
n=0;
}
}
}
void main(void) {
init();//初始化
while(1)//循环
{
clrwdt();
}
}
//tmer1 中断方式实现1分钟的定时
//由于是使用PIC12F675 的内部晶振,内部晶振不是很精确,所以1分钟延时的误差在+/-
6秒之内都是可以接受的。
//在烧程序的时候将IC-Prog 软件环境的右侧 //熔丝下面的 WDT 前面的勾选上其它的勾不要使其消失 //振荡器选择 intOSC GP4
//剩下的默认即可
// led0 每1分钟闪烁改变亮灭状态一次(中断方式) //选用内部晶振 4M //把JP-LED处的0短路帽按上
//引用头文件
#include
//符号变量替换
#define u8 unsigned char #define u16 unsigned int #define led GPIO0 //用c语言嵌套汇编来实现“喂狗”
#define clrwdt() asm("CLRWDT")
//全局变量的声明
u8 n=0;
void init(void)
{
CMCON=0X00;//比较器关闭
ANSEL=0X00;//设GP0到GP3都为数字IO口
OPTION=0X07;//禁止GPIO上拉定时器0 预分频为 1:256
TRIS0=0;//GP0口设为输出
GIE=1; //总中断使能
T1CON=0X34;//tmer1 8分频
TMR1IF=0; //tmer1 中断标志清零
TMR1L=0X00;
TMR1H=0X00;
PEIE=1; //外围功能使能
TMR1IE=1; //tmer1 中断使能
TMR1ON=1; //tmer1 计时开启
led=0;
}
void interrupt tmer0(void) {
if(TMR1IF==1&&TMR1IE==1) //检验是否是tmer1中断
{
n++;
TMR1L=0X00;
TMR1H=0X00;
TMR1IF=0; //tmer1 中断标志清零
if(n==127)
{
led=1;
}
if(n>=254) //用 ">=" 比用 "==" 好 ,当然在这里比254大的只有255,这是碰
巧了,呵呵。
//若是 if(n>=230)的话,如果 "n==230" 时,由于各种原因如外界干
扰等,没有执行中断程序,这是 ">=" 显然比 "==" 好)
{
led=0;
n=0;
}
}
}
void main(void) {
init();//初始化while(1)//循环{
clrwdt();
}
}
正在阅读:
pic12f675单片机学习程序204-12
金粤路中学装饰工程施工方案Doc112-09
单用途商业预付卡购卡协议(样本)04-01
关于高职高专艺术设计类基础能力课程的思考07-27
妈妈的微笑作文600字03-31
二零一一年中小企业应该如何利用电子商务05-11
水文预报习题集11-27
一场有趣的接力赛作文800字07-14
photoshop入门知识09-22
尧庙作文03-12
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 单片机
- pic12f675
- 程序
- 学习
- 数学八年级上册 期中精选试卷易错题(Word版 含答案)
- 议论文成功贵在积累精选范文
- 简述《行政法与行政诉讼法》学习辅导
- 人教部编版初中化学中考八种化学质量分数计算方法
- 新世纪综合单元测试及答案——unit2book2
- 房地产总裁年终讲话稿(最新版)
- 加药控制系统的使用方法
- 武冈论文网职称论文发表网-小学蒙语文写作教学论文选题题目
- 英语天利套试题含答案解析
- 最新人教版数学四年级下册:4.3.2小数点移动引起小数大小的变化
- 年产xx套智慧农业装备项目可行性方案
- 小学六年级语文总复习资料(完整版含答案)
- 学校年度的工作报告文档3篇
- 创建省级安全文明工地方案措施
- 快乐传真词语大全-115词版(附游戏规则)
- 电工操作实训指导手册最新版本
- 高中英语unit1festivalsaroundtheworldreading(新人教必修3) (1
- 构建和谐医患关系心得体会 医患关系心得体会800字
- 沪消发149号《进一步改革本市建筑工程消防审验工作方案》
- 2022年精选初中八年级上册历史第24课 近代思想、教育和文艺岳麓