时钟电路基本程序设计

上传人:san****019 文档编号:21102129 上传时间:2021-04-23 格式:PPT 页数:19 大小:1.32MB
返回 下载 相关 举报
时钟电路基本程序设计_第1页
第1页 / 共19页
时钟电路基本程序设计_第2页
第2页 / 共19页
时钟电路基本程序设计_第3页
第3页 / 共19页
点击查看更多>>
资源描述
MCS-51单片机基本程序设计v延时C语言程序设计v中断C语言程序设计 v动态显示C语言程序设计 编 程 要 求 : 控 制 一 个 信 号 灯 ( P1.0口 ) 闪 烁 程 序一、延时C语言程序设计 /功 能 : 控 制 一 个 信 号 灯 闪 烁 程 序#include sbit P1_0=P10; /定 义 位 名 称void delay(unsigned char i); /延 时 函 数 声 明void main() /主 函 数 while(1) P1_0=! P1_0; delay(10); /调 用 延 时 函 数 , 实 际 变 量 为 10 /函 数 功 能 : 实 现 软 件 延 时/形 式 参 数 : unsigned char i;/i控 制 空 循 环 的 外 循 环 次 数 , 共 循 环 i*255次/返 回 值 : 无void delay(unsigned char i)/延 时 函 数 , 无 符 号 字 符 型 变 量 i为形 式 参 数 unsigned char j,k; /定 义 无 符 号 字 符 型 变 量 j和 k for(k=0;ki;k+) /双 重 for循 环 语 句 实 现软 件 延 时 for(j=0;j255;j+); /设 单 片 机 的 fosc=6MHz用 定 时 器 T0的 方 式 0编/程 , 在 P1.0脚 上 输 出 周 期 为 1ms的 方 波 。 解 :1) 初 值 计 算 TH0=F8H, TL0=06H2) 工 作 方 式 控 制 字 TMOD=00H( 复 位 时 自 动清 0) ORG 0000HAJMP MAINMAIN: MOV TL0,#06H ; 预 置 初 值MOV TH0,#0F8HSETB TR0 ; 启 动 T0LOOP1: JBC TF0,LOOP2 ; 计 数 溢 出 否SJMP LOOP1LOOP2: MOV TL0,#06H ; 重 置 初 值MOV TH0,#0F8HCLR TF0 ( 为 什 么 ? )CLP P1.0 ; 取 反SJMP LOOP1 ; 重 复 循 环 /用 C语 言 实 现 上 述 要 求 #include”reg51.h”Sbit P1_0=P10Void delay500us();void main() for( ; ; ) P1_0=!P1_0;delay500us; /用 T0方 式 0实 现 500us延 时 void delay500us() unsigned char i; TMOD=0 x00; / 置 T0为 工 作 方 式 0 TH0=0 xF8; / 设 置 定 时 器 初 值 TL0=0 x06; TR0=1; / 启 动 T1 while(!TF0); / 查 询 计 数 是 否 溢 出 , 即 定 时 500us时 间 到 , TF0=1 TF0=0; / 500us定 时 时 间 到 , 将 定 时 器 溢 出 标 志 位 TF0清 零 /用 T1方 式 0实 现 1秒 延 时 函 数 , 设 fosc=12MHz void delay1s() unsigned char i; TMOD=0 x00; / 置 T1为 工 作 方 式 0 for(i=0;i0 xc8;i+) / 设 置 200次 循 环 次 数 TH1=0 x63; / 设 置 定 时 器 初 值 TL1=0 x18; TR1=1; / 启 动 T1 while(!TF1); / 查 询 计 数 是 否 溢 出 , 即 定 时 5ms时 间 到 , TF1=1 TF1=0; / 5ms定 时 时 间 到 , 将 定 时 器 溢 出 标 志 位 TF1清 零 /用 定 时 器 工 作 方 式 2实 现 的 1秒 延 时 函 数 如 下 :void delay1s() unsigned int i; / i不 能 定 义 成 unsigned char( 为 什 么 ? ) TMOD=0 x20; / 设 置 T1为 方 式 2 TH1=6; / 设 置 定 时 器 初 值 , 放 在 for循 环 之 外 ( ? ) TL1=6; for(i=0;i4000;i+) / 设 置 4000次 循 环 次 数 TR1=1; / 启 动 T1 while(!TF1); / 查 询 计 数 是 否 溢 出 , 即 定 时 250s时 间 到 ,TF1=1 TF1=0; / 250s定 时 时 间 到 , 将 定 时 器 溢 出 标 志 位 TF1清 零 中 断 处 理 过 程中 断 响 应 过 程 就 是 自 动 调 用 并 执 行 中 断 函 数 的 过 程 。C51编 译 器 支 持 在 C源 程 序 中 直 接 以 函 数 形 式 编 写 中 断 服 务 程序 。 常 用 的 中 断 函 数 定 义 语 法 如 下 : void 函 数 名 ( ) interrupt n其 中 n为 中 断 类 型 号 , C51编 译 器 允 许 0 31个 中 断 , n取 值范 围 0 31。 下 面 给 出 了 8051控 制 器 所 提 供 的 5个 中 断 源 所对 应 的 中 断 类 型 号 和 中 断 服 务 程 序 入 口 地 址 :中 断 源 n 入 口 地 址外 部 中 断 0 0 0003H定 时 /计 数 器 0 1 000BH外 部 中 断 1 2 0013H定 时 /计 数 器 1 3 001BH串 行 口 4 0023H 中 断 C语 言 程 序 设 计 举 例 :可 控 霓 虹 灯 控 制要 求 : 正 常 情 况 下 8个 LED依 次 点 亮 , 循 环 显 示 , 时 间 间 隔 1s。按 键 按 下 后 , 8个 LED同 时 亮 灭 一 次 , 时 间 间 隔 为 0.5s。 用T1、 工 作 方 式 1编 制 延 时 程 序 , 按 键 动 作 采 用 外 部 中 断 INT0实 现 。 /函 数 功 能 : 用 T1的 方 式 1编 制 0.5秒 延 时 程 序 , 假 定 系 统 采 用12MHz晶 振 , /定 时 器 1、 工 作 方 式 1定 时 50ms, 再 循 环 10次即 可 定 时 到 0.5秒#include void delay0_5s() unsigned char i; for(i=0;i0 x0a;i+) / 设 置 10次 循 环 次 数 TH1=0 x3c; / 设 置 定 时 器 初 值 TL1=0 xb0; TR1=1; / 启 动 T1 while(!TF1); / 查 询 计 数 是 否 溢 出 , 即 定 时 50ms时 间 到 , TF1=0 TF1=0; / 50ms定 时 时 间 到 , 将 定 时 器 溢 出 标 志 位 TF1清 零 /函 数 名 : int_0/函 数 功 能 : 外 部 中 断 0中 断 函 数 , 当 CPU响 应 外 部 中 /断 0的 中 断 请 求 时 , 自 动 执 行 该 函 数 , 实 现 八 个 信 /号 灯 闪 烁void int_0() interrupt 0 /外 部 中 断 0的 中 断 号 为 0 P1=0 x00; /熄 灭 八 个 信 号 灯 delay0_5s(); /调 用 0.5秒 延 时 函 数 P1=0 xff; /点 亮 八 个 信 号 灯 delay0_5s(); /调 用 0.5秒 延 时 函 数 void main() /主 函 数 unsigned char i,w; EA=1; / 打 开 中 断 总 允 许 位 EX0=1; / 打 开 外 部 中 断 0允 许 位 IT0=1; / 设 置 外 部 中 断 为 边 沿 ( 下 降 沿 ) 触 发 方 式 TMOD=0 x10; / 设 置 T1为 工 作 方 式 1 while(1) w=0 x01; / 显 示 码 初 值 为 01H for(i=0;i8;i+) P1=w; / w取 反 后 送 P1口 , 点 亮 相 应 LED灯 w=1; / 点 亮 灯 的 位 置 移 动 delay_t(2); / 调 用 延 时 函 数 delay_t(), 实 际 参 数 为 2, 延 时 1秒 /修 改 以 上 程 序 , 使 系 统 每 隔 20s中 断 闪 烁 一 次 :/函 数 名 : int_3/函 数 功 能 : 定 时 器 1中 断 函 数 , 当 CPU响 应 该 中 断 请求 时 , 自 动 执 行 该 函 数 , 实 现 八 个 信 号 灯 闪 烁/形 式 参 数 : 无/返 回 值 : 无void int_3() interrupt 3 /定 时 器 1中 断 号 为 3 P1=0 x00; /熄 灭 八 个 信 号 灯 delay20s(); /调 用 0.5秒 延 时 函 数 P1=0 xff; /点 亮 八 个 信 号 灯 delay20s(); /调 用 0.5秒 延 时 函 数 /以 定 时 器 T1写 一 个 延 时 20s的 子 函 数 ( 略 )void main() /主 函 数 unsigned char i,w; EA=1; / 打 开 中 断 总 允 许 位 EX0=1; / 打 开 外 部 中 断 0允 许 位 IT0=1; / 设 置 外 部 中 断 为 边 沿 ( 下 降 沿 ) 触 发 方 式 ET1=1; /设 置 定 时 器 1中 断 允 许 位 TMOD=0 x01; / 设 置 T0为 工 作 方 式 1 while(1) w=0 x01; / 显 示 码 初 值 为 01H for(i=0;i8;i+) P1=w; / w取 反 后 送 P1口 , 点 亮 相 应 LED灯 w=1; / 点 亮 灯 的 位 置 移 动 delay1s();/ 调 用 延 时 函 数 , 延 时 1秒 单 片 机 与 LED数 码 管 接 口 : 动 态 显 示
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!