编写51单片机程序,输出方波,at89s52的单片机
要求:晶振为12MHz,用T0做定时器,在P1的低四位输出四种频率的方波:
P1.3 = 1.25kHz、P1.2 = 2.5kHz、P1.1 = 5kHz、P1.0 = 10kHz
另外,P1.6、P1.7的输出做四选一数据选择器的选择位,它们由P3.0按键控制,从上述的低四位输出频率中,选出一种再输出。
悬赏分:10 - 解决时间:2009-12-5 10:45
//===================================================
最佳答案:
以下程序已经仿真成功,你试试看。
//---------------------------------------------------
#include <reg52.h>
#define uchar unsigned char
#define TL_0SET (256 - 50) //定时时间选为50us
//输出的方波周期将为100us, 10kHz
sbit P1_6 = P1^6;
sbit P1_7 = P1^7;
sbit P3_2 = P3^2;
bdata uchar x = 0;
sbit p16 = x^0;
sbit p17 = x^1;
uchar i, j;
//---------------------------------------------------
void e0int() interrupt 0 //外部中断0作开关,控制四选一数据选择器
{
while(P3_2 == 0) {;} //等待按键释放
x++;
if(x == 4) x = 0;
P1_7 = p16;
P1_6 = p17;
}
//---------------------------------------------------
void time0() interrupt 1 //T0的中断服务程序
{ //T0工作在方式2,自动装入初始值
i++;
j = i % 16; //取i的低四位
j = j + p17 * 128 + p16 * 64; //组合上数据选择器的控制信号
P1 = j; //输出四种频率的方波以及控制信号
}
//---------------------------------------------------
void main()
{
TMOD = 0x02; //T0定时方式2
TH0 = TL_0SET; //自装入式的定时初始值
TR0 = 1; //启动T0
ET0 = 1;
IT0 = 1; //外部中断0由下降沿触发
EX0 = 1; //外部中断0允许
EA = 1;
while(1) {;}
}
//---------------------------------------------------
回答者: 做而论道 回答时间:2009-12-2 08:46
提问者对于答案的评价:我真的很感谢您,希望以后有机会还能得到您的指导
原题网址:http://zhidao.baidu.com/question/127702122.html?si=1
//===================================================
编写51单片机程序,输出方波,at89s52的单片机相关推荐
- 单片机DAC输出方波简易实验
单片机DAC输出方波简易实验 简易的DAC实验,想要输出方波,但是输出了的是一条直线. 改P0为端口P2 排查原因了解到是端口的问题 P0口:双向8位三态I/O口,每个口可独立控制.51单片机P0口内 ...
- 编写C语言程序 输出一个菱形
用C语言程序实现打印出一个菱形,观察菱形,它的每一行前面会有空格,要打印菱形,首先要算出空格多少的规律,以及每行*的数目,把菱形分为上下两部分打印,上半部分规律:观察最长的一行,它的*数目是它行数的二 ...
- 编写一个java程序 输出全部的希腊字母_编写一个Java应用程序,输出全部的希腊字母。...
package 输出; public class App { public static void main(String args[]) { int s= 0, e= 0; char c= 'α', ...
- 51单片机程序开发入门知识
51单片机在我的理解上来说,就是遵循51指令集工作的芯片.他就像一台超微型的电脑,里面有内存.硬盘.CPU等基本配备. 而他所谓的CPU使用的就是51指令集,他的硬盘就是内置的Flash,他的内存也是 ...
- 九九乘法表python语言编程软件_编写Python程序,输出如下的九九乘法表_学小易找答案...
[其它]写出下图的梯形图程序对应的语句表 (26.0分) [简答题]PLC一般的编程语言有几种?分别是什么? (5.0分) [其它]定义一个getMax函数,返回三个数(从键盘输入的整数)中的最大值. ...
- 单片机广告灯实验总结_温州很强的ly51s单片机程序开发公司
温州很强的ly51s单片机程序开发公司 sdthfsfd 温州很强的ly51s单片机程序开发公司 "时,表示波特率自适应工作正确完成,如图所示,可以进行参数设置和校准操作.这也是为什么晶振的 ...
- 如何使用Keil uVision2软件调试单片机程序
本文转载自: http://www.cnblogs.com/ugoer/archive/2007/05/01/171986.html 作者:ugoer 转载请注明该声明. 先说一个概念:调试,在企业程 ...
- Vscode开发STM32单片机程序
STM32单片机非常强大,大多数教程都是使用 keil 编译器,keil 是收费的而 gcc 是开源免费的.这里介绍一些使用 gcc + vscode 开发单片机程序的经验.(这里不解释 gcc 是什 ...
- c语言编写51单片机中断程序,执行过程是怎样的?
Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序: #include<reg52.h> void main(void) { EA=1; //开放总中断 ...
最新文章
- quartz定时任务开发cron常用网站
- 百度 和 AI教父Hinton 的故事
- udp_socket聊天器demo
- mysql常用的分组函数
- 光纤测试仪为什么使用单芯法为光纤损耗测量
- 大家都在说的分布式系统到底是什么
- 【简明笔记】循环条件的优化
- android 调用restful,android调用springmvc写的restful
- 为树莓派制作系统镜像时进行瘦身,方便后续保存与批量写入
- 第一篇:wine介绍
- 26 王者荣耀刷金币脚本
- SpringDataJPA使用Specification动态查询和分页
- iphone3GS iOS6.0.1不完美越狱详细图文教程
- 量化7年1000万知与行,回测量化7年如果只每月定投5.4万到沪深300指数基金,能否实现7年1000万
- 常用邮箱服务器地址大全截止2020-9
- 002_Python基础学习网站
- 【无标题】计统大作业-hello
- word的大表格中自动换页
- 利用腾讯会议开展远程面试的解决方案
- 微计算机原理及应用第八章,微机原理第八章--8251讲解