试题详情
- 简答题某8051系统晶振频率为6MHz,先欲从P1.7引脚输出一个连续5Hz的方波信号,请编写程序。
-
5Hz的方波周期为200毫秒,高低电平各持续100毫秒,若晶振频率为6MHz,则机器周期为2微秒,故其计数值应为: N=100ms/2μs=50000
采用方式1进行计数,则 X=M-N=65536-50000=15536H=0C350H
程序编写如下:
M.OV TMOD, #05H; 设置T0工作方式,定时,方式1
M.OV TH0,#0C3H; 写入计数器初值
M.OV TL0,#050H;
S.ETB TR0;启动T0
L.OOP: JBC TF0,$; 查询定时器溢出标志
M.OV TH0,#0C3H;
M.OV TL0,#050H
C.PL P1.7
S.JMP LOOP;
E.ND
也可以用C语言编写:
用定时/计数器T0从P1.7输出周期为5s的方波,晶振频率为6MHz。
#include
#define uchar unsigned char
#define uint unsigned int
S.bit D1=P1^0;
U.char a;
V.oid init() //初始化 {
T.MOD=0x01; //选择定数计数器0的工作方式为16位定时器
T.H0=(65535-50000)%256; //赋初值,定时100ms
T.L0=(65535-50000)/256;
E.A=1; //中断控制允许
E.T0=1;
a=0;
TR0=1; //启动定时器0 }
void time0() interrupt 1 //定时器0中断函数 {
TH0=(65535-50000)%256; //赋初值,定时100ms TL0=(65535-50000)/256; a++;
TR0=1; }
void main()
{
init();
while(1)
{
while(a==25)//半个周期(2500ms)时,P1.7上的电平跳变一次。
{
a=0;
P1.7=~P1.7; //取反 } } } 关注下方微信公众号,在线模考后查看
热门试题
- 如果8259的中断类型号高5位为80H,
- 针对8255芯片工作方式1输出时序,说明
- 汇编语言程序
- 为什么称处理器的数据总线是双向的?
- 衡量存储器的指标主要有()、()和()。
- 每一条指令通常由()和()两部分组成。
- 8253—5工作于方式1时,当写入CW,
- PCI局部总线的特点是什么?
- 试说明Flash ̳
- 对于非屏蔽中断申请,CPU响应条件为CP
- 汇编语言
- 接口电路的结构有哪几种形式?
- 同步通信协议的面向比特协议是什么?
- IA-32处理器在开中断状态,其标志IF
- ISA总线需要进行总线仲裁吗?为什么?&
- 处理器为什么需要通过锁存器与数字/模拟转
- 试说明8088CPU可屏蔽中断的响应过程
- 标志寄存器中,TF是()标志,用于()操
- 区别如下概念:路径、绝对路径、相对路径、
- 已知(AX)= 836BH,