社区
C语言
帖子详情
用TC编译对端口操作的程序,编译通过,连接不了,怎么回事啊?
Proteas
2006-06-09 06:46:26
用TC编译对端口操作的程序,编译通过,连接不了,怎么回事啊?
...全文
287
11
打赏
收藏
用TC编译对端口操作的程序,编译通过,连接不了,怎么回事啊?
用TC编译对端口操作的程序,编译通过,连接不了,怎么回事啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Proteas
2006-06-13
打赏
举报
回复
恩,明白了,谢谢楼上。不过不是用tc做工程开发,做实验。
Proteas
2006-06-12
打赏
举报
回复
自己顶,有工程经验的给指点下了。谢谢。
柯本
2006-06-12
打赏
举报
回复
两个问题
1.TC没有inb和outb函数,应该改为inportb和outportb
2.你定义并调用了SetPc0()函数,可没有写出它的实现
----------------------------------------------------
已经有十多年没用TC了,居然还有人用
Proteas
2006-06-12
打赏
举报
回复
继续顶,继续顶
flc
2006-06-12
打赏
举报
回复
关注
Proteas
2006-06-11
打赏
举报
回复
没有,在纯dos,实模式,已经用汇编又写了一遍,但是还不知道问题出在哪里。
bombwang
2006-06-10
打赏
举报
回复
mark
dengjun0256
2006-06-10
打赏
举报
回复
你一定是在windowsXX下运行TC的
Proteas
2006-06-10
打赏
举报
回复
还是不可以,真郁闷了。不知道问题出在什么地方。
beforewind
2006-06-09
打赏
举报
回复
放到main()函数前面试试
不行再 减少main中的循环层数试试
/*函数声明*/
void init_8253(void);
void init_8255(void);
unsigned char Read_8255B(void);
void DeLay(void);
void SetPc0(void);
int TestSwitch(void);
void play(unsigned char low,unsigned char high);
/*定义音符频率表*/
unsigned char Map_Music[8][2]={{17,38},{01,34},{30,30},{02,27},{9,24},{46,21},{12,19},{3,17}};
Proteas
2006-06-09
打赏
举报
回复
程序如下:
/*演奏音乐小程序*/
/*2006,6,9*/
/*---------------------------------------------*/
/*---------------------------------------------*/
#include<stdio.h>
#include<dos.h>
#include<conio.h>
/*定义常用断口地址*/
#define CNT_0 0x40 /*8253计数器0地址*/
#define CTRL_8253 0x43 /*8253控制口地址*/
#define CTRL_8255 0xff2b /*8255控制口地址*/
#define PORT_B 0xff29 /*8255B口地址*/
#define PORT_C 0xff2a /*8255C口地址*/
#define STATE_8253 0x36 /*8253控制字*/
#define STATE_8255 0x82 /*8255控制字*/
#define STATE_8255C 0x36 /*8255C口控制字*/
/*---------------------------------------------*/
/*主程序*/
int main(void)
{
/*函数声明*/
void init_8253(void);
void init_8255(void);
unsigned char Read_8255B(void);
void DeLay(void);
void SetPc0(void);
int TestSwitch(void);
void play(unsigned char low,unsigned char high);
/*定义音符频率表*/
unsigned char Map_Music[8][2]={{17,38},{01,34},{30,30},{02,27},{9,24},{46,21},{12,19},{3,17}};
/*--------------------------*/
/*初始化所用芯片,并写入控制字*/
init_8253();
init_8255();
if(!TestSwitch())/*消除抖动*/
return 1;
else
{
do
{
unsigned char temp=Read_8255B();
switch(temp)/*扫描按键*/
{
case 0 :SetPc0();break;/*置0*/
case 1 :play(Map_Music[0][0],Map_Music[0][1]);break;
case 2 :play(Map_Music[1][0],Map_Music[1][1]);break;
case 3 :play(Map_Music[2][0],Map_Music[2][1]);break;
case 4 :play(Map_Music[3][0],Map_Music[3][1]);break;
case 5 :play(Map_Music[4][0],Map_Music[4][1]);break;
case 6 :play(Map_Music[5][0],Map_Music[5][1]);break;
case 7 :play(Map_Music[6][0],Map_Music[6][1]);break;
case 8 :play(Map_Music[7][0],Map_Music[7][1]);break;
default: /*printf("Input Error!!");*/break;
}
}while('q'==getchar()||'Q'==getchar())/*结束循环*/;
return 0;
}
}
/*-----------------------------------*/
/*延时函数*/
void DeLay(void)
{
int count;
for(count=0;count<100;count++);
}
/*------------------------------------*/
/*初始化8255的函数*/
void init_8255(void)
{
outb(CTRL_8255,STATE_8255);
}
/*------------------------------*/
/*初始化8253的函数*/
void init_8253(void)
{
outb(CTRL_8253,STATE_8253);
}
/*------------------------------*/
/*读8255B口函数*/
unsigned char Read_8255B(void)
{
unsigned char Read;
Read=inb(PORT_B);
return Read;
}
/*-------------------------------*/
/*消除抖动函数*/
int TestSwitch(void)
{
unsigned char pre,now;
pre=Read_8255B();
DeLay();
now=Read_8255B();
if(now==pre)
return 1;
else return 0;
}
/*----------------------*/
/*GATE0置0函数*/
void SerPc0(void)
{
outb(PORT_C,STATE_8255C);
}
/*-----------------------*/
/*演奏函数*/
void play(unsigned char low,unsigned char high)
{
outb(CNT_0,low);
outb(CNT_0,high);
}
TC
.rar_
TC
6. **
编译
与调试**:使用
TC
的
编译
器进行
程序
构建,并利用其调试工具进行错误排查,这是学习过程中必不可少的技能。学生会学习如何设置断点、查看内存状态以及跟踪变量变化。 7. **实践项目**:可能的实践项目可能...
用
TC
实现串口通信 有实例
总结来说,用
TC
实现串口通信涉及到对
端口
的读写
操作
、串口参数的初始化、数据的发送与接收,以及可能的中断服务。这个过程需要对底层硬件
操作
有深入的理解,同时需要注意在不同
操作
系统环境下的兼容性问题。通过使用...
TC
操作
笔记本 8259 5254源代码 带执行档
标题中的“
TC
操作
笔记本 8259 5254源代码 带执行档”揭示了这个压缩包包含的是与8259和8254定时计数器相关的源代码,并且能够在Turbo C (
TC
)
编译
环境下运行。这暗示我们即将探讨的是关于微处理器中断系统和计时器...
Qt步进电机上位机控制
程序
源代码Qt跨平台C C++语言编写 支持串口
Tc
p网口Udp网络三种
端口
类型 提供,提供详细注释和人工讲解 1.功能介绍: 可控制步进电机的上位机
程序
源代码,基于Qt库,采用
Qt步进电机上位机控制
程序
源代码Qt跨平台C C++语言编写 支持串口
Tc
p网口Udp网络三种
端口
类型 提供,提供详细注释和人工讲解 1.功能介绍: 可控制步进电机的上位机
程序
源代码,基于Qt库,采用C C++语言编写。 支持...
1.LQ_
TC
264DA_TestGPIO_LED.rar
通过这个测试
程序
,开发者不仅可以验证GPIO功能,还能了解如何在实际应用中控制LED,同时熟悉英飞凌
TC
264的开发环境和库函数使用。这对于理解和掌握嵌入式系统设计及微控制器应用有着重要的实践意义。
C语言
70,040
社区成员
243,246
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章